Hva er URCL-filformatet?
En .urcl-fil inneholder kildekode skrevet i URCL, Universal Reduced Computer Language. URCL er et RISC-assembler-lignende mellomspråk bygget for å være så enkelt som mulig, så enkelt at håndkoblede Minecraft-redstone-CPU-er kan kjøre programmer skrevet i det. Dette redstone-opphavet er grunnen til at enkelte dokumenter i miljøet utvider navnet til «Universal Redstone Computer Language».
Filen er ren tekst med én instruksjon per linje. Den starter med hodedirektiver som BITS, MINREG, MINHEAP og MINSTACK som beskriver ordstørrelsen og ressursene et program trenger, etterfulgt av en hoveddel med instruksjoner som IMM, ADD, JMP, OUT og HLT. Etiketter (labels) bruker et punktum foran, og kommentarer bruker //. Instruksjonene er delt inn i nivåene Core, Basic og Complex, slik at en kompilator bare trenger å implementere det lille Core-settet og kan bryte ned resten.
I motsetning til ekte assembler, skjuler URCL maskinvaredetaljer som «branch delay slots», flagg og IO-timing, noe som gjør det til en brukervennlig måte å lære lavnivåprogrammering på eller å beskrive et program som mange forskjellige CPU-er kan kjøre.
Sikkerhet og trygghet
RISIKO: 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.
Formatdetaljer
i et nøtteskall- 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.
Programmer som åpner URCL-filer
py URCL.py <ISA> program.urcl output.txt to compile the file to a target instruction set or emulate it. Tekniske detaljer
dyp spesifikasjon| 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) |
| Utgitt | 2020 |
| Siste versjon | URCL 1.4.0 (specification revision) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | github.com |
URCL-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om URCL-filer.