INTERCAL

INTERCAL

INTERCAL ist eine esoterische Programmiersprache, die am 26. Mai 1972 von Donald R. Woods und James M. Lyon entwickelt wurde. Erst 1990 wurde eine erste UNIX-Implementierung von Eric S. Raymond programmiert, heute ist INTERCAL auch auf DOS verfügbar.

INTERCAL wurde mit dem Ziel entwickelt, das Programmieren schwierig zu gestalten und die entstehenden Programme effektiv unlesbar zu machen. Insofern ähnelt INTERCAL keiner der bekannten Programmiersprachen, hat sehr wenige Sprachkonstrukte und ist schwer zu erlernen. Besonders berühmt ist der „ComeFrom“ Befehl, der invers an den Goto-Befehl vieler Programmiersprachen angelehnt ist.

INTERCAL wird von einer kleinen Fan-Gemeinde gepflegt und kann dem interessierten Programmierer zur Erheiterung oder Rätsellösung dienen.

Beispiel ROT13-Programm

   (10) PLEASE DON'T GIVE UP
   (1) DO .2 <- '?.1$#64'~'#0$#65535'
   DO .2 <- '&"'.1~.2'~'"?'?.2~.2'$#32768"~"#0$#65535“'"$".2~.2“'~#1
   DO .3 <- '?#91$.1'~'#0$#65535'
   DO .3 <- '&"'#91~.3'~'"?'?.3~.3'$#32768"~"#0$#65535“'"$".3~.3“'~#1
   DO (11) NEXT
   DO (2) NEXT
   DO (12) NEXT
   (11) DO (13) NEXT
   PLEASE FORGET #1
   DO (12) NEXT
   (13) DO (14) NEXT
   PLEASE FORGET #2
   DO (12) NEXT
   (14) DO STASH .1
   DO .1 <- .3
   DO (1000) NEXT
   DO .1 <- .3
   DO .2 <- #1
   PLEASE DO (1000) NEXT
   DO RETRIEVE .1
   PLEASE RESUME .3
   (12) PLEASE FORGET #1
   DO .2 <- '?.1$#96'~'#0$#65535'
   DO .2 <- '&"'.1~.2'~'"?'?.2~.2'$#32768"~"#0$#65535“'"$".2~.2“'~#1
   DO .3 <- '?#123$.1'~'#0$#65535'
   DO .3 <- '&"'#123~.3'~'"?'?.3~.3'$#32768"~"#0$#65535“'"$".3~.3“'~#1
   PLEASE DO (15) NEXT
   PLEASE DO (3) NEXT
   DO (16) NEXT
   (15) DO (17) NEXT
   PLEASE FORGET #1
   DO (16) NEXT
   (17) DO (18) NEXT
   PLEASE FORGET #2
   DO (16) NEXT
   (18) PLEASE STASH .1
   DO .1 <- .3
   DO (1000) NEXT
   DO .1 <- .3
   DO .2 <- #1
   DO (1000) NEXT
   PLEASE RETRIEVE .1
   PLEASE RESUME .3
   (16) PLEASE FORGET #1
   DO RESUME #1
   (2) DO .2 <- #65
   DO (1010) NEXT
   PLEASE .1 <- .3
   PLEASE .2 <- #13
   DO (1000) NEXT
   DO STASH .3
   DO .1 <- .3
   DO .2 <- #26
   DO (1040) NEXT
   DO .1 <- .3
   DO (1030) NEXT
   DO .2 <- .3
   DO RETRIEVE .3
   DO .1 <- .3
   DO (1010) NEXT
   DO .1 <- .3
   DO .2 <- #65
   DO (1000) NEXT
   DO .1 <- .3
   DO RESUME #1
   (3) DO .2 <- #97
   DO (1010) NEXT
   DO .1 <- .3
   DO .2 <- #13
   DO (1000) NEXT
   DO STASH .3
   DO .1 <- .3
   DO .2 <- #26
   DO (1040) NEXT
   DO .1 <- .3
   DO (1030) NEXT
   DO .2 <- .3
   DO RETRIEVE .3
   DO .1 <- .3
   DO (1010) NEXT
   DO .1 <- .3
   DO .2 <- #97
   DO (1000) NEXT
   DO .1 <- .3
   DO RESUME #1
   DO COME FROM (10)
   DO .4 <- #0
   DO .5 <- #0
   DO STASH .4 + .5
   DO ,1 <- #1
   DO COME FROM (33)
   DO WRITE IN ,1
   DO .1 <- ,1 SUB #1
   DO (31) NEXT
   PLEASE DO .6 <- #1
   PLEASE DO (34) NEXT
   (32) PLEASE RESUME '?.1$#256'~'#256$#256'
   (31) DO (32) NEXT
   DO FORGET #1
   DO .6 <- #0
   PLEASE DO (34) NEXT
   (33) DON'T GIVE UP
   (34) DO .6 <- "?!6'$#1"~#3
   DO (40) NEXT
   DO GIVE UP
   (40) DO (41) NEXT
   PLEASE FORGET #1
   DO (42) NEXT
   (41) DO RESUME .6
   (42) DO FORGET #1
   DO RETRIEVE .4
   DO .2 <- .4
   DO (1000) NEXT
   DO .4 <- .3~#255
   DO .3 <- .4
   DO STASH .4
   DO .1 <- .3
   DO (1) NEXT
   DO .3 <- !1~#15'$!1~#240'
   DO .3 <- !3~#15'$!3~#240'
   DO .2 <- !3~#15'$!3~#240'
   DO .1 <- .5
   DO (1010) NEXT
   DO .5 <- .2
   DO ,1 SUB #1 <- .3
   PLEASE READ OUT ,1
   PLEASE RESUME #1

Literatur

  • Oliver Lau, Hexenwerk - Ein Plädoyer für esoterische Programmiersprachen, c’t 22/07, S. 192-199 sowie c’t extra 02/09, S. 40-45.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • INTERCAL — INTERCAL, a programming language parody, is the canonical esoteric programming language. It was created by Don Woods and James M. Lyon, two Princeton University students, in 1972. It satirizes aspects of the various programming languages at the… …   Wikipedia

  • INTERCAL — INTERCAL, est une parodie de langage de programmation, et la référence canonique des langages de programmation ésotériques. Ce langage a été créé par Don Woods et James M. Lyon, deux étudiants de l Université de Princeton, en 1972. Il tourne en… …   Wikipédia en Français

  • Intercal — ist eine esoterische Programmiersprache, die am 26. Mai 1972 von Donald R. Woods und James M. Lyon entwickelt wurde. Erst 1990 wurde eine erste UNIX Implementierung von Eric S. Raymond programmiert, heute ist INTERCAL auch auf DOS verfügbar.… …   Deutsch Wikipedia

  • INTERCAL — es un lenguaje de programación esotérico diseñado para ser extremadamente difícil de entender. Es una parodia de los lenguajes de programación FORTRAN y COBOL. Fue creado por Don Woods y James Lyons, estudiantes de Princeton, en 1972. La versión… …   Wikipedia Español

  • INTERCAL — es un lenguaje de programación esotérico diseñado para ser extremadamente difícil de entender. Es una parodia de los lenguajes de programación FORTRAN y COBOL. Fue creado por Don Woods y James Lyons, estudiantes de Princeton, en 1972. La versión… …   Enciclopedia Universal

  • INTERCAL — «Джимбо» (Джеймс) Лайон, один из авторов INTERCAL INTERCAL один из старейших эзотерических языков программирования. Как утверждают создатели, его название означает «Язык программирования с непроизносимой аббревиатурой» (англ …   Википедия

  • INTERCAL — ● /in t*r kal/ np. m. ►LANG Langage de programmation créé en 1972 par Don Woods et James Lyons, dont le principal intérêt est d être illisible à haute voix (i.e. impossible à prononcer) INTERCAL est d ailleurs l acronyme de Langage Compilé Sans… …   Dictionnaire d'informatique francophone

  • INTERCAL — noun a parody programming language …   Wiktionary

  • intercal — a (L). Insert …   Dictionary of word roots and combining forms

  • Striking Price Intercal — The distance between striking prices on a particular underlying security. Normally, the interval is 2 1/2 points for stocks under $25, 5 points for stocks selling over $25 per share, and 10 points (or greater) is acceptable for stocks over $200… …   Financial and business terms

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”