Full Ada Compiler (Ada2005/Ada95/Ada83)
The GNAT Ada compiler includes an Ada front-end, the GCC code generator, the binder, linker, and run-time library. All of these components, except for the code generator, are written in Ada, and are completely target-independent. The code generator is the GCC back-end. The interface between the front-end and the GCC back-end is a tree transducer, which translates the language-specific intermediate representation produced by the Ada front-end into the language-independent tree language that GCC expects.