About
Clone this wiki locally
TenDRA is a compiler framework for architecture neutral representation of compiled programs. It provides a C and C++ front-end. Original development was undertaken under Crown Copyright; current development is BSD licenced. It's mostly written in C.
TenDRA is based on the following principle:
If a program is written to conform to an abstract API specification, then that program will be portable to any machine which implements the API specification correctly.
This keeps a separation of the frontend and code generation in a way that isn't enforced for other compilers, bringing conformance checking for API use, and strict error reporting on portability for language features.
That's the essence of what TenDRA is about; see the chapters on TDF and Portability in the TDF Guide for details and some of the implications of this approach.
Goals
The goals of the TenDRA project are:
-
To continuously produce correct code,
-
to ensure code correctness through various means,
-
to continuously improve the performance of the compiler and resulting code, unless it would jeopardise the points above.
Get Involved
Getting your feet wet is pretty easy;
check out the code,
come and find us on IRC (#tendra
on Libera Chat),
and discuss development suggestions on open issues.
See the Help page especially. Thank you!