Trozos
La unidad de ejecución de Lua se llama chunk. Un chunk es simplemente una secuencia de sentencias, que se ejecutan secuencialmente.
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.