Preview The compiler runs in your browser

The speed of a systems language. The clarity of a script.

Zero is a statically typed language with value semantics, deterministic cleanup without a garbage collector, structured concurrency, built-in derivatives, and compile-time code generation.

No install needed: every example on this site compiles and runs right here.

points.zero

Small language, precise rules

Zero keeps the everyday code short and makes the costly parts visible: copies, sharing, failure, and parallelism are all written down.

Values you can reason about

Structs, arrays, and strings are values: assigning one makes an independent copy, and parameters are read-only borrows.

Cleanup without a garbage collector

Classes are shared through counted references and destroyed the moment the last one goes away, so destructors run at a known point.

Errors are values

A result can be a value or a named error. The type says which errors are possible, and try, !!, and match handle them.

Parallel loops that stay deterministic

parallel for splits work across cores. Reductions and appends are checked, so the result never depends on scheduling.

Derivatives built in

Write f'x for the derivative of f with respect to x, or f' for the whole gradient. The compiler derives them.

Code that writes code

$ runs ordinary Zero at compile time. Generators build declarations with the compiler.ast API, and hygiene keeps their names apart.