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. This is easier to parse for the AI and results in lower token usage. The grammar fits on one page and parses with at most 4 tokens of lookahead (LL(k≤4)).
  • Reproducible builds (deterministic compilation) -- same source produces byte-identical output on every supported platform.
  • Single-owner memory -- values auto-drop at scope exit.
  • Static borrow checker -- rejects use-after-move, alias-double-free, escaping closure-captures, and iterator invalidation at compile time.
  • One LLVM pipeline -- the same codegen path targets Linux, macOS, Windows, wasm32-wasi, RISC-V, and ARM64 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