我在terralang网站上阅读有关terra语言的信息,

“一种新的低级系统编程语言,旨在
与Lua编程语言无缝互操作...”

Zach DeVito(主要作者)撰写了有关terra的用法:

具有高性能扩展的脚本语言.....
用于构建语言的嵌入式JIT编译器。
一种独立的低级语言。

但是(可能是我的错)我不了解terra是否为:

竞争者
一个更好的系统与C库接口
比使用llvm的luaJit更好的东西

有人可以帮助我更好地了解terralang项目的进展吗?
谢谢

最佳答案

但是(可能是我的错)我不了解terra是否为:
竞争者



它不是。它建立在LuaJIT和LLVM之上。 LuaJIT由Mike Pall编写,而LLVM由Apple和社区编写。它可以做两件事。

1)它向您的Lua代码添加了额外的语言语法(称为Terra)。这样,您可以轻松地将Lua代码与硬核低级代码混合。

2)它允许您在运行时生成快速代码。如果您想创建新的语言,编译器或生成快速的机器代码,而又不需要通常与此相关的所有工作,那就太好了。



一个更好的系统与C库接口



是和否。如果您只想从Lua调用现有的C或其他本机库,我建议按原样使用LuaJIT。 Mike Pall在这方面做得非常出色,许多C集成魔术都来自LuaJITs FFI。但是,如果您需要创建与Lua程序混合在一起的新的“ C like”代码,Terra很不错。您有动态语言/状态语言的混合体。



比使用llvm的luaJit更好的东西



不,Lua代码仍使用LuaJIT进行评估,Terra代码使用LLVM。

摘要

Terra很棒,我真的可以推荐它。

10-06 09:08