Programming in the notation every child already knows.
MPL replaces English keywords with mathematical symbols. No translation between thought and code — and it runs, right here, in your browser.
↑ Not a screenshot. The interpreter on this page just computed that.
The Fatima test
“Why do I need to know English to tell a computer what to do? I know math. Isn’t that enough?”
Four out of five people on Earth don’t speak English — yet nearly every programming language is built from it. MPL is built instead from the notation taught in every mathematics classroom in the world: λ, ∀, ∈, ⟹.
Every design decision must pass one test: can a ten-year-old who doesn’t speak English read it with school math alone? If not, we redesign it.
It runs. See for yourself.
This playground is a real interpreter for the M0 core of MPL, implemented on this page. It parses what you type against the language’s actual rules — and tells you honestly when it can’t.
The interface translates. The code never does — switch the page language above and run the same program.
From arithmetic to algorithms
The same path a mathematics course takes. Load any exercise into the playground and change it.
The whole alphabet
Every symbol has exactly one ASCII escape — type it on any keyboard and it becomes the glyph.
| Glyph | Meaning | Type this |
|---|
What is proven, and what is not yet
A mathematics text states its open problems plainly. So do we.
✓ Proven
- The grammar compiles with zero errors and zero warnings — enforced by CI on every push.
- All ten canonical examples parse; every code block in the documentation is machine-checked.
- The M0 core runs — rational numbers, strings, lists, λ, recursion, ∀ loops, guarded alternatives, ∘, ✎ — in the interpreter on this page.
- The semantics are ratified: 89 ratified conformance tests pin every judgment call, and a differential fuzzer holds interpreter and grammar to zero divergence.
? Open
- Type checking: constraints like ∈ ℕ parse today but are not yet enforced.
- Modules (𝓜), resources (〔〕 ⊕ ⊖), channels (⇀ ↽): parsed, no runtime yet.
- Σ, √, ranges [a..b], pattern matching: designed for M1, deliberately absent here.
- The reference runtime beyond the browser core — this is where we need you.