TABLAS DE SIMBOLOS



Tablas de símbolos por alcance:

Estático o léxico: antes de la ejecución
Dinámico: durante la ejecución.

Cada una de las llamadas a la función que puede tener un atabla de símbolos diferente en su entrada.
La semántica de una función puede variar radicalmente dependiendo  de la trayectoria de la ejecución.

El uso de tablas de símbolos:
  • Almacena todos los nombres  declarados en el programa y sus atributos (tipo, valor, dirección, parámetros, etc.).
  • Se usa en las distintas fases del  compilador.



Estructuras usadas para implementar una tabla de símbolos 
  • Lista
  • Simple de implementar.
  • Lenta cuando se trabaja con muchos
  • identificadores.
  • Árbol
  • Rápida.
  • Consume más memoria.
  • Es útil cuando hay muchas declaraciones.
  • Tabla de Hashing
  • Rápida.
  • Difícil de implementar.
  • Se debe definir una función de hashing
  • apropiada para evitar colisiones.
Operaciones sobre TS

Búsqueda(lexema): entero;
{ Inserción(lexema,descriptor): boolean;
{ Obt_atributo(lexema,atributo): valor;
{ Eliminación (lexema): entero.


ejemplo Propuesto:

Scanner reader = new Scanner(System.in);                
int Numero1, Numero2;


tabla de Simbolos


Lexema:                                               Token:

Sacanner                                             palabra reservada
reader                                                  palabra reservada
=                                                           (=) o Asignacion
New                                                      palabra reservada
Sacanner                                             palabra reservada
(                                                           parentesis open
System.in                                             palabra reservada
)                                                           parentesis close
;                                                           palabra reservada
int                                                        palabra reservada
Numero1                                              id,1
,                                                          palabra reservada
Numero2                                              id,2
;                                                          palabra reservada



0 comentarios:

Publicar un comentario