A
**AST (Abstract Syntax Tree)** - Tree representation of source code structure
**Array** - Fixed-size, ordered collection of same-type elements
C
**Canonical Style** - The ONE correct way to write each NanoLang construct
**cond** - Expression-level conditional (returns value)
**Coverage** - Measurement of code execution during testing
E
**Extern** - Function defined in C, callable from NanoLang
F
**FFI (Foreign Function Interface)** - Mechanism to call C functions
H
**HashMap** - Key-value collection with O(1) lookup
L
**LLM-First** - Design principle optimizing for AI code generation
O
**Opaque Type** - Type whose internal structure is hidden
P
**Prefix Notation** - Function calls and operator expressions of the form (f x y) instead of f(x, y). NanoLang uses prefix notation for function calls and supports both prefix (+ a b) and infix a + b notation for binary operators
**Property Testing** - Testing with randomly generated inputs
S
**Self-Hosting** - Compiler written in the language it compiles
**Shadow Test** - Compile-time test block attached to function
**stdlib** - Standard library (built-in modules)
T
**Transpiler** - Compiler that converts NanoLang to C
**TUI (Text User Interface)** - Terminal-based user interface
U
**Unsafe Block** - Code region that can call extern functions
---
**Previous:** Appendix C: Troubleshooting