INTERCAL

Från Wikipedia
Hoppa till: navigering, sök

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[redigera | redigera wikitext]

"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[redigera | redigera wikitext]