ANÁLISIS
SEMÁNTICO
Construcción de compila dores principios y pra ctica - Kenneth C Louden -Interna tiona l Thomson Editores – 2004 pá g. 261
INTRODUCCIÓN Esta
fase se conoce como análisis semántico debido a que involucra el cálculo de información que rebasa las capacidades de las gramáticas libres de contexto y los algoritmos de análisis sintáctico estándar. También se conoce como análisis semántico estático.
¿QUÉ REALIZA?
el análisis semántico involucra la construcción de una tabla de símbolos para mantenerse al tanto de los significados de nombres establecidos en declaraciones e inferir tipos y verificarlos en expresiones y sentencias con el fin de determinar su exactitud dentro de las reglas de tipos del lenguaje.
PRIMERA CATEGORÍA Es el análisis de un programa que requiere las reglas del lenguaje de programación para establecer su exactitud y garantizar una ejecución adecuada. La complejidad de un análisis de esta clase varía enormemente de lenguaje a lenguaje
SEGUNDA CATEGORÍA Es el análisis realizado por un compilador para mejorar la eficiencia de ejecución del programa traducido. Esta clase de análisis por lo regular se incluye en el análisis de "optimización", o técnicas de mejoramiento de código.
El análisis semántico estático involucra tanto la descripción de los análisis a realizar, como la implementación de los análisis utilizando algoritmos apropiados. Aquí no existe un método que permita especificar la semántica estática de un lenguaje.
Lo que se utiliza común mente son las gramáticas con atributos. Estas son más útiles para lenguajes que obedecen el principio de la semántica dirigida por sintaxis, la cual asegura que el contenido semántico de un programa se encuentre estrechamente relacionado con su sintaxis. Por desgracia, el escritor de compiladores casi siempre debe construir una gramática con atributos a mano a partir del manual del lenguaje
ATRIBUTOS Y GRAMATICAS CON ATRIBUTOS Un atributo es cualquier propiedad de una construcción del lenguaje de programación. Los atributos pueden variar ampliamente en cuanto a la información que contienen. Ejemplos: El tipo de datos de una variable El valor de una expresión
TIPOS DE ATRIBUTOS Los atributos que pueden fijarse antes de la ejecución se denominan está ticos. otras que los atributos que sólo se pueden fijar durante la ejecución son diná micos
G RAMÁTICAS
CON ATRIBUTOS
En la semántica dirigida por sintaxis los atributos están directamente asociados con los símbolos gramaticales del lenguaje (los terminales y no terminales) Una gramática con atributos para los atributos a1…ak es la colección de todas esas ecuaciones para todas las reglas gramaticales del lenguaje.
Las gramáticas con atributos se describen en forma tabular, con cada regla gramatical enumerada con el conjunto de ecuaciones de atributo, o reglas semánticas asociadas con esa regla.
NÚMERO DÍGITO
| DIGITO 0|1|2|3|4|5|6|7|8|9
NÚMERO DIGITO
Atributo más importante de un número su valor : val
Cada número tiene un valor basado en el digito
Estas ecuaciones expresan la relación entre la sintaxis de las expresiones y la semántica de los cálculos aritméticos que se realizarán. Observe, por ejemplo, la diferencia entre el símbolo sintáctico + (un token) en la regla gramatical. Exp1 exp2 + term Y la operación de suma aritmética + que se realiza en la ecuación: exp1 .val= exp2.val + term.val