X++ is a versatile and superfast programming language made by Aagastya Verma i.e. Atom Software. It contains various modes with different speeds and a included a fully semantic, algorithmic mode using OpenRouter API.
C++
1
3 commits
updated Sep 24, 2026
![]()
Programming For Everyone
Same pseudocode. Same ease. Now a real native VM.
X++ is an intent-driven language: you write strict pseudocode (or loose English steps for the AI mode), type one command, and it booms. Version 0.4.1 adds a zero-dependency native VM (C++17) so your programs run without Python — the Python stack is still available for the legacy and AI paths.
x run app.xp, done..xp straight to machine code (via portable C++ emitted by the backend, compiled with your system compiler)..xbc (.bc) runs anywhere.Version history: this repo carries the v0.3 legacy release notes; see RELEASE_NOTES_v0.4.1.md for what's new in 0.4.1.
x run app.xp
x auto-detects RNM=ZITR/RNM=ZCOM headers, builds xppvm once if it's missing (needs g++/clang), and runs your pseudocode on the native VM. Everything stays exactly as simple as before — the VM is plumbing, not something you manage.
Subreddit: r/xpplang · Author: Aagastya Verma / Atom Software
| RNM | Name | What it is | Needs |
|---|---|---|---|
RNM=ZITR | Native fast VM (default) | Stack VM over .xbc bytecode | xppvm (auto-built) |
RNM=ZCOM | Strict bytecode AOT | .xp → .xbc bytecode, 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 (v0.3, kept) | OpenRouter key |
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
All the v0.3 pseudocode stays identical: fn / end, if / elif / else / end, while, loop i from a to b step s, loop x in list, safe / fail / end, out, push v to lst, in, read, lists [1,2,3], dicts {"k": v}, true / false / nil, and / or / not, **, %, etc. No pointers, no types to annotate, no manual freeing — the VM garbage-collects automatically.
Windows: download the zip, unpack, then double-click:
setup.bat
macOS / Linux:
./setup.sh ← macOS: double-click setup.command
The setup installs everything by itself — no manual steps:
xppvm) — builds once, installs it with its runtimex command on PATH (with a pip-free shim fallback so it always lands)Then open any editor — VS Code, Notepad, TextEdit, whatever — write:
out "hello world"
save as hello.xp, and:
x run hello.xp
…or in VS Code press the Code Runner run button. Boom. (Restart your terminal / VS Code once after setup so PATH and the icon theme load.)
Optional AI mode (
RNM=ITR) needs an OpenRouter key:export OPENROUTER_API_KEY=...thenx run ai_demo.xp --mode ITR.
# Linux / macOS
make -C native # -> ./xppvm
./xppvm zitr app.xp
# Windows (MinGW-w64)
build_xppvm.bat # -> build\xppvm.exe
x run app.xp # native VM (auto ZITR)
x run app.xp --mode ZJIT # native AOT – fastest
x run app.xp --mode ZCOM # compile + run bytecode
x compile app.xp --emit-xbc app.xbc
x disasm app.xbc # (or: xppvm disasm app.xbc)
x run ai_demo.xp --mode ITR # legacy AI intent mode
xppvm zcom app.xp --disasm # see the bytecode
xppvm zitr app.xp # run directly, no Python at all
xppvm zjit app.xp --keep # build + keep the native binary
--bench)Measured on this machine (Linux x86-64, CPython 3.11, g++ 12.2). ZJIT times are native execution only; the first build takes ~1 s, and is cached (rebuilt only when the source changes).
| Workload | XITR (CPython) | ZITR (VM) | ZJIT (native AOT) |
|---|---|---|---|
sum 1..5,000,000 (bench/sum_loop.xp) | 381 ms | 202 ms | 50 ms |
fib(28) recursive (bench/fib_rec.xp) | 55 ms | 91 ms | 10 ms |
ZITR already beats CPython on hot numeric loops; ZJIT is 5–8× faster than CPython and typically within ~5–10× of hand-written C (a register-based JIT will close the last gap — see release notes).
bash bench/test_all.sh runs 29 golden tests across ZITR, ZJIT and the
legacy XITR engine — semantics (evaluation order, scoping, short-circuit
and/or, empty-container truthiness), control flow, mutual + 20,000-deep
recursion, collections/builtins, safe/error propagation, read, comments
and directives. Both native engines must produce byte-identical output.
X++ is in beta; updates roll out constantly. This is my first programming language — constructive criticism, suggestions, and pull requests drive the project.
RELEASE_NOTES_v0.3.mdRELEASE_NOTES_v0.4.1.md3 commits
C++
57.9%
Python
35.0%
Shell
4.0%
Batchfile
2.7%
X++ is a versatile and superfast programming language made by Aagastya Verma i.e. Atom Software. It contains various modes with different speeds and a included a fully semantic, algorithmic mode using OpenRouter API.
C++
1
3 commits
updated Sep 24, 2026
![]()
Programming For Everyone
Same pseudocode. Same ease. Now a real native VM.
X++ is an intent-driven language: you write strict pseudocode (or loose English steps for the AI mode), type one command, and it booms. Version 0.4.1 adds a zero-dependency native VM (C++17) so your programs run without Python — the Python stack is still available for the legacy and AI paths.
x run app.xp, done..xp straight to machine code (via portable C++ emitted by the backend, compiled with your system compiler)..xbc (.bc) runs anywhere.Version history: this repo carries the v0.3 legacy release notes; see RELEASE_NOTES_v0.4.1.md for what's new in 0.4.1.
x run app.xp
x auto-detects RNM=ZITR/RNM=ZCOM headers, builds xppvm once if it's missing (needs g++/clang), and runs your pseudocode on the native VM. Everything stays exactly as simple as before — the VM is plumbing, not something you manage.
Subreddit: r/xpplang · Author: Aagastya Verma / Atom Software
| RNM | Name | What it is | Needs |
|---|---|---|---|
RNM=ZITR | Native fast VM (default) | Stack VM over .xbc bytecode | xppvm (auto-built) |
RNM=ZCOM | Strict bytecode AOT | .xp → .xbc bytecode, 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 (v0.3, kept) | OpenRouter key |
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
All the v0.3 pseudocode stays identical: fn / end, if / elif / else / end, while, loop i from a to b step s, loop x in list, safe / fail / end, out, push v to lst, in, read, lists [1,2,3], dicts {"k": v}, true / false / nil, and / or / not, **, %, etc. No pointers, no types to annotate, no manual freeing — the VM garbage-collects automatically.
Windows: download the zip, unpack, then double-click:
setup.bat
macOS / Linux:
./setup.sh ← macOS: double-click setup.command
The setup installs everything by itself — no manual steps:
xppvm) — builds once, installs it with its runtimex command on PATH (with a pip-free shim fallback so it always lands)Then open any editor — VS Code, Notepad, TextEdit, whatever — write:
out "hello world"
save as hello.xp, and:
x run hello.xp
…or in VS Code press the Code Runner run button. Boom. (Restart your terminal / VS Code once after setup so PATH and the icon theme load.)
Optional AI mode (
RNM=ITR) needs an OpenRouter key:export OPENROUTER_API_KEY=...thenx run ai_demo.xp --mode ITR.
# Linux / macOS
make -C native # -> ./xppvm
./xppvm zitr app.xp
# Windows (MinGW-w64)
build_xppvm.bat # -> build\xppvm.exe
x run app.xp # native VM (auto ZITR)
x run app.xp --mode ZJIT # native AOT – fastest
x run app.xp --mode ZCOM # compile + run bytecode
x compile app.xp --emit-xbc app.xbc
x disasm app.xbc # (or: xppvm disasm app.xbc)
x run ai_demo.xp --mode ITR # legacy AI intent mode
xppvm zcom app.xp --disasm # see the bytecode
xppvm zitr app.xp # run directly, no Python at all
xppvm zjit app.xp --keep # build + keep the native binary
--bench)Measured on this machine (Linux x86-64, CPython 3.11, g++ 12.2). ZJIT times are native execution only; the first build takes ~1 s, and is cached (rebuilt only when the source changes).
| Workload | XITR (CPython) | ZITR (VM) | ZJIT (native AOT) |
|---|---|---|---|
sum 1..5,000,000 (bench/sum_loop.xp) | 381 ms | 202 ms | 50 ms |
fib(28) recursive (bench/fib_rec.xp) | 55 ms | 91 ms | 10 ms |
ZITR already beats CPython on hot numeric loops; ZJIT is 5–8× faster than CPython and typically within ~5–10× of hand-written C (a register-based JIT will close the last gap — see release notes).
bash bench/test_all.sh runs 29 golden tests across ZITR, ZJIT and the
legacy XITR engine — semantics (evaluation order, scoping, short-circuit
and/or, empty-container truthiness), control flow, mutual + 20,000-deep
recursion, collections/builtins, safe/error propagation, read, comments
and directives. Both native engines must produce byte-identical output.
X++ is in beta; updates roll out constantly. This is my first programming language — constructive criticism, suggestions, and pull requests drive the project.
RELEASE_NOTES_v0.3.mdRELEASE_NOTES_v0.4.1.md3 commits
C++
57.9%
Python
35.0%
Shell
4.0%
Batchfile
2.7%