Descripción general de los compiladores de C

Aprendamos este concepto de compiladores con un ejemplo. Suponga que ha estado en un lugar donde los idiomas que habla son completamente diferentes entre sí y ahora tiene algunos problemas de viaje y desea comunicarse con ellos. ¿Cómo? ¿Necesitabas un traductor correcto? Opta por tener a alguien que pueda entender tu idioma y traducir y dejar que la persona opuesta entienda lo que quieres decir. De la misma manera, estaríamos escribiendo nuestro código C en un lenguaje de alto nivel que es un formato entendible para los humanos. ¿Cómo entendería el programa lo que le hemos pedido que haga? Aquí es donde el compilador entra en escena. Un compilador transforma y traduce un lenguaje de gama alta a lenguaje comprensible por máquina (bajo nivel). El proceso de compilación realiza mecanismos básicos de traducción y también detección de errores. La compilación front-end incluye análisis léxico, sintáctico y semántico. Y en la parte de atrás, la compilación genera y optimiza el código. Así que hay muchos compiladores en C como BDS, Clang, GCC, Interactive C, Lattice, Portable C Compiler, Visual Express, etc. Conozcamos más sobre algunos de ellos.

Explicaciones a los compiladores de C

A continuación se muestran los principales compiladores de C:

1) Borland Turbo C

Turbo C es uno de los compiladores básicos y populares para el lenguaje de programación C. Esto se introdujo por primera vez en 1987; Era popular por su pequeño tamaño, velocidad de compilación y bajo precio. Una vez que Turbo C ++ se lanzó en 1990, ambos compiladores se fusionaron y el nombre Turbo C se suspendió. En 2006, Embarcadero Technologies había relanzado Turbo C como software gratuito. ¿Recuerdas esta pantalla azul?

2) Compilador Tiny C

El compilador Tiny C está diseñado para trabajar en computadoras lentas con poco espacio en disco. Este es un compilador C del procesador ARM. Este compilador comenzó su soporte para Windows desde 2005. Algunas de sus características se mencionan a continuación.

  1. Su tamaño de archivo es pequeño y según el propietario de este compilador (Fabrice Bellard). La solidez de este compilador es aproximadamente nueve veces más rápida que GCC. La compilación, el ensamblaje y la vinculación del código fueron los principales atributos considerados para medir la solidez de este compilador.
  2. Este compilador había incluido muchas características específicas del compilador para aumentar la memoria opcional, el verificador encuadernado y tenía una mayor estabilidad del código.
  3. Este compilador permite la ejecución automática de programas durante el tiempo de compilación solo usando argumentos de línea de comando. De esta manera, los programas se ejecutan bajo UNIX, utilizando scripts de shell. La última versión se lanzó en diciembre de 2017.

3) Compilador portátil de C

El compilador de C portátil (PCC) fue un compilador establecido y utilizado muy temprano para el lenguaje de programación C que se encuentra casi a mediados de 1970. Este compilador tuvo una larga vida útil. Esto fue frecuente durante un período de tal manera que muchos de los compiladores de C se basaron en él. Las ventajas de PCC dependían de sus capacidades y predicciones de probabilidad. El compilador PCC se hizo de tal manera que los archivos de origen dependían de la máquina, no todos sino solo algunos de ellos. Puede detectar errores de sintaxis y puede realizar comprobaciones de validez perfectas. El 10 de diciembre de 2014 se lanzó una nueva versión de PCC.

4) CCG

GNU Compiler Collection es el compilador producido por el Proyecto GNU. Esto soporta muchos lenguajes de programación y es una base de software libre bajo la Licencia Pública General. Este compilador se lanzó por primera vez en 1987 y solo admitió el lenguaje de programación C durante el inicio. Poco a poco se expandió a C ++, Java, Android e IOS. Aquí, cada uno de los diferentes compiladores de idiomas tiene su propio programa que lee el código escrito y envía el código de la máquina como salida. Todos estos tienen una estructura interna común. Cuando se escribe un lenguaje de alto nivel, según el idioma en que se escribe, el compilador analiza el código en ese idioma y produce un árbol de sintaxis abstracta. GCC usa analizadores LALR, pero lentamente cambió a analizadores de descenso recursivo para C en 2006. Llegando a la parte de optimización, como ya se sabe, esto puede ocurrir durante cualquier fase de la compilación. Sin embargo, aquí las optimizaciones masivas se realizan antes de la generación del código y después de la sintaxis, el análisis semántico. A continuación se presentan algunas de las optimizaciones realizadas por GCC.

  1. Puede eliminar las piezas del Código Muerto.
  2. Puede eliminar la redundancia a nivel de código.
  3. Reemplazo de agregados con respecto al nivel escalar.
  4. Puede realizar optimizaciones con matrices.

En GCC, el back-end se especifica mediante macros de preprocesador y funciones específicas de una arquitectura particular. Este código generalmente se crea llamando primero a un pequeño código de fragmento que está asociado con cada patrón y genera instrucciones a partir del conjunto de instrucciones. Se realiza mediante registros, compensaciones y direcciones que se eligen durante la fase de recarga. La versión actual de GCC es la 9.2, que se lanzó el 12 de agosto de 2019.

5) Clang

  1. Sonido metálico; incluyendo C, también es un compilador para lenguajes de programación C ++, Objective-C y Objective-C ++. Este compilador utiliza LLVM para las compilaciones relacionadas con el código de fondo. Este compilador ha sido diseñado para actuar como un reemplazo para el CCG al admitir muchos de sus indicadores de compilación y extensiones de idioma.
  2. Clang tiene muchos colaboradores, incluidos Apple, Microsoft, Google, Sony e Intel. Es un software de código abierto. LLVM fue utilizado por primera vez por GCC para la compilación front-end, pero GCC había causado algunos problemas a los desarrolladores de Apple, ya que el código fuente es grande y difícil de usar. Entonces, se les ocurrió Clang.
  3. Uno de los principales objetivos de Clang es proporcionar una arquitectura basada en bibliotecas. Está diseñado para mantener más información durante el proceso de compilación que GCC. Esto también ayuda a preservar la forma general del código original.
  4. El informe de error generado por Clang durante la compilación siempre está en un formato detallado y específico en un formato legible por máquina. Clang siempre tuvo como objetivo reducir el uso excesivo del espacio de memoria y aumentar la velocidad de compilación en comparación con GCC, y debido a estas cualidades, se había convertido en uno de los compiladores usados ​​de más rápido crecimiento durante un momento. Pero durante un período, el rendimiento de Clang comenzó a disminuir. Los informes dijeron que el rendimiento se había retrasado con diferencias casi grandes en comparación con GCC y comenzó a tener un rendimiento más lento. Las comparaciones más recientes indican que ambos compiladores habían surgido y aumentado su rendimiento y una vez más creando una gran competencia entre ellos. Sin embargo, GCC sigue encabezando la lista.

Conclusión

Aunque hay muchos compiladores disponibles para C, GCC destaca por ser uno de los mejores a partir de ahora. La declaración del ganador aquí se basa en la durabilidad, la optimización, la velocidad y las comprobaciones de código / error / sintaxis. A través de esto, podemos entender claramente que el compilador es un pilar importante para los lenguajes de programación. Sin su trabajo, cualquier programa que escribamos sería basura para el sistema.

Artículos recomendados

Esta ha sido una guía para los mejores compiladores de C. Aquí discutimos las explicaciones de los compiladores de C con cinco puntos breves. También puede consultar nuestro otro artículo sugerido para obtener más información.

  1. Compiladores de Python
  2. Compiladores Java
  3. Cómo instalar C
  4. Ventajas de C
  5. Introducción al compilador de PHP
  6. Compiladores JavaScript