Befunge

Befunge is een esoterische programmeertaal die in 1993 ontwikkeld werd door Chris Pressey. Het is een stackgebaseerde taal met reflectie. Een programma wordt geschreven in een rooster van 80 kolommen en 25 rijen. Via richtinstructies wordt de richting die het programma uitgaat gedefinieerd. Op die manier kunnen ook lussen gemaakt worden.

Geschiedenis

Bij de ontwikkeling van Befunge probeerde Pressey een taal te creëren die zo moeilijk mogelijk is om te compileren. Desondanks is er vervolgens een aantal compilers voor geschreven. Nadien is er een aantal uitbreidingen ontwikkeld op de originele Befunge-93. Extensies op en varianten van Befunge worden fungeoids of funges genoemd. De huidige standaard is Funge-98 waar het aantal dimensies aanpasbaar is en die multithreading ondersteunt met meerdere instructiepointers. Als uitvoering van het programma in het 80×25-rooster aan de rand komt gaat het verder aan de overliggende zijde van het rooster. Hierdoor is de originele Befunge niet turingvolledig. Funge-98 elimineerde ook die restrictie.

Instructies

Voorbeelden

Hello World

Het klassieke Hello World:

>              v
v  ,,,,,"Hello"<
>48*,          v
v,,,,,,"World!"<
>25*,@

Willekeurig cijfergenerator

Volgend voorbeeld genereert een oneindige uitvoer van willekeurige cijfers van 1 tot 9:

vv  <      <
    2
    ^  v<
 v1<?>3v4
    ^   ^
>  >?>  ?>5^
    v   v
 v9<?>7v6
    v  v<
    8
 .  >  >   ^
^<