Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad de Ingeniería
ANÁLISIS SEMÁNTICO
a:=a+1;
Analizador Semántico
Analizador Sintáctico
Código Intermedio
Analizador Léxico
Código Final
0000 0110
; 1 + a := a <a, ID> LD A, t1 0110 1100
INC A 1110 0110
STA t1, A 0001 0111
1111 1101
𝑐h𝑎𝑟
≠ 𝑑𝑜𝑢𝑏𝑙𝑒
𝑐𝑜𝑚𝑝𝑎𝑡𝑖𝑏𝑙𝑒 ⇒ 𝐸𝑟𝑟𝑜𝑟
𝑁𝑜
COMO FUNCIONA EL ANALIZADOR SEMÁNTICO
El analizador semántico requiere las siguientes
características que son
atributos
reglas semánticas
- Identificadores
- Palabras reservadas (opcional)
- Constantes (opcional)
Para cada entrada en la TS se debe guardar:
- Lexema
- Tipo (depende de la implementación)
- Ámbito (depende de la implementación)
- Dirección de memoria
TABLA DE SÍMBOLOS
Ejemplo
𝑇𝑖𝑝𝑜 𝑑𝑒 𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑜𝑠
𝑀𝑎𝑡𝑟𝑖𝑧
𝑁 ú𝑚𝑒𝑟𝑜𝑑𝑒 𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑜𝑠
𝐿í 𝑚𝑖𝑡𝑒𝑖𝑛𝑓 . 𝑦 𝑠𝑢𝑝 .
𝑁 ú𝑚𝑒𝑟𝑜𝑑𝑒 𝑝𝑎𝑟𝑎𝑚𝑒𝑡𝑟𝑜𝑠
𝑃𝑟𝑜𝑐𝑒𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜
𝑇𝑖𝑝𝑜
𝑑𝑒 𝑝𝑎𝑟𝑎𝑚𝑒𝑡𝑟𝑜𝑠
𝑅𝑒𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎
𝐹𝑜𝑟𝑚𝑎𝑑𝑒 𝑝𝑎𝑠𝑜 𝑉𝑎𝑙𝑜𝑟
PRINCIPALES OPERACIONES DE LA TS
Inserción
Búsqueda
Eliminación
GESTIÓN DE TABLA DE SÍMBOLOS
La gestión de la TS es un punto crítico para el
rendimiento del compilado.
El acceso a la TS debe hacerse de forma eficiente y en
cualquier momento.
¿Quién debe acceder a la TS?
Analizador Léxico.
Analizador Semántico.
IMPLEMENTACIÓN DE LA TABLA DE SÍMBOLOS
La Implementación de la TS debe ser eficiente:
Lista:
Permite insertar fácilmente
La búsqueda depende del nº de elementos
Puede ser muy costoso
Lista ordenada:
La búsqueda es sencilla
La inserción es muy costosa
Tabla Hash:
Coste de inserción bajo
Coste de búsqueda bajo
Ideal para la TS
TABLA DE SÍMBOLOS
Ejemplo
Nombre de Línea Líneas
Número Dirección Tipo Valor
Variable Declaración Referenciada
1 Empresa 0 4 1 2 9,14,25
2 X3 4 1 0 3 12,14
3 Formal 8 3 2 4 36,37,38
4 B 48 1 0 5 10,11,13,23
5 Resp 52 1 0 5 11,23,25
6 M 56 6 0 6 17,21
7 Primero 64 2 0 7 28,29,30,38
ATRIBUTOS
Un atributo es un espacio de información que sirve para albergar una
característica propia del proceso de traducción y que puede ser transferida a
otras producciones gramaticales para que pueda ser usada desde allí por sus
reglas semánticas.
También se puede definir atributo como a las propiedades de los símbolos del
lenguaje que almacenan contenidos relacionados con el significado de los
símbolos a los que pertenecen.
Se calculan a partir de atributos de nodos hijos. Calculados con atributos en nodos padre y
hermanos.
Se refieren a los atributos del antecedente de la
regla. Se refieren a atributos del consecuente de la regla.
Los atributos sintetizados lo son durante toda la Los atributos heredados lo son durante toda la
gramática. gramática.
donde:
es una función matemática de sus argumentos.
es la colección de todos los atributos para todas las reglas gramaticales.
símbolos gramaticales.
ECUACIONES DE ATRIBUTOS
veremos un ejemplo para la cadena
Ahora
Consideremos la siguiente gramática simple para declaraciones de
variables de tipo int y float en una sintaxis tipo C:
ECUACIONES DE ATRIBUTOS
Asociada a la gramática tendremos la siguiente gramática con
atributos dtype.
Regla Gramatical Reglas Semánticas
ECUACIONES DE ATRIBUTOS
Las ecuaciones de atributo se pueden exhibir en un árbol de análisis
gramatical. Regla Gramatical Reglas Semánticas
GRAFOS DE DEPENDENCIAS
Un grafo de dependencias describe el flujo de información
entre las instancias de atributos en un árbol de análisis
sintáctico específico; una flecha de una instancia de
atributo a otra significa que el valor de la primera se
necesita para calcular la segunda.
GRAFOS DE DEPENDENCIAS
Algoritmo para su construcción:
Para cada nodo en el árbol de análisis sintáctico hacer
Para cada atributo del símbolo gramatical en el nodo hacer
Construir un nodo en el grafo de dependencias para ;
Para cada nodo en el árbol de análisis sintáctico hacer
Para cada regla semántica asociada con la producción
utilizada en hacer
Para cada hasta k hacer
Construir una arista desde el nodo hasta el nodo para ;
GRAFOS DE DEPENDENCIAS
veremos un ejemplo para ello utilizaremos la gramática anterior
Ahora
y la misma cadena de entrada:
ACCIONES SEMÁNTICAS
• Define solo el valor de los atributos de los símbolos que aparecen en
la producción.
Esquema de Esquema de
traducción traducción con
postfijo acciones en medio de
la producción
ESQUEMAS DE TRADUCCIÓN
Esquema de traducción postfijo
Ejemplo
• Adicionar nuevos hijos a cada símbolo de la parte izquierda como nuevos hijos que
contienen a las acciones semánticas en el punto donde ellas se deben realizar.
La acción se ejecutará después de todas las acciones asociadas con el recorrido del subárbol de y antes que
todas las acciones asociadas con el recorrido del subárbol .
Otro ejemplo con el árbol de análisis sintáctico
{action}
OBJETIVOS DEL ANALIZADOR
SEMÁNTICO
La Fase de análisis semántico tiene por objetivo analizar los componentes del árbol de análisis sintáctico
que representan en el programa con el fin de comprobar que se respetan ciertas reglas semánticas que
dan un significado coherente a las construcciones del lenguaje, es decir, el analizador semántico va
comprobando la coherencia semántica del árbol de análisis sintáctico según se va construyendo.
Tabla de Símbolos