BlooP is an esoteric programming language created in 1979.
#1049on PLDB | 45Years Old |
BlooP and FlooP are simple programming languages designed by Douglas Hofstadter to illustrate a point in his book Gödel, Escher, Bach. BlooP is a non-Turing-complete programming language whose main control flow structure is a bounded loop (i.e. recursion is not permitted). Read more on Wikipedia...
DEFINE PROCEDURE ''HELLO-WORLD'' [N]:
BLOCK 0: BEGIN
PRINT['Hello World']
BLOCK 0: END.
HELLO-WORLD[1];
DEFINE PROCEDURE ''ACKERMANN'' [M, N]:
BLOCK 0: BEGIN
CELL(0) ⇐ M;
OUTPUT ⇐ N;
CELL(1) ⇐ 0;
MU-LOOP:
BLOCK 1: BEGIN
IF CELL(0) = 0, THEN:
BLOCK 2: BEGIN
OUTPUT ⇐ OUTPUT + 1;
IF CELL(1) = 0, THEN: ABORT LOOP 1;
CELL(0) ⇐ TOP [CELL(1)];
CELL(1) ⇐ POP [CELL(1)];
QUIT BLOCK 1;
BLOCK 2: END
IF OUTPUT = 0, THEN:
BLOCK 3: BEGIN
OUTPUT ⇐ 1;
CELL(0) ⇐ MINUS [CELL(0), 1];
QUIT BLOCK 1;
BLOCK 3: END
OUTPUT ⇐ MINUS [OUTPUT, 1];
CELL(1) ⇐ PUSH [MINUS [CELL(0), 1], CELL(1)];
BLOCK 1: END;
BLOCK 0: END.
Feature | Supported | Example | Token |
---|---|---|---|
Strings | ✓ | 'Hello world' | ' |
Print() Debugging | ✓ |