Pseudocode that
actually runs.
X++ is an intent-driven language by Aagastya Verma / Atom Software. Write strict pseudocode — or loose English steps for the AI mode — type one command, and it booms. The ease of Python, the speed of native code, zero dependencies.
RNM=ZITR
fn fib(n):
if n <= 1:
return n
end
return fib(n-1) + fib(n-2)
end
loop i from 0 to 10:
out i, fib(i)
end
0 0 1 1 2 1 3 2 4 3 5 5 6 8 7 13 8 21 9 34 10 55
Everything easy. Nothing missing.
X++ was designed around one idea: if you can write the steps in a notebook, you can run them. No types to annotate, no pointers, no build files, no manual memory management.
Ease of Python
Pseudocode syntax with automatic garbage collection. Write the code, type x run app.xp, done.
Speed of native code
ZITR is a fast NaN-boxed stack VM; ZJIT compiles your .xp straight through C++ to machine code.
Runs everywhere
The VM and native backend are pure C++17 and build on Windows, Linux and macOS. Same .xbc bytecode runs anywhere.
One-command setup
setup.bat / ./setup.sh installs everything by itself — Python, a compiler, the VM, the x command, even the X++ file icon.
An AI intent mode
RNM=ITR hands your loose English steps to an LLM (via OpenRouter) and compiles them into a runnable program.
safe / fail built in
Real exception handling in pseudocode clothing — plus closures, deep recursion to 20,000+ frames and short-circuit and / or.
Six ways to run the same code
Pick an engine with a single header line — or let x auto-detect it. The language never changes; only the machine underneath does.
| Header | Engine | What it is | Needs |
|---|---|---|---|
RNM=ZITR | Native fast VM (default) | NaN-boxed stack VM running .xbc bytecode | xppvm (auto-built) |
RNM=ZCOM | Strict bytecode AOT | .xp → .xbc, verifiable & disassemblable | xppvm |
RNM=ZJIT | Native AOT backend | .xp → C++ → machine code. Runs fastest | xppvm + system C++ compiler |
RNM=XCOM | Legacy strict AOT | .xp → Python bytecode (v0.3, kept) | Python |
RNM=XITR | Legacy fast VM | Python exec code-object cache (v0.3, kept) | Python |
RNM=ITR | AI intent compiler | LLM translates English steps → executable | OpenRouter key |
Native speed, pseudocode soul
Measured on Linux x86-64, CPython 3.11, g++ 12.2 — run them yourself with --bench. Lower is better.
ZJIT times are native execution only — the first build takes ~1 s and is cached (rebuilt only when the source changes). A register-based JIT is on the roadmap to close the last gap to hand-written C.
Download → unpack → setup → boom
The setup script installs everything by itself: Python (only if missing), g++/clang, the native VM, the x command on PATH, and the X++ file logo in your OS.
:: download the repo zip, unpack it, then double-click setup.bat :: …or from a terminal: setup.bat :: write your first program echo out "hello world" > hello.xp x run hello.xp
git clone https://github.com/aagastyaverma6-sys/XPP.git cd XPP ./setup.sh echo 'out "hello world"' > hello.xp x run hello.xp
git clone https://github.com/aagastyaverma6-sys/XPP.git cd XPP ./setup.sh echo 'out "hello world"' > hello.xp x run hello.xp
More than a language
VS Code extension
Syntax highlighting, an X++ file icon theme, and a one-click Code Runner button — wired up automatically by setup.
Xite editor
A bundled beginner-friendly editor (Xite.exe) for writing and running X++ without touching a terminal.
Portable .xbc bytecode
Compile once with x compile app.xp --emit-xbc app.xbc, disassemble it, and run the same file on any OS.
Ready to write pseudocode
that ships?
Try X++ right now in your browser — no install, no account. The same strict pseudocode runs on the native VM when you download it.