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由標準C編寫而成,代碼簡潔優美,幾乎在全部操做系統和平臺上均可以編譯,運行。 一個完整的Lua解釋器不過200k,在目前全部腳本引擎中,Lua的速度是最快的。這一切都決定了Lua是做爲嵌入式腳本的最佳選擇。數組
Lua 特性:安全
輕量級: 它用標準C語言編寫並以源代碼形式開放,編譯後僅僅一百餘K,能夠很方便的嵌入別的程序裏。多線程
可擴展: Lua提供了很是易於使用的擴展接口和機制:由宿主語言(一般是C或C++)提供這些功能,Lua可使用它們,就像是原本就內置的功能同樣。閉包
其它特性:函數式編程
支持面向過程(procedure-oriented)編程和函數式編程(functional programming);函數
自動內存管理;只提供了一種通用類型的表(table),用它能夠實現數組,哈希表,集合,對象;學習
語言內置模式匹配;閉包(closure);函數也能夠看作一個值;提供多線程(協同進程,並不是操做系統所支持的線程)支持;ui
經過閉包和table能夠很方便地支持面向對象編程所須要的一些關鍵機制,好比數據抽象,虛函數,繼承和重載等。
Lua 應用場景:
遊戲開發
獨立應用腳本
Web 應用腳本
擴展和數據庫插件如:MySQL Proxy 和 MySQL WorkBench
安全系統,如入侵檢測系統
開始學習:Lua徹底自學手冊
更多精品課程點擊:阿里雲大學