INTERKAL programmering: Brug ikke dette sprog

Afsløring: Din support hjælper med at holde webstedet kørt! Vi tjener et henvisningsgebyr for nogle af de tjenester, vi anbefaler på denne side.


Så du har flyttet forbi JavaScript-tutorials og slynget dårlig PHP-kode. Du har kørt dig lidt ind i Ruby, men opdagede, at du virkelig kunne lide Python. Og det var ikke så meget, at du kunne lide Python til at bygge applikationer, men du kom virkelig ind i scripting.

Fra scripting begyndte du at udforske Linux, og det fik jer alle interesseret i gratis og open source software, så du begyndte at læse om Richard Stallman og GNU-projektet.

Før du ved det, taler du på IRC-chat, griner du over alle vittighederne i hver XKCD, og ​​du har læst hver side af jargon-filen. To gange. Hvad nu?

Du vil forbedre dine programmeringsevner og din hacker street cred. Du har tænkt på at lære C, men det virker bare alt for nyttigt.

Du håber på at læse The Art of Computer Programming, men du har besluttet at vente til den endelige udgave er tilgængelig.

Så hvad er det næste trin? Hvad er den næste meritemblem på din Geek Scout-ramme?

intercal!

Har du nogensinde ønsket at lære et computersprog, der var helt nytteløst? Og ikke nytteløst som JavaScript i 90’erne – ikke nytteløst, fordi det er for let eller nytteløst, fordi det er for let.

Da du var barn lærte du at tale Klingon eller Elvish? Vil du gerne gentage denne oplevelse med al dens ensomhed og nørdangst, men minus det sjove?

intercal!

Hvad er INTERCAL?

Nogle siger, at INTERCAL er et sprog. Andre siger, at INTERCAL er en vittighed. Måske er INTERCAL bare et rygte, en hoax, en urban legende. En Arthurian legende, måske?

Det er alt sammen. Det er ingen af ​​disse. Kender nogen? Nå, faktisk kender mange mennesker. Det hele er meget godt dokumenteret. Men dokumentationen kan være en løgn til sidst.

intercal!

Hvad ved vi om INTERCAL?

Først og fremmest ved vi, at INTERCAL ikke engang er sprogets rigtige navn. Sprogets rigtige navn er “Compiler Language with No Pronounceable Acronym.” INTERCAL er naturligvis et udtalt acronym. Hvilket betyder, at det ikke er det rigtige akronym.

Vi ved også, at INTERCAL blev opfundet i 1972 i Princeton. De to opfindere, Don Woods og James M Lyon, havde det oprindeligt som en parodi. Det var designet til at arbejde på stempelkort, en bisarr og forældet teknologi, der stammer fra stofvævet væve.

INTERKAL Design

INTERCAL blev designet forskellig fra alle andre eksisterende programmeringssprog til computere.

Den mest effektive måde at gøre et computerprogrammeringssprog anderledes på end alle andre programmeringssprog til computere ville være at oprette et, der faktisk er let at bruge, og som er let at læse og udføre de ting, du vil udføre, og som ikke udfører tingene at du ikke vil have det til at udføre.

Imidlertid gik designerne af INTERCAL den anden vej.

INTERCAL er bevidst vanskeligt. Det er næsten umuligt at læse eller skrive. At udføre den mest trivielle opgave er usædvanligt tidskrævende og hovedpine-inducerende.

Syntaks giver ingen mening. Ordforrådet giver ingen mening. Og underlige compiler-quirks gør det næsten sikkert, at et program skrevet i INTERCAL ikke opfører sig som forventet, første gang det køres.

Med andre ord, når det virkelig kommer til det, er INTERCAL nøjagtigt som ethvert andet computerprogrammeringssprog – i det mindste på det tidspunkt. Og det var mere eller mindre pointen.

En lille historie

Opfinderne af INTERCAL implementerede det, havde et par grin og glemte hurtigt det.

Imidlertid levede sproghåndbogen videre. Selve dokumentationen var sjovere end sproget; dette giver mening, da dokumentationen blev skrevet på engelsk, og sproget var helt uigennemtrængeligt.

Kopier af sproghåndbogen overført fra nørd til nørd, og utallige antal uhyggelige skæg blev strejset undervejs.

Til sidst fandt sproget nyt liv i C-INTERCAL-implementeringen, der stadig findes i dag.

Der er også en anden implementering, kald CLC-INTERCAL. Dette betyder, at mindst to forskellige computerprogrammører, og sandsynligvis meget mere end det, har brugt en ikke-privat procentdel af deres endelige levetid på at læse, forstå og implementere dokumentationen til et sprog, der ikke giver mening, og ikke kan faktisk gør meget.

Hvad der er endnu mere forbløffende end det er det rene niveau af glans og matematisk intelligens, der kræves for at fremstille hoveder eller haler af noget af dette.

Sprogfunktioner

Som nævnt tidligere er selve INTERCAL-sproget næsten uforståeligt. Alt i INTERCAL, der faktisk er nyttigt, er næsten helt sikkert en fejl, og enhver del af dokumentationen, der er let at forstå, er næsten helt sikkert en vittighed.

Eksempel syntaks

Her er en smule prøvekode hentet direkte fra INTERCAL-dokumentationen:

VENLIGST, 1 <- # 2
DO .1 <- # 2
DO, 1 SUB .1 <- # 1
DO, 1 SUB # 1 <- ,1 SUB # 2
BEMÆRK; 1 <- # 2 VED # 2
DO; 1 SUB # 1 # 2 <- ,1 SUB, 1 SUB .1
LÆS OP; 1SUB # 1.1
GIV OP

Jeg kunne fortælle dig, hvad denne kode gør, men den ville ikke rigtig gøre noget.

Prøvefejl

Den måske mest berømte fejl i INTERCAL har at gøre med nøgleordet PLEASE. Et INTERCAL-program skal indeholde ordet PLEASE et tilstrækkeligt antal gange. Det er dog uklart, hvad dette tilstrækkelige antal er.

Hvis en programmør ikke siger PLEASE ofte nok, afvises programmet af kompilatoren for ikke at være høflig nok. Hvis programmereren imidlertid bruger ordet PLEASE for meget, vil programmet blive afvist for at være for høfligt og for ivrig.

Hvis dette er den slags opførsel, du vil se i en compiler, er du en syg, syg person.

Andre utroligt nyttige fejl inkluderer:

  • E111 COMMUNIST PLOT DETECTED, COMPILER SUICIDING

  • E277 DU KUN KUN FORVISTE LOVERNE OM MATEMATIK SÅ LANGT

  • E405-PROGRAM afvist for mentale sundhedsmæssige årsager

  • E666-COMPILER HAR INDIGESTION

  • E774 RANDOM COMPILER BUG.

Den sidste fejl, Random Compiler Bug kan faktisk deaktiveres ved at videregive en bestemt mulighed, når et program startes. Dette er en “belønning for at læse manualen.” (Derfor har jeg ikke fortalt dig, hvad den bestemte mulighed var.)

Sprogressourcer

  • DEN INTERKAL PROGRAMMERING AF SPROGREFERENCE MANUAL – Den originale tekst fra 1973.

  • INTERCAL Programming Language Revideret Reference Manual – Den reviderede, moderne tekst.

  • INTERCAL-ressourcesiden – Alt hvad du nogensinde har brug for at vide om INTERCAL.

  • Jargon-filen – Folkets kulturhistorie.

  • INTERCAL – Et album med house / dansemusik af en kunstner med samme navn opkaldt efter sproget.

Bevæger sig fremad

Du ønsker ikke at komme videre med INTERCAL. Det er et parodisprog, der var beregnet til at fremhæve problemerne med programmeringssprog, der eksisterede i slutningen af ​​1960’erne og begyndelsen af ​​1970’erne. Men det forbliver som en god påmindelse om, hvordan man ikke designer et programmeringssprog.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map