Luau,Lua 語言的類型檢查變體開源

最近 宣布了第一個版本的發布 獨立於編程語言 au,它隨著 Lua 的發展而繼續,並且也兼容以前的 Lua 5.1 版本。

盧奧語是 主要設計用於嵌入腳本引擎 在應用中,旨在實現高性能和低資源消耗。 項目代碼是用 C++ 編寫的,並在 MIT 許可下開放。

Luau 通過類型檢查功能和一些構建擴展了 Lua 新的語法,如字符串文字。 該語言與以前版本的 Lua 5.1 兼容,部分與較新版本兼容. 支持 Lua 運行時 API, 允許 Luau 與預先存在的代碼和鏈接一起使用。

時至今日,Luau 不再是 Roblox 平台不可分割的一部分; 是一種獨立的開源語言。

語言運行時基於大量修訂的 Lua 5.1 運行時代碼,但解釋器已完全重寫。 該開發涉及一些新的優化技術,與 Lua 相比,這些技術可以實現更高的性能。

15 年前創建 Roblox 時,我們選擇了 Lua 作為編程語言。 Lua 體積小、速度快、易於集成和學習,它為我們的開發人員開闢了巨大的可能性。

Roblox 的大部分內容都是基於 Lua 構建的,包括數十萬行內部開發的代碼,這些代碼至今仍為 Roblox 應用程序和 Roblox Studio 提供支持,以及開發人員創造的數百萬種體驗。 對於他們中的許多人來說,這是他們學習的第一種編程語言。

該項目由 Roblox 開發,用於遊戲平台代碼和自定義應用程序 來自這家公司,包括 Roblox Studio 的出版商。 最初,Luau 是閉門開發的,但最終決定將其轉移到開放項目類別,以便在社區的參與下進一步聯合開發。

主要特點:

  • 一個順序類型系統,它佔據了動態和靜態寫作之間的中間位置。 Luau 允許根據需要通過特殊註釋指定類型信息來進行靜態寫入。
  • 內置類型 “任何”、“零”、“布爾值”、“數字”、“字符串”和“線程”。 同時,還保留了使用動態類型而不顯式定義變量和函數類型的能力。
  • 支持文字字符串 (如在 Lua 5.3 中)
  • 除了現有的關鍵字“break”之外,還支持表達式“continue”,以跳轉到循環的新迭代。
  • 支持複合賦值運算符
  • 支持使用 條件塊 “If-then-else”以表達式的形式返回在塊執行期間計算的值。 您可以在塊中指定任意數量的 elseif 語句。
  • 沙盒模式的存在 它允許您運行不受信任的代碼。 此功能可用於組織您自己的代碼和其他開發人員編寫的代碼,例如無法保證的第三方庫,並排運行。
  • 標準庫中可能會產生安全問題的函數的限制已被移除。 例如,庫“io”(訪問文件和啟動進程)、“package”(訪問文件和加載模塊)、“os”(訪問文件和更改環境變量的函數已被刪除)、“Debug”(不安全)內存處理)、“dofile”和“loadfile”(文件系統訪問)。
  • 提供用於靜態代碼分析、錯誤檢測 (Linter) 和驗證類型使用的工具。
  • 分析儀, 字節碼解釋器 和高性能專有編譯器。
  • Luau 尚不支持 JIT 編譯,但有人認為 Luau 解釋器在某些情況下的性能與 LuaJIT 相當。

終於 如果您有興趣了解更多信息,您可以查看詳細信息 在下面的鏈接中。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。