BlooP is an esoteric programming language created in 1979.
#973on PLDB | 45Years Old |
Try now: Replit
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 | Token | Example |
---|---|---|---|
Strings | β | ' | 'Hello world' |
Print() Debugging | β |