Programa informático que
traduce un programa que ha
sido escrito en un lenguaje de
programación a un lenguaje
natural.
Fases del
Compilador
Manejador de
Errores
Tabla de
Simbolos
Análisis
Léxico
Annotations:
Habitualmente el término ``análisis léxico'' se refiere al tratamiento de la entrada que produce como salida la lista de tokens. Un token hace alusión a las unidades mas simples que tiene significado. Habitualmente un token o lexema queda descrito por una expresión regular. Léxico viene del griego lexis, que significa ``palabra''. Perl es, sobra decirlo, una herramienta eficaz para encontrar en que lugar de la cadena se produce un emparejamiento. Sin embargo, en el análisis léxico, el problema es encontrar la subcadena a partir de la última posición en la que se produjo un emparejamiento y que es aceptada por una de las expresiones regulares que definen los lexemas del lenguaje dado.
Análisis
Sintáctico
Annotations:
Es la fase del analizador que se encarga de chequear el texto de entrada en base a una
gramática dada. Y en caso de que el programa de entrada sea válido, suministra el árbol
sintáctico que lo reconoce.
En teoría, se supone que la salida del analizador sintáctico es alguna representación del
árbol sintáctico que reconoce la secuencia de tokens suministrada por el analizador léxico.
Análisis
Semántico
Annotations:
Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico.
El análisis semántico utiliza como entrada el árbol sintáctico detectado por el análisis sintáctico para comprobar restricciones de tipo y otras limitaciones semánticas y preparar la generación de código.
En compiladores de un solo paso, las llamadas a las rutinas semánticas se realizan directamente desde el analizador sintáctico y son dichas rutinas las que llaman al generador de código. El instrumento más utilizado para conseguirlo es la gramática de atributos.
Generación de
Código
Intermedio
Optimización de
Código
Generación de Codigo
Programa Objeto
Características del
Compilador
Se compila una vez y se
ejecuta "n" veces
Posee una Vision Global del
programa, por lo que la
gestión de errores es más
eficiente
La ejecución es rápida
Clasificación de
los
Compiladores
De una pasada: Examina 1 vez
y genera el codigo objeto
De Multiples Pasada: Requiere pasos
intermedios para generar el codigo, y
una pasada final para optimizar el
codigo
Optimación; Lee y analiza el
codigo, encontrando posibles
errores
Compiladores incrementales: generan un
código objeto instrucción por instrucción,
cuando el usuario teclea cada orden
individual.
Compilador cruzado: se genera código en
lenguaje objeto para una máquina diferente
de la que se está utilizando para compilar.
Compilador con montador: compilador que
compila distintos módulos de forma
independiente y después es capaz de enlazarlos.
Autocompilador: compilador que está escrito
en el mismo lenguaje que va a compilar.
Interprete
Un intérprete traduce instrucciones de alto nivel en
una forma intermedia para ser ejecutado. En
contraste, un compilador, traduce instrucciones de
alto nivel directamente en lenguaje de máquina.
Caracteristicas del
Interprete
Se traduce cada vez que
se ejecuta
Permite interactuar mas con el
codigo en tiempo de ejecución
Requiere menos
memoria que un
compilador
Nombre: Heidy Beatriz Miranda Gámez
Carne; 201709051