tabla de convercion de simbolos y direcciones

8
COMO SE LLEVA A CABO LA CREACION DE LA TABLA DE SIMBOLOS Y DE DIRECCIONES · FUNCION · CARACTERISTICAS · CONTENIDO · ESTRUCTURA · OPERACIONES RESUMEN Una tabla de símbolos es la estructura de datos que permite almacenar información semántica, es decir en ella se encuentra el significado asociado a las estructuras formales (sintaxis) del lenguaje. Su objetivo es delimitar el contexto de un conjunto de frases o instrucciones de un lenguaje libre de contexto, es decir que los lenguajes representados por las variables se describen recursivamente en términos de otros lenguajes o de símbolos primitivos llamados terminales y las reglas que describen el lenguaje asociado con cada variable se llaman producciones. Algunas de las utilidades de la tabla de símbolos son: - Simplifica el análisis sintáctico - Ayudan en las comprobaciones semánticas - Y en la generación de código. El contenido de 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 dependen a nivel general si: * Del tipo de gestión de memoria * El lenguaje esta, o no, estructurado en bloques * El símbolo es, o no, parámetros de un procedimiento o función CONSTRUCCION DE LA TABLA DE SIMBOLOS 1. El analizador léxico deberá: - Insertar los símbolos 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:

Upload: eduardo-rayo

Post on 20-Feb-2016

9 views

Category:

Documents


0 download

DESCRIPTION

Lenguaje y autómatas 2

TRANSCRIPT

Page 1: Tabla de Convercion de Simbolos y Direcciones

COMO SE LLEVA A CABO LA CREACION DE LA TABLA DE SIMBOLOS Y DE DIRECCIONES

·         FUNCION·         CARACTERISTICAS·         CONTENIDO·         ESTRUCTURA·         OPERACIONES

RESUMENUna  tabla de símbolos es la estructura de datos que permite almacenar información semántica, es decir en ella se encuentra el significado asociado a las estructuras formales (sintaxis) del lenguaje.Su objetivo es delimitar el contexto de un conjunto de frases o instrucciones de un lenguaje libre de contexto, es decir que los lenguajes representados por las variables se describen recursivamente en términos de otros lenguajes o de símbolos primitivos llamados terminales y las reglas que describen el lenguaje asociado con cada variable se llaman producciones.Algunas de las utilidades de la tabla de símbolos son: -   Simplifica el análisis sintáctico-  Ayudan en las comprobaciones semánticas-   Y en la generación de código.El contenido de 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 dependen a nivel general si:*  Del tipo de gestión de memoria*  El lenguaje esta, o no, estructurado en bloques*  El símbolo es, o no, parámetros de un procedimiento o función

CONSTRUCCION DE LA TABLA DE SIMBOLOS1.      El analizador léxico deberá:

-  Insertar los símbolos 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.

Page 2: Tabla de Convercion de Simbolos y Direcciones

OPERACIONES SOBRE LA TABLA DE SIMBOLOS1.      Insertar2.      Consultar3.      Modificar (añadir atributos nuevos).

Lenguaje con declaraciones de variables está conformado por dos tipos: explicitas e implícitas, en la primera está compuesta por declaraciones de tipo operación de insertar y de referencia donde solo se puede consultar; y en las implícitas contiene las operaciones de consulta si no está ya incluida e inserta en caso contrario y además tiene lenguajes con estructura de bloque, es decir crea subtablas.En la implementación de la tabla de símbolos, la distribución de la información dependerá de las características del lenguaje y de las restricciones establecidas para los símbolos. Está conformado por campos:Campo para el símbolo que a su vez se divide en formato fijo y variable respecto al primero como su nombre lo dice establece un límite en el número de caracteres que forman los símbolos. En el segundo se dispone de la TS de un área auxiliar en donde se introducen los símbolos de un modo consecutivo.

Campo de dirección: este se divide en dos lenguajes sin y con estructura de bloques en esta última se necesitan dos campos número y dirección de bloque.Campo tipo: este se introduce cuando se identifica una declaración explícita o implícita de una variable. Y se utiliza para determinar la memoria de almacenamiento y la comprobación de tipos.Campo núm. de dimensiones / núm. de parámetros: la realiza el analizador semántico y sirve para delimitar el tamaño de memoria necesaria para representar el símbolo.Campo lista cruzada de referencia y puntero de orden: son útiles para el programador del traductor con objeto de facilitar el uso de la TS.ORGANIZACIÓN DE LA TSEsta se subdivide en dos fases:

1-      Lenguaje SIN estructura de bloque: es por medio de una lista está dividida por ordenada y no ordenada en la primera se representa por medio de árboles binarios y tablas hash.

2-      Lenguajes CON estructura de bloque: una tabla para cada bloque con estructura de PILA. La estructura consta de una PILA + INDICE.

Page 3: Tabla de Convercion de Simbolos y Direcciones

GRAMATICA CON ATRIBUTOSUna gramática con atributos es una gramática de contexto libre cuyos símbolos pueden tener asociados atributos y las producciones pueden tener asociadas reglas de evaluación de los atributos. Los atributos a mencionar son dos:

1)    ATRIBUTO HEREDADO: si b está asociado con algún símbolo de .Las reglas de evaluación se realizan cuando se aplican reducciones en el análisis sintáctico. Dentro de los requisitos de evaluación los atributos deben definirse en función de los atributos asociados con los símbolos gramaticales a su derecha y realizar un análisis ascendente.  

2)    ATRIBUTO SINTETIZADO: si b está asociado con el símbolo no terminal A.Su evaluación depende de los atributos asociados con los símbolos precedentes en la derivación. Como requisito es realizar un análisis descendente.

GRAFOS DE DEPENDENCIACuando aparecen definidos atributos sintetizados y heredados, es necesario establecer un ORDEN DE EVALUACION DE LOS ATRIBUTOS, para ello se utilizan los grafos de dependencia estos están construidos por nodos y arcos, cada uno de ellos tiene algún método de evaluación de las reglas semánticas; por ejemplo el nodo está compuesto por uno método de evaluación que es árbol de análisis dice que para cada entrada se construye el árbol sintáctico. Y en arco basado en reglas semánticas  dependiendo de estas (atributos heredados o sintetizados) se establece el orden de evaluación.

COMPROBACIONES SEMANTICASESTATICAS: las comprobaciones sintácticas y semánticas.DINAMICAS: realizadas en tiempo de ejecución.SEMANTICAS:

-   De tipo: operandos en las expresiones    -   De flujo de control: puntos de salida y entrada.-   De unicidad: verifica la presencia de símbolos de forma única.-   Relación de nombres. Un mismo nombre puede aparecer más de una vez.

EXPRESIONES DE TIPOS·         Tipos básicos: boolean, char, integer, real,….·         Nombre de tipos

Las expresiones de tipos es representado mediante el grafo dirigido aciclico (GDA).

CONSTRUCTORES DE TIPOS:* Matrices*  Producto*  Registro*  Apuntadores*  Funciones

Page 4: Tabla de Convercion de Simbolos y Direcciones

EQUIVALENCIA ESTRUCTURALModo de determinar si dos expresiones de tipos son equivalentes:- Aplicando GDA- Algoritmo de análisis de los constructores

1)      EQUIVALENCIA  DE NOMBRE: cuando las expresiones son nombradas, entonces dos expresiones de tipos son equivalentes de nombre si y solo si ambas expresiones son idénticas.

2)      ESPECIFICACION DE UN COMPROBADOR DE TIPOS ELEMENTALUn comprobador de tipos ha de dispones de:-  Asignación de tipos-   Comprobador de tipos en las expresiones-   Comprobador de tipos en las proposiciones o sentencias-   Comprobador de tipos de las funciones-   Básicamente se advierten dos tareas:-   De asignación-   De evaluación y comprobación

TOPICOS EN LA COMPROBACION DE TIPOS1)      Conversión de tipos (Coerción).

-   Implícita: se realiza automáticamente por medio del compilador-   Explicita: se explicita por parte del programador la conversión

2)      Sobrecarga de funciones y operadores+,-, son símbolos sobrecargados ya que su significado dependerá del contexto.(,), Pueden estar sobrecargadas (ADA, FORTRAN), ya que se usan como referencia de elementos de matrices y como funciones.

Page 5: Tabla de Convercion de Simbolos y Direcciones

Ejemplo