๐งฌ VIREX โ The VIRtual EXecuter¶
VIREX is a portable, lightweight virtual machine that runs programs written in a custom intermediate language called SASM โ Simulated Assembly. Think of it as the JVM for your own language, but with transparency, control, and a fully editable instruction set.
Designed to be educational and extensible, VIREX opens the door to systems-level thinking without forcing you to dive into raw x86 or ARM.
๐งญ What Is SASM?¶
SASM is a human-readable assembly-like language designed to serve as the intermediate representation (IR) for any compiler targeting the VIREX runtime. Unlike conventional bytecode formats:
- ๐ข It's text-based, not binary โ easy to inspect, diff, and version.
- โ๏ธ It's editable by hand โ write or tweak your programs directly in SASM.
- ๐งฉ It's tooling-friendly โ build compilers, assemblers, visualizers, and analyzers around it.
If LLVM IR is too complex and raw bytecode is too opaque, SASM is your sweet spot.
๐ง Why SASM + VIREX?¶
Whether you're a language designer, systems programmer, or just curious how virtual machines and compilers work, SASM and VIREX provide the perfect sandbox.
Hereโs what makes it special:
| Feature | Benefit |
|---|---|
| Open Instruction Set | Customize or extend the VM with new opcodes and semantics |
| Portable Execution | Write once, run anywhere VIREX runs |
| Clean Syntax | Designed for learning, debugging, and experimentation |
| Tooling Ecosystem | Includes assembler, AST visualizer, VS Code syntax theme, and more |
| Compiler-Ready | Ideal IR target for custom languages like ORIN |
๐ ๏ธ What's Included?¶
VIREX isn't just a VM; it's a whole ecosystem for low-level development:
- ๐งพ SASM Assembler: Translates
.sasmfiles into VM-executable binaries. - ๐ AST Visualizer: Graphical output of the instruction flow and scope tree.
- ๐จ VS Code Theme: Rich syntax highlighting for SASM to improve readability.
- โ๏ธ Extensible Runtime: Easily add new registers, memory models, or system calls.
- ๐งช ORIN Language (WIP): A high-level language that compiles directly to SASM.
๐ฎ The Vision¶
Our mission is to make systems programming approachable!
VIREX is designed for education, experimentation, and language development. By abstracting away the messiness of real hardware and binary formats, it lets you focus on:
- Designing instruction sets
- Writing your own compiler backends
- Learning how registers, stacks, and memory behave under the hood
- Debugging complex logic through visual ASTs
๐ค Get Involved¶
Whether youโre:
- a student learning compilers or virtual machines,
- an educator looking for hands-on systems material,
- a hacker building your own language,
VIREX welcomes contributions and collaboration. Visit our GitHub repo, try out SASM, or contribute to ORIN โ our experimental high-level language.
Ready to run your first virtual assembly program? Get started โ