与C / C ++一样,Terra是具有手动内存管理功能的静态类型的编译语言。但是与C / C ++不同,它从一开始就被设计为可以通过Lua进行元编程。Terra的设计来自于认识到C / C ++实际上是由多种“语言”组成的。它具有运算符,控制流和函数调用的核心语言,但是围绕该语言的是一种混合语言构成的元语言。诸如预处理器,模板系统和结构定义之类的功能。仅模板是图灵完备的,并且已用于生成优化的库(例如Eigen),但是在实践中却可怕。...在Terra中,我们只是顺应了使C / C ++元语言更多的趋势。功能强大,并用一种真正的编程语言Lua代替了它。通过高级脚本语言对元编程的低级语言进行组合,可以实现许多其他系统无法实现的行为。与C / C ++不同,可以将Terra代码进行JIT编译,并与Lua评估交错运行,从而使编写依赖于运行时代码生成的软件库变得容易。