チャンク
Luaの実行単位はチャンクと呼ばれる。 チャンクは、単純に、順番に実行される一連のステートメントです。
各ステートメントの終りに、
オプションでセミコロンを置くこともできます。
chunk ::= {statement [`;´]}
空のステートメントはないため、「;;」は正しくありません。
Luaはチャンクを、可変数の引数を持つ無名関数の本体として扱う。 したがって、チャンクは、ローカル変数を定義でき、引数を受け取ることができ、値を返すことができます。
チャンクは、ファイルの中、またはホスト・プログラム内のストリングの中に格納できます。 チャンクを実行するために、Lua はまずチャンクを仮想マシンの命令にプリコンパイルし、その後、そのコンパイルされたコードを、仮想マシンのインタープリターで実行します。 頻繁に使用されるコード・パスは、JIT (Just-In-Time) コンパイラーによって、80x86 マシン命令に動的にコンパイルされます。