GCC
GCC es un conjunto de compiladores conocido a nivel mundial. Tiene una cantidad importante de herramientas que permiten el desarrollo en diferentes plataformas o arquitecturas, además al ser de código abierto esto permite que más equipos o personas implementen diferentes funcionalidades para lograr que el compilador tenga multiples mejoras.
No obstante, sigue siendo algo sorprendente el ingenio que se debió haber tenido para lograr este conjunto de compiladores. En un inicio recibía el nombre de GCC al haber sido escrito en C, sin embargo se pudo portar a diferentes programas y de ahí mejor recibió el nombre de GNU Compiler Collection.
Otro rasgo importante sobre la forma interna en que se desarrolló es el frontend y el backend para los que está adaptado. Por un lado tenemos que el frontend se dedica principalmente a generar árboles. La principal función de generar estos árboles es que se puedan utilizar por parte del backend. Para el frontend, actualmente existen múltiples lenguajes en los que ha sido implementado formalmente como en C, C++ y Java, y también se sigue construyendo en otro tanto de lenguajes. Mientras que por parte del backend el principal objetivo es adaptar a la arquitectura o plataforma sobre el cual estará montando. Asimismo, define tareas específicas como convencio de llamadas, los bits más significativo, tamaño de palabra, etc.
Todas estas herramientas al ser de código abierto pueden ser investigadas con detalle. Se puedo lograr observar cómo fue construido el código y cómo es que se logra adaptar a diferentes entornos para un correcto funcionamiento. Tal hecho resulta interesante, pero también retador si se adentra a conocer cada uno de los detalles importantes. Este hecho se vuelve aún más llamativo si se decide investigar como es que funciona internamente el frontend de algunas herramientas como gcc, g++ o gcj por mencionar algunos.
Referencia
Morgan, D. (Guest), Arno (Host). (2007, July 6). Episode 6: Internals of GCC [Audio podcast]. http://www.se-radio.net/2007/07/episode-61-internals-of-gcc/.
Comentarios
Publicar un comentario