ewan's projects — docs
← all docs

plainspeak

August 12, 2026 1 min read
esolangcompilercppc

plainspeak is a deterministic, non-ML esoteric programming language whose syntax is a constrained subset of English — "speak plainly to the computer". It compiles to C99 via a C++20 frontend, then hands off to the system C compiler for the native binary.

Part of the same family of esoteric languages as selenium and numlang.

Build

cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j
./scripts/run_golden_tests.sh build/plainspeak

Without CMake:

g++ -std=c++20 -Wall -Wextra \
  -DPLAINSPEAK_RUNTIME_C="\"$(pwd)/runtime/plainspeak_runtime.c\"" \
  -DPLAINSPEAK_RUNTIME_DIR="\"$(pwd)/runtime\"" \
  -Isrc \
  src/lexer/tokenizer.cpp src/parser/parser.cpp src/codegen/c_emitter.cpp src/cli/main.cpp \
  -o plainspeak

Try It

./plainspeak examples/hello.eng -o hello && ./hello

See docs/grammar.md in the repository for the full syntax reference.

Tech Stack

C++20 frontend (lexer, parser, C emitter) generating C99, compiled with the system C compiler.

Licence

AGPL-3.0 — see LICENSE.


← all docs