Bocconi
L'unità di esecuzione di Lua è chiamata chunk. Un chunk è semplicemente una sequenza di istruzioni che vengono eseguite in modo sequenziale.
chunk ::= {statement [`;´]}
Non ci sono dichiarazioni vuote e quindi ';;' non è legale.
Lua gestisce un chunk come il corpo di una funzione anonima con un numero variabile di argomenti. Come tali, i chunk possono definire variabili locali, ricevere argomenti e valori di ritorno.
Un chunk può essere memorizzato in un file o in una stringa all'interno del programma host. Per eseguire un pezzo, Lua prima precompila il pezzo in istruzioni per una macchina virtuale e poi esegue il codice compilato con un interprete per la macchina virtuale. I percorsi di codice utilizzati di frequente saranno compilati dinamicamente in istruzioni della macchina 80x86 dal compilatore JIT.