Skip to content
ashn edited this page Oct 7, 2021 · 3 revisions

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!