Learn by changing the code
A small program.
A real compiler.
The Lim compiler runs in this browser. Edit an example, compile it to WebAssembly, and call main. Your source stays on your device.
Source playground.lim
Result Ready
Choose Compile & run or Check only.Download program.wasm ↓
What runs here
Scalar #u64, #i64, #usize, #isize, #bool and (); safe functions and named calls; wrapping arithmetic, comparisons and bit operations; local mutation; branches, blocks and loops; predicate contracts. The normal checker runs before code generation.
Check only also checks self-contained examples with arrays, references, structs and other language features. Runnable output currently excludes memory access, globals, aggregates, matching, saturating arithmetic, floats, narrow integers, labeled/value loops, host I/O and external functions. File imports are unavailable. #usize values retain Lim’s 64-bit scalar semantics here.
This is an experimental teaching backend. The full language reference also describes the broader native compiler.