Top 1K Features Creators Events Podcasts Books Extensions Interviews Blog Explorer CSV

BlooP

< >

BlooP is an esoteric programming language created in 1979.

#1055on PLDB 45Years Old
REPL · Wikipedia

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...


Example from hello-world:
DEFINE PROCEDURE ''HELLO-WORLD'' [N]: BLOCK 0: BEGIN PRINT['Hello World'] BLOCK 0: END. HELLO-WORLD[1];
Example from Wikipedia:
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.

Language features

Feature Supported Example Token
Strings 'Hello world' '
Print() Debugging PRINT

- Build the next great programming language · Add · Issues · About · Search · Keywords · Livestreams · Labs · Resources · Acknowledgements

Built with Scroll v164.7.0