Morceaux

L'unité d'exécution de Lua est appelée "chunk". Un bloc est simplement une séquence d'instructions, qui sont exécutées de manière séquentielle.

Chaque déclaration peut être suivie d'un point-virgule :
chunk ::= {statement [`;´]}

Il n'y a pas d'instructions vides et donc '';; n'est pas légal.

Lua traite un chunk comme le corps d'une fonction anonyme avec un nombre variable d'arguments. En tant que tels, les chunks peuvent définir des variables locales, recevoir des arguments et des valeurs de retour.

Un bloc peut être stocké dans un fichier ou dans une chaîne de caractères au sein du programme hôte. Pour exécuter un morceau, Lua le précompile d'abord en instructions pour une machine virtuelle, puis il exécute le code compilé avec un interprète pour la machine virtuelle. Les chemins de code fréquemment utilisés seront compilés dynamiquement en instructions machine 80x86 par le compilateur JIT.