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