04. Compiladores

04. Compiladores - Lenguajes de programacin Cmo se...

Info iconThis preview shows pages 1–6. Sign up to view the full content.

View Full Document Right Arrow Icon
1 Lenguajes de programación ¿Cómo se construye un compilador? Etapas del proceso de compilación Descompone el código fuente para verificar el uso correcto del lenguaje ANALISIS Código Fuente Transforma a los elementos reconocidos del lenguaje en el código objeto SINTESIS Código Objeto
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2 Fases de la etapa de ANALISIS Código Fuente SCANNER Analizador de LEXICO PARSER Analizador de SINTAXIS Lista de Tokens Analizador de SEMÁNTICA Árbol sintáctico Árbol sintáctico Fases de la etapa de SINTESIS Árbol Sintáctico Generación de Código Intermedio Optimización de código Código Intermedio Generación de Código Objeto Código optimizado Código objeto
Background image of page 2
3 Analizador de LÉXICO Lee caracter por caracter el texto de entrada y Lee caracter por caracter el texto de entrada, y los agrupa tratando de reconocer elementos válidos del lenguaje. Elimina espacios y líneas en blanco, tabuladores y los comentarios del programa. Asocia a cada elemento reconocido con una Asocia a cada elemento reconocido con una clave llamada TOKEN. Genera mensajes de error cuando no reconoce elementos válidos. Asignación de TOKENS Los símbolos y palabras con significado único Los símbolos y palabras con significado único, reciben una clave de token particular. Los elementos que son del mismo tipo, reciben una clave de token genérico, y se guardan en memoria (tabla de símbolos) Ejemplo: memoria (tabla de símbolos). Ejemplo: identificadores y constantes
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
4 Ejemplo main() { //programa que no hace nada Lista de Tokens: PR_main (5) Paréntesis_abierto (12) Paréntesis cerrado (13 int a; a = a * 2; } Paréntesis_cerrado (13) Llave_abierta (18) PR_int(4) identificador (20, dirX) Puntoycoma (33) identificador (20, dirX) Op= (67 SCANNER Op (67) identificador (20,dirX) Op* (58) Cte_entera (25, dirZ) Puntoycoma (33) Llave_cerrada (19) ¿Cómo se construye un Analizador de Léxico? Diseñar un autómata de estados finitos determinístico que reconozca a todos los elementos del lenguaje. Representar el autómata en memoria. Matriz de transiciones. Implementar un manejador de la matriz Implementar un manejador de la matriz. Utilizar un generador automático de scanners: LEX o FLEX . ER->AEFND->AEFD->Matriz
Background image of page 4
5 Ejemplo Letra, dígito, _ Ret, blanco 0 1 100 letra delimitador 2 101 delimitador digito digito * * 0 1 2 letra digito _+( 1 2 E 102 103 1 1 1 100 100 E 2 E 101 101 Estado Símbolo 102 + 103 ( E 2 E 101 101 Algoritmo general para manejar la matriz Estado=0
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 6
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 15

04. Compiladores - Lenguajes de programacin Cmo se...

This preview shows document pages 1 - 6. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online