1
Terra ist wie C / C ++ eine statisch typisierte, kompilierte Sprache mit manueller Speicherverwaltung.Im Gegensatz zu C / C ++ ist es jedoch von Anfang an so konzipiert, dass es von Lua aus metaprogrammiert wird.Das Design von Terra basiert auf der Erkenntnis, dass C / C ++ wirklich aus mehreren „Sprachen“ besteht. Es verfügt über eine Kernsprache von Operatoren, Kontrollfluss- und Funktionsaufrufen, aber um diese Sprache herum gibt es eine Metasprache, die sich aus einer Mischung zusammensetztvon Funktionen wie dem Pre-Prozessor, dem Template-System und Strukturdefinitionen.Templates allein sind Turing-vollständig und wurden verwendet, um optimierte Bibliotheken wie Eigen zu erstellen, sind aber in der Praxis schrecklich zu gebrauchenmächtig und ersetzt durch eine echte Programmiersprache, Lua.Die Kombination einer einfachen Sprache, die von einer höheren Skriptsprache metaprogrammiert wurde, ermöglicht viele Verhaltensweisen, die in anderen Systemen nicht möglich sind.Im Gegensatz zu C / C ++ kann Terra-Code JIT-kompiliert und interleaved mit Lua-Evaluierung ausgeführt werden. Dies erleichtert das Schreiben von Software-Bibliotheken, die von der Generierung von Laufzeitcode abhängen.
terra-programming-language-