1 はじめに

Lua は強力かつ効率的でありながらも軽量で組み込み可能なことを特徴とするスクリプト言語です。Lua は手続き型プログラミング・オブジェクト指向プログラミング・関数型プログラミング・データ駆動プログラミング・データ記述をサポートします。

Lua は連想配列と拡張可能な意味論をベースとした強力なデータ記述構文と手続き型の簡単な構文の両方を持ちます。Lua は動的に型付けされる言語であり、レジスタベースの仮想マシンによってバイトコードを通して実行され、インクリメンタルガベージコレクションを使った自動メモリ管理機構を持ちます。このため Lua はコンフィグレーション・スクリプティング・高速なプロトタイピングといった用途に理想的な言語となっています。

Lua はライブラリとして実装されます。実装言語は綺麗な C (標準化された C と C++ の共通部分集合) です。Lua のディストリビューションには lua と呼ばれるプログラムが含まれます。このプログラムは Lua ライブラリを使って動作するスタンドアローンの完全な Lua インタープリタであり、対話的な利用やバッチとしての利用が可能です。Lua は強力かつ軽量でどんなプログラムからも使える組み込みスクリプト言語、そして強力かつ軽量で効率の良いスタンドアローンの言語の両方になれるよう設計されています。

拡張言語である Lua には「メイン」プログラムという概念がありません。Lua は必ずホストクライアント (組み込み側プログラム、あるいは単にホスト) に組み込まれて動作します (スタンドアローンの lua はホストの一つです)。 Lua コードの実行、Lua 変数の読み書き、Lua コードから呼び出す C 関数の登録を行うための関数がホストのプログラムに提供されます。C 関数を使って Lua を様々な分野向けに拡張すれば、共通の構文を持つカスタムされたプログラミング言語をいくつも作ることができます。

Lua は自由ソフトウェアであり、ライセンスにあるように通常通り無保証で提供されます。このマニュアルで説明される実装は Lua の公式ウェブサイト https://www.lua.org から入手できます。

他のリファレンスマニュアルと同じように、このドキュメントは無味乾燥です。Lua の設計の背後にある判断については Lua のウェブサイトで公開されている技術論文を参照してください。Lua プログミングへの丁寧な入門書が必要な場合には Roberto による Programming in Lua を参照してください。