Académique Documents
Professionnel Documents
Culture Documents
DIRECCIONES
FUNCION
CARACTERISTICAS
CONTENIDO
ESTRUCTURA
OPERACIONES
RESUMEN
Una tabla de smbolos es la estructura de datos que permite almacenar
informacin semntica, 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 trminos de otros lenguajes o de
smbolos 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 smbolos son:
- Simplifica el anlisis sintctico
- Ayudan en las comprobaciones semnticas
- Y en la generacin de cdigo.
El contenido de la tabla de smbolos es de dos tipos: el propio smbolo y los
atributos necesarios para definir el smbolo a nivel semntico y de generacin de
cdigo, los atributos dependen a nivel general si:
* Del tipo de gestin de memoria
* El lenguaje esta, o no, estructurado en bloques
* El smbolo es, o no, parmetros de un procedimiento o funcin
Lenguaje con declaraciones de variables est conformado por dos tipos: explicitas e
implcitas, en la primera est compuesta por declaraciones de tipo operacin de
insertar y de referencia donde solo se puede consultar; y en las implcitas contiene las
operaciones de consulta si no est ya incluida e inserta en caso contrario y adems
tiene lenguajes con estructura de bloque, es decir crea subtablas.
En la implementacin de la tabla de smbolos, la distribucin de la informacin
depender de las caractersticas del lenguaje y de las restricciones establecidas para
los smbolos. Est conformado por campos:
Campo para el smbolo que a su vez se divide en formato fijo y variable respecto al
primero como su nombre lo dice establece un lmite en el nmero de caracteres que
forman los smbolos. En el segundo se dispone de la TS de un rea auxiliar en donde
se introducen los smbolos de un modo consecutivo.
Campo de direccin: este se divide en dos lenguajes sin y con estructura de
bloques en esta ltima se necesitan dos campos nmero y direccin de bloque.
Campo tipo: este se introduce cuando se identifica una declaracin explcita o
implcita de una variable. Y se utiliza para determinar la memoria de
almacenamiento y la comprobacin de tipos.
Campo nm. de dimensiones / nm. de parmetros: la realiza el analizador
semntico y sirve para delimitar el tamao de memoria necesaria para representar
el smbolo.
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.
ORGANIZACIN DE LA TS
Esta 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.
2Lenguajes CON estructura de bloque: una tabla para cada bloque con
estructura de PILA. La estructura consta de una PILA + INDICE.
COMPROBACIONES SEMANTICAS
ESTATICAS: las comprobaciones sintcticas y semnticas.
DINAMICAS: realizadas en tiempo de ejecucin.
SEMANTICAS:
De tipo: operandos en las expresiones
De flujo de control: puntos de salida y entrada.
De unicidad: verifica la presencia de smbolos de forma nica.
Relacin de nombres. Un mismo nombre puede aparecer ms de una vez.
EXPRESIONES DE TIPOS
Tipos bsicos: 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
EQUIVALENCIA ESTRUCTURAL
Modo de determinar si dos expresiones de tipos son equivalentes:
- Aplicando GDA
- Algoritmo de anlisis 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 idnticas.
2)
ESPECIFICACION DE UN COMPROBADOR DE TIPOS ELEMENTAL
Un comprobador de tipos ha de dispones de:
- Asignacin de tipos
- Comprobador de tipos en las expresiones
- Comprobador de tipos en las proposiciones o sentencias
- Comprobador de tipos de las funciones
- Bsicamente se advierten dos tareas:
- De asignacin
- De evaluacin y comprobacin
TOPICOS EN LA COMPROBACION DE TIPOS
1)
Conversin de tipos (Coercin).
- Implcita: se realiza automticamente por medio del compilador
- Explicita: se explicita por parte del programador la conversin
2)
Sobrecarga de funciones y operadores
+,-, son smbolos 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.
Ejemplo