1
Como o C / C ++, o Terra é uma linguagem compilada estaticamente e com gerenciamento manual de memória.Mas, diferentemente do C / C ++, ele foi projetado desde o início para ser metaprogramado em Lua.O design do Terra deriva da constatação de que o C / C ++ é realmente composto de várias "linguagens". Ele possui uma linguagem central de operadores, fluxo de controle e chamadas de funções, mas a linguagem envolvente é uma meta-linguagem composta de uma misturade recursos como pré-processador, sistema de modelos e definições de estrutura.Somente os modelos são completos de Turing e foram usados para produzir bibliotecas otimizadas, como Eigen, mas são horríveis de usar na prática ... No Terra, acabamos de ceder à tendência de tornar a meta-linguagem do C / C ++ maispoderoso e o substituiu por uma linguagem de programação real, Lua.A combinação de uma linguagem de baixo nível metaprogramada por uma linguagem de script de alto nível permite muitos comportamentos que não são possíveis em outros sistemas.Diferentemente do C / C ++, o código Terra pode ser compilado com JIT e executado intercalado com a avaliação Lua, facilitando a gravação de bibliotecas de software que dependem da geração de código em tempo de execução.
terra-programming-language-