當前位置:編程學習大全網 - 源碼下載 - Lua 是怎樣壹門語言?

Lua 是怎樣壹門語言?

Lua是壹個簡潔、輕量、可擴展的腳本語言。Lua有著相對簡單的C?API而很容易嵌入應用中。很多應用程序使用Lua作為自己的嵌入式腳本語言,以此來實現可配置性、可擴展性。

Lua是壹種輕量語言,它的官方版本只包括壹個精簡的核心和最基本的庫。這使得Lua體積小、啟動速度快。

它用ANSI C語言編寫,並以源代碼形式開放,編譯後的完整參考解釋器只有大約247kB,到5.4.3版本,該體積變成283kB(Linux,amd64),依然非常小巧,可以很方便的嵌入別的程序裏。和許多“大而全”的語言不壹樣,網絡通信、圖形界面等都沒有默認提供。

但是Lua可以很容易地被擴展:由宿主語言(通常是C或C++)提供這些功能,Lua可以使用它們,就像是本來就內置的功能壹樣。事實上,現在已經有很多成熟的擴展模塊可供選用。

Lua是壹個動態類型語言,支持增量式垃圾收集策略。有內建的,與操作系統無關的協作式多線程支持。Lua原生支持的數據類型很少,只提供了數值(默認是雙精度浮點數,可配置)、布爾量、字符串、表格、函數、線程以及用戶自定義數據這幾種。

但是其處理表和字符串的效率非常之高,加上元表的支持,開發者可以高效的模擬出需要的復雜數據類型(比如集合、數組等)。

Lua是壹種多重編程範型的程序設計語言:它只提供了很小的壹個特性集合來滿足不同編程範型的需要,而不是為某種特定的編程範型提供繁雜的特性支持。

例如,Lua並不提供繼承這個特性,但是妳可以用元表格來模擬它。諸如名字空間、類這些概念都沒有在語言基本特性中實現,但是我們可以用表格結構(Lua唯壹提供的復雜數據結構)輕易模擬。正是提供了這些基本的元特性,我們可以任意的對語言進行自需的改造。

Lua實現了少量的高級特征比如頭等函數、垃圾回收、閉包、正當尾調用、強制(於運行時間在字符串和數值之間自動轉換)、協程(協作多任務)和動態模塊裝載。

實現

Lua程序不是從文本式的Lua文件直接解釋的,而是編譯成字節碼,接著把它運行在Lua虛擬機上。編譯過程典型的對於用戶是不可見並且是在運行時間進行的,但是它可以離線完成用來增加裝載性能或通過排除編譯器來減少對宿主環境的內存占用。

Lua字節碼還可以在Lua之內產生和執行,使用來自字符串庫的dump函數和load/loadstring/loadfile函數。Lua版本5.3.4是用大約24,000行C代碼實現的。

像大多數CPU,而不像多數虛擬機(它們是基於堆棧的),Lua VM是基於寄存器的,因此更加類似真實的硬件設計。寄存器架構既避免了過多的值復制又減少了每函數的指令的總數。Lua 5的虛擬機是第壹個廣泛使用的基於寄存器的純VM。

Parrot和Android的Dalvik是另外兩個周知的基於寄存器的VM。PCScheme的VM也是基於寄存器的。

  • 上一篇:金融租賃公司資產結構指標
  • 下一篇:iOS的replayKit怎麽用
  • copyright 2024編程學習大全網