The GNU Compiler Collection (GCC) is a set of compilers intended for translating different high-level programming languages (like C, C++, Java, Ada, Fortran) to executable object code runnable on different target platforms (like x86, x86_64, SPARC, ARM, PowerPC, PA-RISC or Itanium). This flexibility is achieved by a very modular architecture composed of front-end (language dependent), middle-end (language and target platform independent) and back-end (target platform dependent). For example, if you have an ingenious idea for a new programming language, but you do not want to care about the optimization and code generation on as many target platforms as possible: extend GCC by a new front-end and reuse the already implemented middle-end and back-ends. And the same vice-versa for a new target platform which you want to write C or C++ code for (for example an embedded system).

The purpose of this page and its sub-pages is to exemplify some of the GCC internals, while currently covering:

  1. asmwarrior
    January 24th, 2011 at 04:19 | #1

    Very nice tutorials. thanks for sharing!!!

  1. No trackbacks yet.