Lua 是一種輕量小巧的腳本語(yǔ)言,用標(biāo)準(zhǔn)C語(yǔ)言編寫并以源代碼形式開放。
Lua 是一個(gè)小巧的腳本語(yǔ)言。是巴西里約熱內(nèi)盧天主教大學(xué)(Pontifical Catholic University of Rio de Janeiro)里的一個(gè)研究小組,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所組成并于1993年開發(fā)。 其設(shè)計(jì)目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。Lua由標(biāo)準(zhǔn)C編寫而成,幾乎在所有操作系統(tǒng)和平臺(tái)上都可以編譯,運(yùn)行。Lua并沒(méi)有提供強(qiáng)大的庫(kù),這是由它的定位決定的。所以Lua不適合作為開發(fā)獨(dú)立應(yīng)用程序的語(yǔ)言。Lua 有一個(gè)同時(shí)進(jìn)行的JIT項(xiàng)目,提供在特定平臺(tái)上的即時(shí)編譯功能。
Lua腳本可以很容易的被C/C++ 代碼調(diào)用,也可以反過(guò)來(lái)調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中可以被廣泛應(yīng)用。不僅僅作為擴(kuò)展腳本,也可以作為普通的配置文件,代替XML,ini等文件格式,并且更容易理解和維護(hù). Lua由標(biāo)準(zhǔn)C編寫而成,代碼簡(jiǎn)潔優(yōu)美,幾乎在所有操作系統(tǒng)和平臺(tái)上都可以編譯,運(yùn)行。一個(gè)完整的Lua解釋器不過(guò)200k,在目前所有腳本引擎中,Lua的速度是最快的。這一切都決定了Lua是作為嵌入式腳本的最佳選擇。
目標(biāo)Lua的目標(biāo)是成為一個(gè)很容易嵌入其它語(yǔ)言中使用的語(yǔ)言。大多數(shù)程序員也認(rèn)為它的確做到了這一點(diǎn)。
Lua語(yǔ)言的官方版本只包括一個(gè)精簡(jiǎn)的核心和最基本的庫(kù)。這使得Lua體積小、啟動(dòng)速度快,從而適合嵌入在別的程序里。5.0.2版的Lua的內(nèi)核小于120KB。
可擴(kuò)展Lua并不象其它許多"大而全"的語(yǔ)言那樣,包括很多功能,比如網(wǎng)絡(luò)通訊、圖形界面等。但是Lua提供了非常易于使用的擴(kuò)展接口和機(jī)制:由宿主語(yǔ)言(通常是C或C++)提供這些功能,Lua可以使用它們,就像是本來(lái)就內(nèi)置的功能一樣。
其它特性Lua還具有其它一些特性:同時(shí)支持面向過(guò)程(procedure-oriented)編程和函數(shù)式編程(functional programming);自動(dòng)內(nèi)存管理;只提供了一種通用類型的表(table),用它可以實(shí)現(xiàn)數(shù)組,哈希表,集合,對(duì)象;語(yǔ)言內(nèi)置模式匹配;閉包(closure);函數(shù)也可以看做一個(gè)值;提供多線程(協(xié)同進(jìn)程 ,并非操作系統(tǒng)所支持的線程)支持;通過(guò)閉包和table可以很方便地支持面向?qū)ο缶幊趟枰囊恍╆P(guān)鍵機(jī)制,比如數(shù)據(jù)抽象,虛函數(shù),繼承和重載等。
游戲開發(fā)
獨(dú)立應(yīng)用腳本
Web 應(yīng)用腳本
擴(kuò)展和數(shù)據(jù)庫(kù)插件如:MySQL Proxy 和 MySQL WorkBench
安全系統(tǒng),如入侵檢測(cè)系統(tǒng)
Minecraft中的電腦模組(ComputerCraft)
所有的為電腦和turtle(機(jī)器人)的代碼都是基于Lua的,你可以用它們與有(無(wú))線路由器、打印機(jī)、磁盤驅(qū)動(dòng)器、顯示器互動(dòng)。
Adobe Photoshop Lightroom
Lightroom是Adobe公司的一款攝影后期制作軟件,最開始的版本由Shadowland代碼編寫,后期版本部分使用Lua實(shí)現(xiàn),Lua代碼占到代碼總量的63%。
金庸群俠傳lua復(fù)刻版
這個(gè)游戲,游戲迷們想必都玩過(guò)了。牛人用lua腳本重新弄了下。
魔獸世界
他的插件用的也是lua。
仙劍奇?zhèn)b傳五
解壓游戲到資源目錄可以看到游戲到腳本全部是使用Lua語(yǔ)言編寫的。
Garry's Mod
這個(gè)游戲的所有創(chuàng)意工坊插件都是由LUA腳本編寫的。
官網(wǎng):
API文檔:
教程:
http://hgci.cn/lua/lua-tutorial.html
下載:
http://www.lua.org/download.html