Analizadores Flashcards
Tercera
Análisis Léxico
¿Cómo funciona?
Lee el flujo de caracteres y los agrupa en secuencias significativas.
Secuencia siginifcativa = lexema
Es la primera fase de un compilador
Análisis Léxico
¿Qué es un lexema?
Es una secuencia significativa generada por el analizador léxico
en pos = i + v * 60 el elemento “pos” es un lexema
Para cada lexema el analizador léxico produce:
Un Token con forma nombre-token, valor-atributo
¿Qué es nombre-token?
Un símbolo abstracto usado en el anáisis sintáctico.
¿Qué es valor-atributo?
Apunta a una entrada en la tabla de símbolos para ese token
¿Para qué sirve la Tabla de Símbolos?
Se necesita para el análisis semántico y la generación de código
en pos = i + v * 60, “pos” se asigna a un token <id, 1>
1 = entrada en la tabla de símbolos para “pos”
id = símbolo abstracto que representa a un identificador
¿Qué contiene la tabla de símbolos?
Información sobre un identificador, como su nombre y su tipo
El analizador léxico ignora los espacios en blanco
Verdadero o Falso
Verdadero
¿Cuál es la segunda fase el compilador?
El análisis sintáctico
¿Cómo funciona el análisis sintáctico?
Utiliza los primeros componentes de los tokens producidos por el analizador de léxico para crear una representación intermedia en forma de árbol
¿Cómo se representa un árbol sintáctico?
Cada nodo interior representa una operación y los hijos del nodo representan los argumentos de la operación
¿Qué hace el analizador semántico?
Utiliza el árbol sintáctico y la información en la tabla de símbolos para comprobar la consistencia semántica
¿Qué proceso importante para la generación de código intermedio realiza el analizador semántico?
La comprobación de tipos, verifica que cada operador tenga operandos que coincidan.
¿Dónde se guarda la información sobre el tipo?
Ya sea en el árbol sintáctico o en la tabla de símbolos.
Lo hace el analizador semántico