What is the URCL file format?
A .urcl file holds source code written in URCL, the Universal Reduced Computer Language. URCL is a RISC-assembly-like intermediate language built to be as simple as possible, so simple that hand-wired Minecraft redstone CPUs can run programs written in it. That redstone origin is why some community docs expand the name as "Universal Redstone Computer Language."
The file is plain text with one instruction per line. It starts with header directives such as BITS, MINREG, MINHEAP, and MINSTACK that describe the word size and resources a program needs, followed by a body of instructions like IMM, ADD, JMP, OUT, and HLT. Labels use a leading dot and comments use //. Instructions are split into Core, Basic, and Complex tiers, so a compiler only has to implement the small Core set and can lower the rest.
Unlike real assembly, URCL hides hardware details such as branch delay slots, flags, and IO timing, which makes it a friendly way to learn low-level programming or to describe a program that many different CPUs can run.
Security & safety
RISK: LOWA .urcl file is human-readable text and cannot execute on its own; opening it in an editor is harmless. The only theoretical risk is running an untrusted URCL program inside an emulator or compiler, which is sandboxed and far safer than running an unknown binary. Verify a file is genuine URCL source before compiling it.
Format details
in a nutshell- Universal Systems Language (USL) - Unrelated software-engineering language occasionally abbreviated near URCL in searches; does not use the .urcl extension.
- UNCOL - Historical universal intermediate-language concept that comes up alongside URCL as prior art but is a separate, unrelated idea with no .urcl files.
Programs that open URCL files
py URCL.py <ISA> program.urcl output.txt to compile the file to a target instruction set or emulate it. Technical details
deep spec| Encoding | Plain text (ASCII / UTF-8), one instruction per line |
| Byte order | N/A (text format) |
| Container | None; flat text file |
| Typical size | A few hundred bytes to tens of kilobytes |
| Structure | A header block of directives (BITS, MINREG, MINHEAP, MINSTACK, RUN) followed by a body of instructions, labels (prefixed with a dot), register operands (R1, R2 or $1), immediates, memory addresses (M-prefixed), ports, and comments introduced with //. Instructions fall into Core, Basic, and Complex tiers, for example IMM, ADD, SUB, JMP, BRZ, LOD, STR, OUT, IN, HLT. |
| Platforms | Windows, macOS, Linux |
| Notes | URCL is a RISC-like intermediate assembly language, not a native machine ISA. A URCL program is compiled or translated to a target instruction set (a real CPU ISA or a Minecraft redstone CPU) via a per-architecture config, or run directly in a URCL emulator. Preprocessor directives such as @DEFINE, @INCLUDE and @PRAGMA and macro support are provided by some toolchains. |
| Initial Release Full | Around 2020, growing out of the Minecraft redstone computer community |
| Structure Tiers | Core (7 fundamental instructions every backend must translate), Basic, and Complex (higher-level operations like multiply/divide and function calls that the compiler can lower to Core) |
| Released | 2020 |
| Latest version | URCL 1.4.0 (specification revision) |
| Open standard | Yes · royalty-free |
| Specification | github.com |
URCL conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about URCL files.