腳本編程語言 Lua 介紹

openkk 12年前發布 | 56K 次閱讀 Lua 腳本/動態語言

Lua程序設計語言 是一個簡潔、輕量、可擴展的腳本語言。Lua讀作/'lua/(嚕啊),是葡萄牙語中“Luna”(月亮)的意思。
腳本編程語言 Lua 介紹
Lua 是一個小巧的腳本語言。是巴西里約熱內盧天主教大學(Pontifical Catholic University of Rio de Janeiro)里的一個研究小組,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所組成并于1993年開發。 其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定制功能。Lua由標準C編寫而成,幾乎在所有操作系統和平臺上都可以編譯,運行。 Lua并沒有提供強大的庫,這是由它的定位決定的。所以Lua不適合作為開發獨立應用程序的語言。Lua 有一個同時進行的JIT項目,提供在特定平臺上的即時編譯功能。

Lua的目標是成為一個很容易嵌入其它語言中使用的語言。大多數程序員也認為它的確做到了這一點。 很多應用程序使用Lua作為自己的嵌入式腳本語言,以此來實現可配置性、可擴展性。這其中包括大話西游II、仙境傳說、魔獸世界、戰錘40k、博德之門、軒轅劍外傳漢之云、憤怒的小鳥等。

Lua是一種輕量語言,它的官方版本只包括一個精簡的核心和最基本的庫。這使得Lua體積小、啟動速度快。它用標準C語言編寫并以源 代碼形式開放,編譯后僅僅一百余K,可以很方便的嵌入別的程式里。和許多"大而全"的語言不一樣,網路通訊、圖形界面等都沒有默認提供。但是Lua可以很 容易地被擴展:由宿主語言(通常是C或C++)提供這些功能,Lua可以使用它們,就像是本來就內置的功能一樣。事實上,現在已經有很多成熟的擴展模塊可供選用。

Lua是一種多重編程范式的程式設計語言:它只提供了很小的一個特性集合來滿足不同編輯范式的需要,而不是為某種特定的編輯范式提供繁雜的特性支援。例如,Lua并不提供繼承這個特性,但是你可以用元表來模擬它。諸如名字空間、類這些概念都沒有在語言基本特性中實現,但是我們可以輕易的用表結構(Lua唯一提供的復雜數據結構)輕易模擬。Lua可以在運行時隨時構造出一個函數,并把它看作一個對象(正是所謂的first class function),這個特性可以很好的滿足函數式編程的需要。這是提供了這些基本的元特性,我們可以任意的對語言進行自需的改造。

Lua原生支援的數據類型非常之少,它只提供了 數字(缺省是雙精度浮點數,可配置)、布爾量、字符串、表、子程序、協程(coroutine)以及用戶自定義數據這幾種。但是其處理表和字符串的效率非常之高,加上元表的支援,我們可以高效的模擬出需要的復雜數據類型(比如集合、數組等)。

Lua是一個動態弱類型語言,支援增量式垃圾收集策略。有內建的,與操作系統無關的協作式多線程(coroutine)支援。

項目主頁:http://www.baiduhome.net/lib/view/home/1325318195561

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!