Start here
Tape and Stack Based Esoteric Languages
A comparison of esoteric languages that use a tape, a stack or a few counters as their only memory, and what each choice makes easy or awkward.
More Esoteric Languages
Brainfuck, stack machines and related memory models.
Start here
A comparison of esoteric languages that use a tape, a stack or a few counters as their only memory, and what each choice makes easy or awkward.
A survey of the kinds of changes found in languages derived from Brainfuck, from cell size and end-of-input behavior to bit cells and extra commands.
Learn the standard Brainfuck idioms: clearing a cell, moving and copying values, counting loops, and simple multiplication, each with a worked example.
How programs built by joining functions end to end on a stack work, why any split of the text is a valid program, and where esoteric languages echo the idea.
An explanation of counter machines, languages with only counters, increment, decrement and zero tests, including a worked addition program and what they show.
Compare tape, stack, queue and grid storage in esoteric languages, and see what kinds of programs each memory layout makes natural or painful.
See how renaming Brainfuck's eight commands, as Ook does with its three word forms, makes a new-looking language that is still the same underneath.
Learn how a stack machine evaluates expressions by following small esoteric languages step by step, with traced examples in postfix and Befunge style.
Contrast one-dimensional tape execution in Brainfuck with an instruction pointer moving over a plane in Befunge, and see where code and data live in each.
A look at Underload and other tiny stack languages that treat code as strings to store, duplicate, join and run, with short traced examples.
Outline of a compact Brainfuck interpreter in Python, including bracket matching with a stack, tape handling, input and output, and basic error checks.
Related topics