Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
A diferencia de los intérpretes, los compiladores reúnen varios elementos o fragmentos en una misma unidad (un programa ejecutable o una biblioteca), que puede almacenarse y reutilizarse. Este proceso de traducción se conoce como compilación. Compilador texto. Construir un compilador implica dividir el proceso en una serie de fases que varían según su complejidad. Estas fases generalmente se agrupan en dos tareas: análisis del programa fuente y síntesis del programa objetivo. Análisis: implica verificar la corrección del programa fuente, de acuerdo con la definición del lenguaje en términos de la teoría formal del lenguaje. Incluye las fases correspondientes al análisis léxico (que consiste en descomponer el programa fuente en componentes léxicos), análisis sintáctico (agrupación de componentes léxicos en frases gramaticales) En informática, un compilador es un tipo de traductor que transforma un programa completo de un lenguaje de programación a otro. Normalmente el lenguaje de destino es código máquina, aunque también se puede traducir a código intermedio o Machine Translated by Google • Generador o backend: es la parte que genera el código máquina, específico de una plataforma, en base a los resultados de la fase de análisis, realizada por este generador. Esta división permite utilizar el mismo generador para crear código de máquina para varios lenguajes de programación diferentes, y utilizar el mismo analizador para examinar el código fuente de un lenguaje de programación específico para producir código de máquina en múltiples plataformas. Por lo general, incluye generación y optimización de código dependiente de la máquina. En los primeros días de la informática, los compiladores se consideraban uno de los programas más complejos que existían. Los primeros compiladores se hicieron programándolos directamente en lenguaje de máquina o en ensamblador. Esta taxonomía de tipos de compiladores no es exclusiva, por lo que puede haber compiladores que se clasifican en varias categorías: Una vez que un compilador está disponible, se pueden escribir nuevas versiones del compilador (u otros compiladores diferentes) en el lenguaje que compila el compilador. y análisis semántico (comprobación de la validez semántica de las oraciones aceptadas en la fase de análisis sintáctico). • Compiladores cruzados: generan código para un sistema diferente al que están trabajando. Existen herramientas que facilitan la escritura de compiladores o intérpretes informáticos. Estas herramientas le permiten generar el esqueleto del analizador a partir de un • Compiladores de un solo paso: generan código de máquina a partir de una única lectura del código fuente. Síntesis: su objetivo es la generación de salida expresada en el lenguaje objeto y generalmente se compone de una o más combinaciones de fases de generación de código (normalmente código intermedio o código objeto) y optimización del código (en la búsqueda de obtener un programa objetivo lo más eficiente posible). lo más posible, según su complejidad • Optimización de compiladores: realice cambios en el código para mejorar su eficiencia, manteniendo la funcionalidad del programa original. complejidad computacional o de Kolmogorov: tiempo de ejecución, espacio durante la ejecución, espacio a almacenar fuera de la ejecución, etc.). • Compiladores multipaso: necesitan leer el código fuente varias veces antes Alternativamente, las fases descritas para las tareas de análisis y síntesis se pueden agrupar en: producir el código de máquina. • Parser o frontend: es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores en la tabla de símbolos. Esta parte generalmente es independiente de la plataforma o sistema para el que se va a compilar y está compuesta por las fases entre el análisis léxico y la generación de código intermedio. • Compiladores JIT: forman parte de un intérprete y compilan partes del código según sea necesario. Machine Translated by Google
Compartir