1 – はじめに

Luaは、強力で効率的かつ軽量な、組み込み可能なスクリプト言語である。手続き型プログラミング、オブジェクト指向プログラミング、関数型プログラミング、データ駆動プログラミング、およびデータ記述をサポートする。

Luaは、単純な手続き型構文と、連想配列および拡張可能な意味論に基づく強力なデータ記述構造を組み合わせている。Luaは動的型付け言語であり、レジスタベースの仮想マシンでバイトコードを解釈して動作し、世代別ガベージコレクションによる自動メモリ管理を備えている。このため、設定、スクリプティング、ラピッドプロトタイピングに適している。

Luaは、標準CとC++に共通する部分であるクリーンCで記述されたライブラリとして実装されている。Lua配布物にはluaというホストプログラムが含まれており、このプログラムはLuaライブラリを使用して、対話的にもバッチ処理にも利用できる完全なスタンドアロンLuaインタープリターを提供する。Luaは、必要とするあらゆるプログラムへ組み込める強力で軽量なスクリプト言語として、また強力でありながら軽量で効率的なスタンドアロン言語として利用されることを意図している。

拡張言語としてのLuaには「メイン」プログラムという概念がなく、埋め込みプログラム、または単にホストと呼ばれるホストクライアントへ組み込まれて動作する。(多くの場合、このホストはスタンドアロンのluaプログラムである。)ホストプログラムは、Luaコードを実行する関数を呼び出し、Lua変数を読み書きし、Luaコードから呼び出されるC関数を登録できる。C関数を利用することで、Luaを幅広い分野へ対応できるよう拡張し、共通の構文的枠組みを持つカスタムプログラミング言語を作成できる。

Luaはフリーソフトウェアであり、ライセンスに記載されているとおり、通常どおり無保証で提供される。このマニュアルで説明する実装は、Lua公式ウェブサイトwww.lua.orgで入手できる。

他のリファレンスマニュアルと同様に、この文書も部分的には無味乾燥である。Luaの設計判断に関する議論については、Luaのウェブサイトで公開されている技術論文を参照すること。Luaプログラミングの詳細な入門については、Robertoの著書Programming in Luaを参照すること。