Internals of GCC
En esta entrada de blog hablaré del episodio de podcast llamado como “Internals of GCC”, con una duración de 53 minutos por “Software Engineering Radio” con Morgan Deters como invitado, en él se trata sobre el funcionamiento de GCC.
GCC, según Victor González, es un compilador perteneciente al proyecto de GNU, hecho para los lenguajes C, C++, Objective C y Fortran, donde puede tener recibir como entrada un programa escrito en cualquiera de los lenguajes anteriormente descritos , y de esta manera poder generar un programa ejecutable en lenguaje binario en la máquina donde se realizará la ejecución de dicho programa.
La manera en que trabaja GCC, por Morgan Deters es de la siguiente forma donde el front-end es modular con middle end, y de esta forma tiene la capacidad de poder trabajar con cualquier back-end, con con la arquitectura en específica en la máquina donde se está corriendo. En una forma más específica, el compilador lo que hace es parsear todo en un árbol abstracto sintáctico que contiene la presentación del programa, donde gracias a la entrada anterior se producen varias representaciones intermedias, una por cada programa, como C, C++, Objective C y Fortran, y el front-end lo que hace es seleccionar la representación intermedia necesaria para poder mostrar, es decir que permite una gran capacidad de compilación de diferentes lenguajes, lo cual es algo muy asombroso, y estaría muy interesante el poder ver la manera en cómo esto es posible, ya que actualmente me encuentro desarrollando el proyecto de compiladores, donde es para un solo lenguaje relativamente sencillo y realmente ha demostrado y continúa demostrando ser un reto bastante fuerte, por lo que hacerlo para distintos lenguajes me imagino que es un gran reto, entonces el poder ver como un GNU ejecuta sus instrucciones y su código fuente sería algo muy interesante.
Fuentes de información
- • González, V. (n.d.). El compilador GCC - Tutorial. https://iie.fing.edu.uy/~vagonbar/gcc-make/gcc.htm.
Comentarios
Publicar un comentario