Trozos

La unidad de ejecución de Lua se llama chunk. Un chunk es simplemente una secuencia de sentencias, que se ejecutan secuencialmente.

Cada declaración puede ir seguida opcionalmente de un punto y coma:
chunk ::= {statement [`;´]}

No hay sentencias vacías, por lo que ';;' no es legal.

Lua maneja un chunk como el cuerpo de una función anónima con un número variable de argumentos . Como tales, los chunks pueden definir variables locales, recibir argumentos y devolver valores.

Un chunk puede almacenarse en un archivo o en una cadena dentro del programa anfitrión. Para ejecutar un chunk, Lua primero precompila el chunk en instrucciones para una máquina virtual, y luego ejecuta el código compilado con un intérprete para la máquina virtual. El compilador JIT compila dinámicamente las rutas de código más utilizadas en instrucciones de máquina 80x86.