Luau,Lua 语言的类型检查变体开源

最近 宣布了第一个版本的发布 独立于编程语言 卢奥,它随着 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. 权利:您可以随时限制,恢复和删除您的信息。