NURL

Introduction

NURL colored full logo

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 unsafe functions) 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 in docs/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

On this page