INTERCAL — разлика између измена

Садржај обрисан Садржај додат
Нема описа измене
Нема описа измене
Ред 1:
 
==INTERCAL==
 
[[Слика:Jimbo Lyon.jpg|мини|Джимбо Лион, један од аутора INTERCAL-а]]
 
Compiler Language With No Pronounceable Acronym, скраћено INTERCAL, је езетерични програмски језик настао 1972. као шала од стране Дона Вудса (енгл. Don Woods) и Џејмса М. Лиона(енгл. James M. Lyon), два студента на универзитету у Принстону. На сатиричан начин приказује становишта многих програмских језика у то доба, као и ширење устаљених језичких конструкција и система записивања шездесетих година 20. века. <br /> <br />
Линија 22 ⟶ 25:
 
==Документација==
[[Датотека:INTERCAL Circuitous Diagram.PNG|мини|"Заобилазни диаграм" из приручника INTERCAL Reference Manual, који објашњава "select" оператор.]]
Приручник INTERCAL Reference Manual садржи многа парадоксална, бесмислена и хумористичка упутства: <br />
 
Линија 28 ⟶ 32:
Приручник садржи и "крајник", како је објашњено у фусноти:"4)Пошто сви други приручници са напоменама садрже "слепо црево", одлучено је да приручник за INTERCAL садржи неки други тип одстрањивог органа." <br />
 
INTERCAL приручник даје необична имена свим знаковима ASCII кода који нису алфанумерички: знак <code>'</code> и <code>"</code> су "искре" и "зечије уши", тим редоследом(изузетак је знак &, јер како програмски речник Jargon File наводи: "Шста би могло бити луцкастије?"). Оператор доделе, који је у многим програмским језицима представљен као знак једнакости је у INTERCAL-у представљен скупом знакова који представљају стрелицу која показује улево "<code><-"</code>, а састоји се од знака "мање од" и црте, јасно означавајући да леви операнд "добија" вредност.
 
==Синтакса==
Унос(помоћу инструкције <code>WRITE IN</code>) и излаза (користећи <code>READ OUT</code> инструкцију) не користе уобичајене формате записа- у INTERCAL-72, инструкција WRITE IN уписује број чије се цифре записују као текст на енглеском језику (као SIX FIVE FIVE THREE FIVE), а READ OUT га избацује као "исецкане" римске бројеве.
Новије верзије имају сопствени улазно-излазни систем. Коментари се могу постићи ако се користе инвертне команде које укључују NOT или N'T.
===Структуре података===
INTERCAL-72(оригинална верзија INTERCAL-а) има само четири типа података- 16-битни интеџер(представљен са <code>.</code>, именован "тачка"), 32-битни интеџер (<code>:</code>, именован "двотачка"), низ од 16-битних интеџера(<code>,</code>, именован"реп"), и низ од 32-битних интеџера(<code>;</code>,именован"хибрид"). Постоји 65535 доступних променљивих за сваки тип, означени нпр. бројевима од <code>.1</code> до <code>.65535</code> за 16-битне интеџере. Међутим, свака од тих променљивих има свој стек, па на њима могу даље да се иѕвршавају push и pop операције(у INTERCAL-у названи STASH и RETRIEVE), увећавајући комплексност структура података. Више данашњих верзија INTERCAL-а имају или су задржали већину истих структура података, са одговарајућим изменама:
*TriINTERCAL, који модификује радикс сортирање којим су бројеви представљени и може да користи тринарни бројевни систем као основни(10-тритни уместо 16-битног).
*CLC-INTERCAL имплементира значајан број сопствених структура података, као што су "classes and lectures", постизајући да основни типови структура података меморишу више информација пре него да уводе нове типове података. Низови су прорачунавани тако што им се додају вредности ако им је променљива скаларног типа. Константе се могу употребљавати, и представљане су са <code>#</code> ("мрежа" у INTERCAL-у) и праћене самом константом, записане као децимални број. Константе представљене у интеџерима су подржане само у опсегу од 0 до 65535.
Преузето из „https://sr.wikipedia.org/wiki/INTERCAL