Internals of GCC

In episode 61 of Software Engineering Radio the guest was Dr. Morgan Deters, who was a senior research scientist at the Courant Institute of New York University, titled "Internals of GCC". The whole podcast talks about how GCC works internally, which is a project of GNU. Dr. Morgan lists all the steps of a GNU Compiler Collection, from programming languages to processor binary code generation. 

I have only heard the concept of GCC only when I have compiled programs of c and c++, but I never thought that it could compile more programming languages, I did not know what it does. Dr. Morgan explains three important parts: Front-End, Middle-End (which actually it's its proper name) and Back-End. At first, I was a little confused because I have never heard the term Middle-End, but later he will explain at detail. 

Front-End was described as a type of black-box that converts the input- into a tree who will help later in the next phases. The Middle-End takes the output of the first phase and makes it more efficient. The final phase takes the output obtained from the second phase and translates it into assembly code or machine code, it's important to mention that it uses RTL (Register Transfer Level)

For me it was a huge surprise that a free compiler could compile so many programming languages, I understood the three phases that a compiler needs to process to convert high-level code into machine code so a machine could actually understand what you meant. For me, it's getting more clear how compilers work and I'm getting a rough idea of this difficult topic. 

Comentarios

Entradas más populares de este blog

Technical Overview of the CLR

The hundred-year language