Benedictum

From Esolang
Jump to navigation Jump to search
Benedictum
Paradigm(s) imperative
Designed by Benedikt Pankratz (Beneking102)
Appeared in 2026
Memory system Cell-based
Dimensions one-dimensional
Computational class Turing complete
Major implementations Reference implementation (C)
Influenced by Brainfuck
File extension(s) .ben

Benedictum is a esoteric programming language created by Benedikt Pankratz in 2026 with a computational class equivalent to a Bounded-storage machine with infinite input (ie. a finite-state automaton). It is a Brainfuck derivative in which the eight standard instructions are replaced by Latin words, and six additional convenience commands are provided. Unlike most Brainfuck substitutions, Benedictum is not a trivial brainfuck substitution because its extended instruction set adds functionality beyond the original eight commands.

The name is Latin for "blessed" or "well spoken" (bene dictum), and the language is themed around the conceit that every program is a benediction — a prayer whispered to the machine. Because the tokenizer only recognises specific Latin keywords at word boundaries and silently ignores everything else, Benedictum source code can be written as flowing prose with instructions woven in.

Language overview

Benedictum operates on a tape of 30,000 unsigned 8-bit cells, each initially set to zero, with a pointer starting at cell 0. Cells wrap on overflow (255 + 1 = 0) and underflow (0 − 1 = 255).

Core commands

The eight core commands map directly to Brainfuck:

Command Latin meaning Brainfuck Description
bene good + Increment the current cell
male badly - Decrement the current cell
dex right > Move the tape pointer right
sin left < Move the tape pointer left
dic speak . Output the current cell as an ASCII character
audi listen , Read one byte from stdin into the current cell
ora pray [ Begin loop: skip to matching amen if cell is 0
amen so be it ] End loop: jump back to matching ora if cell is non-zero

Extended commands

These commands go beyond standard Brainfuck:

Command Latin meaning Description
lux light Print the current cell as a decimal number
nox night Print a newline character (ASCII 10)
fatum fate Set the current cell to a random value (0–255)
requiem rest Halt the program immediately
sanctus holy Zero the current cell (equivalent to ora male amen)
numerus number Read a decimal integer from stdin into the current cell

Comments and prose

Any text that is not a recognised command keyword at a word boundary is silently ignored. This means entire paragraphs of Latin (or English, or any language) can surround the instructions and serve as natural comments:

This is a prayer to the machine.
Let us begin with a blessing.

bene bene bene bene bene bene bene bene bene
ora dex bene bene bene bene bene bene bene sin male amen

The cell has been sanctified. Now speak.

dex dic

Caveat: Some common English and Latin words are also Benedictum commands — sin, male, amen, ora, fatum, lux. If these appear in prose at a word boundary they will be tokenized as instructions. The interpreter provides a --lex flag to inspect what the tokenizer actually sees.

Computational class

If there weren't any memory restrictions, as the eight core commands are a direct mapping from brainfuck which is known to be Turing complete, this language is turing complete as well. However, the specification clearly says that the program runs on a 30000-cell tape with 8-bit cells, providing only limited memory, so it is only a finite-state automaton. The six extended commands (lux, nox, fatum, requiem, sanctus, numerus) are convenience additions and do not affect the computational class.

Examples

Hello, World!

bene bene bene bene bene bene bene bene
ora
    dex bene bene bene bene
    ora
        dex bene bene
        dex bene bene bene
        dex bene bene bene
        dex bene
        sin sin sin sin male
    amen
    dex bene
    dex bene
    dex male
    dex dex bene
    ora sin amen
    sin male
amen

dex dex dic
dex male male male dic
bene bene bene bene bene bene bene dic dic
bene bene bene dic
dex dex dic
sin male dic
sin dic
bene bene bene dic
male male male male male male dic
male male male male male male male male dic
dex dex bene dic
dex bene bene dic

Cat

audi
ora
    dic
    audi
amen

Dice roll (d6)

Uses the fatum extension to generate a random number, then reduces it modulo 6 and outputs the result as a digit:

fatum lux nox

Truth-machine

Using extended commands for numeric I/O:

numerus
ora
    lux
amen
lux

Interpreter flags

The reference implementation provides additional modes:

Flag Description
--gloria Verbose mode: dumps the full tape state after every instruction
--lex Tokenize only: prints the parsed instruction list and exits
--version Print version string
--help Print usage information

Implementations

Converting from Brainfuck

Any Brainfuck program can be directly translated:

Brainfuck Benedictum
+ bene
- male
> dex
< sin
. dic
, audi
[ ora
] amen

External resources