1
C / C ++와 마찬가지로 Terra는 수동 메모리 관리 기능이있는 정적으로 형식화 된 컴파일 된 언어입니다.그러나 C / C ++와 달리 처음부터 Lua에서 메타 프로그래밍되도록 설계되었습니다.Terra의 디자인은 C / C ++가 실제로 여러 "언어"로 구성되어 있다는 사실에서 비롯되었습니다.이 언어에는 연산자, 제어 흐름 및 함수 호출의 핵심 언어가 있지만이 언어를 둘러싼 메타 언어는 혼합으로 구성됩니다전 처리기, 템플릿 시스템 및 구조체 정의와 같은 기능템플릿은 Turing-complete이며 Eigen과 같은 최적화 된 라이브러리를 생성하는 데 사용되었지만 실제로는 사용하기가 끔찍합니다 ... Terra에서는 C / C ++의 메타 언어를 더 많이 만드는 경향을 보여주었습니다.강력하고 실제 프로그래밍 언어 인 Lua로 대체했습니다.고급 스크립팅 언어로 메타 프로그래밍 된 저수준 언어의 조합은 다른 시스템에서는 불가능한 많은 동작을 허용합니다.C / C ++와 달리 Terra 코드는 JIT 컴파일 및 Lua 평가와 함께 인터리브 될 수 있으므로 런타임 코드 생성에 의존하는 소프트웨어 라이브러리를 쉽게 작성할 수 있습니다.