Hoppa till innehållet

INTERCAL

Från Wikipedia
Den utskrivbara versionen stöds inte längre och kanske innehåller renderingsfel. Uppdatera din webbläsares bokmärken och använd standardutskriftsfunktionen istället.

INTERCAL är det mest populära av en liten samling parodi-programspråk, som mest fungerar som skrattspeglar och mentala utmaningar för inbitna programmerare. Programspråket skapades en morgon den 26 maj 1972 av Donald R. Woods och James M. Lyon på Princeton-universitetet, i syfte att skapa ett programspråk som skilde sig från alla andra programspråk konstruktörerna stött på. Inte desto mindre är det ett imperativt programspråk med subrutiner, goto-satser, variabler och arrayer, men dess syntax är tämligen svårläst, vilket givetvis är avsikten. Ett alldeles unikt särdrag i senare versioner är COME FROM-satsen som anger att en annan sats någonstans skall hoppa till COME FROM-raden, vilket gör programmen ännu mer svårlästa. Typisk är också PLEASE-satsen, som inte utför något, men måste finnas med tillräckligt ofta i källkoden.

Namnet INTERCAL lär stå för Compiler Language With No Pronounceable Acronym (kompilerat språk utan uttalbar förkortning). Namnet är en parodi på IT-världens förkärlek för förkortningar.

INTERCAL har en alldeles egen uppsättning namn på vanliga ASCII-tecken, till exempel kallas , tail och " rabbit-ears.

Programexempel

"Hello, World!" i INTERCAL:

    PLEASE NOTE THAT THIS MAY ONLY RUN ON C-INTERCAL
    
    PLEASE DO ,1 <- #13
    DO ,1 SUB #1 <- #584
    DO ,1 SUB #2 <- #837
    DO ,1 SUB #3 <- #1100
    DO ,1 SUB #4 <- #1356
    DO ,1 SUB #5 <- #1615
    DO ,1 SUB #6 <- #1824
    DO ,1 SUB #7 <- #2135
    DO ,1 SUB #8 <- #2383
    DO ,1 SUB #9 <- #2642
    DO ,1 SUB #10 <- #2892
    DO ,1 SUB #11 <- #3140
    DO ,1 SUB #12 <- #3361
    DO ,1 SUB #13 <- #266
    
    PLEASE DO ,2 <- #1
    PLEASE DO .5 <- #0
    PLEASE DO .4 <- #1

    PLEASE COME FROM (1)
    DO .6 <- ",1 SUB .4"~#255
    DO .6 <- !6~#15'$!6~#240'
    DO .6 <- !6~#15'$!6~#240'
    DO .6 <- !6~#15'$!6~#240'
    
    DO .1 <- .5
    DO .2 <- .6
    PLEASE DO (1010) NEXT
    DO .3 <- .3~#255
    DO .5 <- .6
    
    DO ,2 SUB #1 <- .3
    PLEASE READ OUT ,2

(1) PLEASE DO .4 <- ",1 SUB .4"~#3840
    PLEASE GIVE UP

Externa länkar