Chunks
Die Ausführungseinheit von Lua wird als "Chunk" bezeichnet. Ein Chunk ist einfach eine Folge von Anweisungen, die sequenziell ausgeführt werden.
chunk ::= {statement [`;´]}
Da es keine leeren Anweisungen gibt, ist ';;' nicht zulässig.
Lua behandelt einen Chunk als den Körper einer anonymen Funktion mit einer variablen Anzahl von Argumenten. Somit können Chunks lokale Variablen definieren, Argumente empfangen und Werte zurückgeben.
Ein Chunk kann in einer Datei oder in einer Zeichenfolge innerhalb des Hostprogramms gespeichert werden. Für die Ausführung eines Chunks kompiliert Lua zunächst den Chunk in Anweisungen für eine virtuelle Maschine vor und führt danach den kompilierten Code mit einem Interpreter für die virtuelle Maschine aus. Häufig verwendete Codepfade werden vom JIT-Compiler dynamisch in 80x86-Maschineninstruktionen kompiliert.