Introduction
NURL (Neural Unified Representation Language) has no virtual machine, garbage collector, or interpreter. The nurlc compiler compiles .nu files straight to a native executable or a WebAssembly module.
Work In Progress
- This site is a simplified, hand-maintained companion to the repository documentation, and does not yet cover everything.
- For the exhaustive, normative reference, see docs in the repository.
Features of NURL
NURL targets LLM code generation specifically. The regular grammar means errors stay local and a whole program fits predictably in a context window.
- Prefix-arity grammar -- every construct has a fixed arity and there is no infix/precedence table to learn. The grammar fits on one page, parses with at most 4 tokens of lookahead (LL(k≤4)), keeps errors local, and yields high first-pass and single-round diagnostic repair compile rates for LLMs.
- Reproducible builds (deterministic compilation) -- same source produces byte-identical output on every supported platform.
- Single-owner memory & mechanized soundness -- values auto-drop at scope exit, and a static borrow checker rejects use-after-move, alias-double-free, escaping closure-captures, and iterator invalidation at compile time. Every safe NURL program (outside
unsafefunctions) is memory-safe, leak-free, and data-race-free, backed by a soundness hole probe for every hole ever closed (tools/fuzz/holes/; an open one is listed indocs/LIMITATIONS.md) and a mechanized Lean 4 soundness proof (formal/, phases A1–A3:A2.memory_safe,A2.no_leak_end,A3.claim_full). - One LLVM pipeline -- the same codegen path targets native binaries (Linux, macOS, Windows, FreeBSD), WebAssembly (
wasm32-wasi), bare-metal Unikernels (x86_64, AArch64, RISC-V64), and embedded microcontrollers (ESP32, RISC-V) without per-platform ports.
State of NURL
NURL is actively developed and is now in a pre-release state. See ROADMAP.md for the latest version.
Major changes now happen less often. The team plans a stable release for late 2026.
Requirements
- Only clang / LLVM 15 or newer if you build from source
Get NURL
Installation — The nurlc compiler (and the nurlpkg / nurlfmt tools)
Language basics — write and understand a minimal "hello world" program
Compiling and running — the compile pipeline, the nurl wrapper, and useful flags.
Next steps — the language guide, the standard library, the examples folder, and the online playground.
Last updated on