la tecnologia
Curso: Teoría de Compiladores
ANÁLISIS SEMÁNTICO
El análisis semántico dota de un significado coherente a lo que hemos hecho en el análisis
sintáctico. El chequeo semántico se encarga de que los tipos que intervienen en las
expresiones sean compatibles o que los parámetros reales de una función sean
coherentes con los parámetros formales
FUNCIONESPRINCIPALES
ü Identificar cada tipo de instrucción y sus componentes
ü Completar la Tabla de Símbolos
ü Realizar distintas comprobaciones y validaciones:
•
•
•
•
Comprobaciones
Comprobaciones
Comprobaciones
Comprobaciones
de tipos.
del flujo de control.
de unicidad.
de emparejamiento.
El Analizador Semántico finaliza la fase de Análisis del compilador y comienza la fase deSíntesis, en la cual se comienza a generar el código objeto.
La especificación de la semántica puede realizarse de dos formas:
ü Lenguaje natural
ü Especificación formal: Semántica Operacional, semántica denotacional, semántica
Axiomática, Gramáticas con Atributos.
ACCIONES SEMÁNTICAS
Dependiendo del tipo de sentencias, las acciones semánticas pueden agruparse en:
ü Sentencias de Declaración:Completar la sección de tipos de la Tabla de
Símbolos.
ü Sentencias “ejecutables”: Realizar comprobaciones de tipos entre los operandos
implicados.
ü Funciones y procedimientos: Comprobar el número, orden y tipo de los
parámetros actuales en cada llamada a una función o procedimiento.
Docente: Ing. Mirko Manrique Ronceros
~1~
Universidad Nacional del Santa
ü Identificación de
antesde utilizarlo.
Curso: Teoría de Compiladores
variables: Comprobar si un identificador ha sido declarado
ü Etiquetas: Comprobar si hay etiquetas repetidas y validación.
ü Constantes: Comprobar que no se utilicen en la parte izquierda de una asignación.
ü Conversiones y equivalencias de tipo: Verificación.
ü Sobrecarga de operadores y funciones: Detectar y solventar.
GRAMÁTICAS CONATRIBUTOS
Una Gramática con Atributos es una generalización de las Gramáticas Libres de Contexto,
denominada Definición Dirigida por la Sintaxis:
ü Cada símbolo gramatical puede tener asociado un conjunto finito de atributos, que
pueden ser de los siguientes tipos:
•
Sintetizados: su valor se calcula en función de los atributos de los nodos hijos.
•
Heredados: su valor se calcula enfunción de los atributos de los nodos
hermanos y/o del nodo padre.
•
Cada atributo tomará valores en un dominio.
•
Cada producción llevará asociadas un conjunto de reglas semánticas.
•
Las relaciones de dependencia entre atributos, establecidas por las reglas
semánticas, se representarán mediante el Grafo de Dependencias.
A partir de estas gramáticas se llevan a cabo lasdenominadas “Traducciones dirigidas por
sintaxis”.
Atributos Sintetizados
En el caso de los símbolos terminales de la gramática, su atributo no es más que el
lexema asociado al token reconocido por el analizador léxico.
Una gramática con atributos se denomina Gramática S-Atribuida si todos los atributos son
sintetizados. Siempre es posible transformar una Gramática con Atributos en GramáticaS-Atribuida.
Docente: Ing. Mirko Manrique Ronceros
~2~
Universidad Nacional del Santa
Curso: Teoría de Compiladores
Ejemplo: Analizar la forma sentencial 12+3*6, a partir de la siguiente definición dirigida
por la sintaxis:
Atributos Heredados
Una gramática con atributos se denomina Gramática L-Atribuida si cada atributo que se
evalúa cumple una de las siguientes condiciones:
üEs un atributo sintetizado
ü Dada una producción A à X1X2..Xj..Xn, el atributo heredado asociado a Xj
depende únicamente de los atributos de X1,...,Xj-1 y/o de atributos heredados
asociados al símbolo A.
Grafo de Dependencias
Para calcular el valor de un atributo es necesario calcular en primer lugar los valores de
los atributos de los que depende, para lo cual se deberá establecer una...
Regístrate para leer el documento completo.