Skip to content
La3 Docs
Browse docs

Introduction

What La3 is, why it exists, and how to read the rest of the language and compiler docs.

What La3 is

A reading language for technical writing, shaped to be clear before it is clever.

La3 is the pseudo-language used across the site for long technical examples. It is built to read like a disciplined mix of Rust, C, TypeScript, and Lua, so the reader can follow intent without stopping to translate syntax first.

The interpreter is the correctness oracle. The compiler is being built on top of that executable spec, which means every new lowering or runtime piece can be checked against known behaviour instead of guessed in isolation.

  • Readable code examples are the primary product.
  • The interpreter stays alive even while the native compiler grows.
  • The compiler plan documents the phases, tradeoffs, and current status in one place.

Design bias

Each source language contributes a specific kind of clarity, and nothing else.

  • Rust contributes immutability-by-default, enums with data, pattern matching, ownership, and explicit interfaces.
  • C contributes low-level vocabulary such as fixed-size arrays, raw pointers, and memory layout awareness.
  • TypeScript contributes optional chaining, null coalescing, and a familiar interface shape.
  • Lua contributes nil, multiple return values, and floor division where it is genuinely useful.

Reading order

The docs are written so a contributor can start broad and then drill into semantics.

Start with the getting-started page, then the language surface, then the compiler pipeline. The deeper pages assume the earlier ones have already established the naming and mental model.

  • Introduction: what the project is and how the docs are organized.
  • Language pages: syntax, types, control flow, data structures, memory.
  • Compiler pages: HIR, MIR, runtime, backend, and build strategy.
  • Dynamic stdlib: the independence model and the two build profiles.