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