Analizador Semantico
Analizador Semantico
Analizador Semantico
● Código de nivel
del lenguaje en
forma de datos.
● Estructura con
forma de árbol.
● Representa y
evalúa una
expresión.
1.1 Árboles de expresiones.
2 características importantes:
5 +
1.1 Árboles de expresiones.
Características a tomar en cuenta al momento de introducir la expresión:
Definición de un analizador
sintáctico: es la fase del
analizador que se encarga de
chequear el texto de entrada
en base a una gramática dada.
1.2 Acciones semánticas de un analizador sintáctico
Gramática: G (N, T, P, S)
● N = No terminales.
● T = Terminales.
● P = Reglas de Producción.
● S = Axioma Inicial
1.3 Comprobaciones de tipos en expresiones
Comprobaciones estáticas
Comprobaciones dinámicas
1.3 Comprobaciones de tipos en expresiones
Verificación de tipos
Inferencia de tipos
1.4 Pila semántica en un analizador sintáctico.
Las pilas son estructuras de datos que se utilizan generalmente para
simplificar ciertas operaciones de programación.
● LIFO.
● Recursividad.
● Información Semántica.
● Un solo lenguaje.
● Hace posible al analizador
sintáctico acceder a la tabla de
símbolos.
1.4 Pila semántica en un analizador sintáctico.
Bottom up.
● Conjunto de normas y
especificaciones dadas por la
sintaxis.
● Asignan significado lógico a
expresiones → sintaxis del lenguaje.
● Puede tener efectos colaterales.
1.4 Pila semántica en un analizador sintáctico.
Ventajas.
Funciones principales:
● Nombre.
● Tipo.
● Dirección de almacenamiento.
● Dimensión de una variable.
1.6 Generación de la tabla de símbolo y tabla de direcciones.
Estructura.
Valor de atributo | Valor de atributo | Valor de atributo | Valor de atributo → Variable
La tabla de símbolos
consume gran parte
del tiempo de
compilación.
1.6 Generación de la tabla de símbolo y tabla de direcciones.
Ejemplo.
1. velocidad → ⟨id│1⟩
2. = → 〈=〉
3. distancia → ⟨id│2⟩
4. / → 〈/〉
5. tiempo → ⟨id│3⟩
1.6 Generación de la tabla de símbolo y tabla de direcciones.
El código generado por el analizador léxico se representa como:
⟨id│1⟩〈=〉⟨id│2⟩〈/〉⟨id│3⟩
1.7 Manejo de errores semánticos
Hay, pues, dos criterios a seguir a la
hora de manejar errores: