Top 1,000 Features Creators Events Podcasts Extensions Blog Explorer CSV Download

BlooP

< >

BlooP is an esoteric programming language created in 1979.

#1000on 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

View source

- Build the next great programming language Β· About Β· Resources Β· Acknowledgements Β· Part of the World Wide Scroll