Terra lang和Lua

msa*_*ese 7 lua programming-languages

我在terralang网站上阅读关于terra语言的内容

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

Zach DeVito(主要作者)写了关于terra的使用:

一种具有高性能扩展的脚本语言.....

用于构建语言的嵌入式JIT编译器.....

一个独立的低级语言....

但是(可能是我的错)我不明白土地是否是:

  1. 一个luaJit的竞争对手
  2. 一个更好的系统来与c库接口
  3. 使用llvm比luaJit更好的东西

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

谢谢

Jac*_*ter 9

但是(可能是我的错)我不明白terra是否是:luaJit的竞争对手

它不是.它建立在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很棒,我真的可以推荐它.