Analizador semantico

Solo disponible en BuenasTareas
  • Páginas : 13 (3047 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de enero de 2011
Leer documento completo
Vista previa del texto
Tema

9

Análisis Semántico

9.1 Función del analizador semántico. 9.2 Tabla de símbolos 9.2.1 Función. 9.2.2 Características. 9.2.3 Contenido. 9.2.4 Estructura. 9.2.5 Operaciones. 9.3 Análisis dirigido por sintaxis. 9.4 Gramática con atributos. 9.4.1 Métodos de evaluación de los atributos. 9.4.2 Tipos de gramáticas con atributos. 9.4.3 Esquemas de traducción. 9.5 Comprobación de tipos. 9.6Conversión de tipos.

Bibliografía básica [Aho90] [Trem85] Alfred V. Aho, Ravi Sethi, Jffrey D. Ullman Compiladores. Principios, técnicas y herramientas. Addison-Wesley Iberoamericana 1990. J. Tremblay, P.G. Sorenson The theory and practice of compiler writing. Mc-Graw-Hill 1985.

1

TABLA DE SÍMBOLOS Objetivo. Delimitar el contexto de un conjunto de frases o instrucciones de un lenguajelibre de contexto. Desde el punto del analizador sintáctico, lo único que se necesita identificar es que determinadas palabras (pertenecientes a un COMPONENTE SINTÁCTICO) deben aparecer precedidas o seguidas por otras palabras.

Utilidad. Simplifican el análisis sintáctico. Ayudan en la comprobaciones SEMÁNTICAS. Ayudan en la generación de código.

Contenido de la tabla de símbolos.Esencialmente la información que aparece en la tabla de símbolos es de dos tipos: El propio símbolo, y Los atributos necesarios para definir el símbolo a nivel semántico y de generación de código. Los atributos requeridos para cada símbolo depende a nivel general si: del tipo de gestión de memoria, el lenguaje está, o no, estructurado en bloques, el símbolo es, o no, parámetros de un procedimiento o función.2

CONSTRUCCIÓN DE LA TABLA DE SÍMBOLOS. 1. El analizador de léxico deberá: Insertar los símbolo detectados en la tabla de símbolos, Crear la tabla de símbolos parcialmente, Señalar la línea del programa fuente en donde aparecen. 2. El analizador semántico: Añadir los tipos, si procede, a los símbolos que aparecen en la tabla de símbolos. Cuando se hace una implantación de una única pasada,entonces los símbolos son insertados y calificados, a nivel semántica y de generación de código, por el analizador sintáctico y en el mismo instante que son detectados por el analizador léxico y que son pasados al analizador sintáctico. Operaciones sobre la tabla de símbolos. INSERTAR CONSULTAR MODIFICAR (añadir atributos nuevos) El CUANDO y el CÓMO se usan estas operaciones dependen del tipo delenguaje: Lenguajes con DECLARACIONES DE VARIABLES: Explícitas: Declaraciones: sólo INSERTAR. Referencia: sólo CONSULTAR. Implícitas: CONSULTAR si no está ya incluida. INSERTAR, en caso contrario. Lenguajes con estructura de BLOQUE : CREAR SUBTABLAS.
3

IMPLEMENTACIÓN DE LA TABLA DE SÍMBOLOS La distribución de la información de la tabla de símbolos dependerá de las características del lenguaje yde las restricciones establecidas para los símbolos. Campo dedicado para el símbolo Formato fijo Apropiado cuando se establece límite en el número de caracteres que forman los símbolos y, además, sea pequeño. En este caso sólo se dispone de un área fija en la tabla para almacenar el símbolo. Formato variable Se dispone de la tabla de símbolos y de un área auxiliar en donde se introducen lossímbolos de modo consecutivo. En la TS se sustituye el campo dedicado para el nombre del símbolo por un puntero al área auxiliar y un entero que indica la longitud del mismo.

Inicio Longitud

1 4 ... 5 3 ...

1

2

3

4

5

6

7

M A T

I

T R E ...

4

Campo “dirección” Lenguajes SIN estructura de Bloque. Se asignan direcciones consecutivas según el orden en el queaparecen declaradas. Lenguajes CON estructura de Bloque. Para cada bloque se asigna una subtabla, la dirección será consecutiva para cada bloque Se necesitan dos campos: Nº Bloque Dirección Bloque

Se introduce este campo en la TS cuando se declara. Se utiliza este atributo en la fase de Generación de código. Campo “Tipo” Se introduce cuando se identifica una declaración explícita o implícita de una...
tracking img