Lua 是一個小巧的腳本語言。是巴西里約熱內盧天主教大學(Pontifical Catholic University of Rio de Janeiro)里的一個研究小組,由 Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo 所組成并于 1993 年開發。其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定制功能。Lua 由標準 C 編寫而成,幾乎在所有操作系統和平臺上都可以編譯、運行。Lua 并沒有提供強大的庫,這是由它的定位決定的。所以 Lua 不適合作為開發獨立應用程序的語言。Lua 有一個同時進行的 JIT 項目,提供在特定平臺上的即時編譯功能。
Lua 腳本可以很容易的被 C/C++ 代碼調用,也可以反過來調用 C/C++ 的函數,這使得 Lua 在應用程序中可以被廣泛應用。不僅僅作為擴展腳本,也可以作為普通的配置文件,代替 XML、ini 等文件格式,并且更容易理解和維護。標準 Lua 5.1 解釋器由標準 C 編寫而成,代碼簡潔優美,幾乎在所有操作系統和平臺上都可以編譯和運行;一個完整的標準 Lua 5.1 解釋器不足 200KB。而本書推薦使用的 LuaJIT 2 的代碼大小也只有不足 500KB,同時也支持大部分常見的體系結構。在目前所有腳本語言引擎中,LuaJIT 2 實現的速度應該算是最快的之一。這一切都決定了 Lua 是作為嵌入式腳本的最佳選擇。
Lua 語言的各個版本是不相兼容的。因此本書只介紹 Lua 5.1 語言,這是為標準 Lua 5.1 解釋器和 LuaJIT 2 所共同支持的。LuaJIT 支持的對 Lua 5.1 向后兼容的 Lua 5.2 和 Lua 5.3 的特性,我們也會在方便的時候予以介紹。