Eight ASCII tokens — > < + - . , [ ] — operating on a byte tape. The 1993 Urban Müller original. Generated here from a Babel parameter sheet, not hand-rolled.
The same eight operations, with Rioplatense Spanish surface tokens — che, vení, más, menos, decí, escuchá, mientras, ya. Same semantics, different parameter sheet, same Babel runtime.
Translate vanilla Brainfuck → Rioplatense tokens
David Morgan-Mar's 2001 Brainfuck derivative whose surface syntax consists entirely of pairs of three base tokens — Ook., Ook?, Ook!. Each canonical Brainfuck instruction maps to a unique pair, on the premise that the language should be "easily writable by orangutans" (a nod to the Discworld librarian). Same semantics as vanilla BF; the multi-atom whitespace tokenizer shipped in Babel v0.3.0 reads the two-Ook pair as one instruction.
A Brainfuck derivative whose surface tokens are Spanish words from the vocabulary of the Mexican comedian Roberto Gómez Bolaños (Chespirito): chilindrina, chiquitolina, chompiras, chaparrón, chipote, chillón, chanfle, chapulín. Adds chiripiolca, a randomness primitive named for La Chilindrina's chiripiolca attack. With Rioplatense and Mierda, this completes Babel's Spanish-language BF trio across the three Spanish registers.
A pure peninsular-Spanish vocabulary skin on canonical Brainfuck: Mas, Menos, Derecha, Izquierda, Decir, Leer, Iniciar Bucle, Terminar Bucle. Mixes single-atom tokens with two-atom tokens (Iniciar Bucle, Terminar Bucle) in one sheet — exercising the multi-atom tokenizer in a mixed configuration. Mierda's only known prior implementation was a fragile Common Lisp interpreter; the Babel parameter sheet revives the language as an executable artefact.
A 2014 trivial Brainfuck substitution by User:domi382 using all-caps German nouns — LINKS, RECHTS, ADDITION, SUBTRAKTION, EINGABE, AUSGABE, SCHLEIFENANFANG, SCHLEIFENENDE. Pure vocabulary skin, single-atom whitespace tokens. Methodological exemplar of a non-Spanish, non-English natural-language register on the same Babel parameter-sheet schema.
Plain-letter substitution: eight single lowercase ASCII letters — a c e i j o p s — replace the eight Brainfuck punctuation glyphs. ASCII-punctuation encoding with alphabetic tokens; the shortest possible single-character vocabulary skin. A program reads as nonsense English; the semantics are pure canonical BF.
Each canonical Brainfuck instruction is a Bagua trigram of the I Ching — 乾, 兑, 离, 震, 巽, 坎, 艮, 坤. Single Unicode-codepoint tokens written adjacently without separators. Babel's single-character tokenizer iterates by codepoint, so non-ASCII single-character tokens work natively. Clean Unicode-axis exemplar.
Brainfuck in Pokémon-syllable tokens — pipi, pichu, pi, ka, pikachu, pikapi, pika, chu. The tokens contain prefix overlaps (pi ⊂ pikapi, pika ⊂ pikachu) but the spec is whitespace-separated, so atom-by-atom matching is unambiguous — Babel's single-atom fast path handles it without longest-match logic.
The Chilean Spanish entry in the Spanish-language BF coverage matrix — sixteen tokens of Chilean slang. Beyond the canonical eight, La Weá ships aweonao/maraco (+2 / -2 in one op), maraca (zero cell), perkin (stateful copy/paste buffer), chúpala/brígido (integer I/O regardless of spec-wide IOModel), mierda (explicit halt), and pico (jump out of the nearest loop — schema-legal in Babel v0.5.1, runtime stub raises until the loop-stack extension lands). All other ops execute end-to-end. Completes the four-register set (Argentine / Mexican / peninsular / Chilean).
Babel's first non-tape base machine (shipped v0.4.0). A minimal synthetic stack language demonstrating the runtime: eight whitespace-separated tokens — push (with an integer operand: arity 1), pop, dup, swap, add, sub, emit (output as char), print (output as decimal). Same Babel parameter-sheet schema, different base machine; dispatched at the package level by babel.run based on spec.base_machine.
The canonical One Instruction Set Computer (Mavaddat & Parhami, 1988), implemented in Babel v0.4.1. Source is whitespace-separated signed integers in triples a b c: subtract mem[a] from mem[b]; if mem[b] ≤ 0 jump to c. Self-modifying memory; halt on c < 0 or PC past end. Address -1 is the I/O port — a == -1 reads stdin into mem[b], b == -1 emits the low byte of mem[a] to stdout.
Wouter van Oortmerssen's 1993 stack language — same year as Brainfuck, and a near-direct ancestor of Befunge's stack discipline. Canonical FALSE writes 5 3+.; this sheet uses an explicit push N form for integer literals (Babel's STACK_PUSH has arity 1) and keeps FALSE's single-glyph operators for the rest — + - * / _ = > , . plus $ %% \ @ for dup/pop/swap/rot. Output: , for char, . for int.
A 1998 binary-prefix encoding of Brainfuck by Steve Wells — 1 for increment, prefix-free codes (000, 010, 011, 00100, 00101, 00110, 00111) for the rest. Variable-length binary tokens parsed greedily by longest-match (Babel v0.6.1 VARIABLE_LENGTH_BINARY tokenizer). Whitespace between bit-codes is optional and ignored — but any literal 0 or 1 in a comment is part of the program.
Word-length-as-instruction: a 1-letter word is increment, 2-letter is decrement, 3-letter is right, …, 8-letter is loop-end. Surface characters are irrelevant; only the count of letters between whitespace matters (Babel v0.6.1 WORD_LENGTH_DISPATCH tokenizer). The result reads as plausible prose while encoding a Brainfuck program — the surface and the semantics are fully decoupled.
Chris Pressey's 1993 fungeoid 2D-grid language — the instruction pointer walks an 80×25 toroidal playfield, changing direction on arrow glyphs (> < ^ v), pushing digits onto a stack, doing arithmetic, and emitting via , (char) or . (int). String mode ("…") and the bridge (#) make compact programs possible; the canonical Hello World fits on one line. Babel's fourth base machine, shipped v0.6.2.
An esoteric language whose semantics flow from the grammatical features of Rioplatense Argentine Spanish: ser/estar for immutable/mutable bindings, mood for evaluation strategy, aspect for eager/lazy, clitic ordering for argument routing, diminutive/augmentative for numeric scaling. Programs are written in Spanish prose. Read the design paper →
Donald R. Woods & James M. Lyon's 1972 INTERCAL — the original "Compiler Language With No Pronounceable Acronym", designed to bear "no resemblance to any extant programming language". Statements must be prefixed DO or PLEASE; the parse-time politeness gate requires that the count of PLEASEs be strictly between 1/5 and 1/3 of total statements (too few → PROGRAMMER IS INSUFFICIENT; too many → PROGRAMMER IS OVERLY POLITE). I/O is in extended Roman numerals (output) and butchered-English digits (input). DO COME FROM (label) hijacks control as soon as the labelled statement finishes. MVP-INTERCAL implements ~70% of the 1972 spec as a hand-built sibling package. Witness Mode shows the per-statement variable map across all four namespaces.
John Conway's 1987 FRACTRAN — a program is a list of fractions; machine state is a single positive integer N; each step walks the list and picks the first fraction num/den where N × num is divisible by den, then sets N := N × num / den. The machine halts when no fraction divides cleanly. Famously Turing-complete despite the trivial machine. We emit one line per intermediate N that's a pure power of 2 (the log2 exponent) — Conway's PRIMEGAME uses this trick to enumerate the primes: its 14-fraction program emits 2, 3, 5, 7, 11, 13, … inside the 5000-step cap. Stdin = initial N; defaults to 2. Witness Mode shows N evolution step by step, with the matched fraction highlighted in the source.
Edwin Brady & Chris Morris's 2003 Whitespace — only space, tab, and line-feed are syntactically meaningful; every other character is a comment. A program with a thousand lines of poetry and three spaces, a tab, and a newline at the bottom of a paragraph is a perfectly valid program (whose semantics are: those exact three bytes). Stack-and-heap-based with subroutine call/return and bounded labels; integers are arbitrary-precision. The .ws files in the sample dropdown look empty in any normal editor — the source pane below renders each byte visibly (· = space, → = tab, ¶ = newline). Witness Mode steps through the bytes, highlighting which exact whitespace bytes belong to each instruction.