O que é o formato de ficheiro URCL?
Um arquivo .urcl contém código-fonte escrito em URCL, a Universal Reduced Computer Language. A URCL é uma linguagem intermediária semelhante ao assembly RISC, construída para ser o mais simples possível, tanto que CPUs de redstone do Minecraft montadas à mão podem executar programas escritos nela. Essa origem no redstone é o motivo pelo qual alguns documentos da comunidade expandem o nome como «Universal Redstone Computer Language».
O arquivo é texto simples com uma instrução por linha. Ele começa com diretivas de cabeçalho como BITS, MINREG, MINHEAP e MINSTACK que descrevem o tamanho da palavra e os recursos que um programa precisa, seguidos por um corpo de instruções como IMM, ADD, JMP, OUT e HLT. Rótulos (labels) usam um ponto inicial e comentários usam //. As instruções são divididas nos níveis Core, Basic e Complex, de modo que um compilador só precisa implementar o pequeno conjunto Core e pode reduzir o restante.
Ao contrário do assembly real, a URCL oculta detalhes de hardware, como slots de atraso de desvio (branch delay slots), sinalizadores (flags) e temporização de IO, o que a torna uma maneira amigável de aprender programação de baixo nível ou de descrever um programa que muitas CPUs diferentes podem executar.
Segurança e proteção
RISCO: 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.
Detalhes do formato
em resumo- 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.
Programas que abrem arquivos URCL
py URCL.py <ISA> program.urcl output.txt to compile the file to a target instruction set or emulate it. Detalhes técnicos
especificação profunda| 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) |
| Lançado | 2020 |
| Versão mais recente | URCL 1.4.0 (specification revision) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | github.com |
Conversões de URCL
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos URCL.