Bocconi

L'unità di esecuzione di Lua è chiamata chunk. Un chunk è semplicemente una sequenza di istruzioni che vengono eseguite in modo sequenziale.

Ogni affermazione può essere seguita facoltativamente da un punto e virgola:
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.