S07 - 1 Tabla de Simbolos
S07 - 1 Tabla de Simbolos
S07 - 1 Tabla de Simbolos
Unidad II
Analizador Sintctico
Semana 7
Tabla de smbolos
Objetivo General
El alumno al finalizar el curso desarrollar
aplicaciones que le permitan determinar si
una sentencia corresponde a la estructura
gramatical
de
un
lenguaje
de
programacin.
As
mismo
estar
capacitado para proponer nuevas formas
estructurales en la definicin de lenguajes
de programacin.
Objetivo Especfico
Objetivo Instruccional
Incorporar una tabla de smbolos al
analizador lexicogrfico
Temas
Generalidades
Tabla de Smbolos
Generalidades
Definicin
La tabla de smbolos es una estructura de
datos que se utiliza para almacenar
informacin (atributos) asociados a smbolos
declarados en el programa.
Generalidades
Generalidades
Qu almacena?
La tabla almacena la informacin que en cada
momento se necesita conocer sobre las variables
del programa, informacin tal como: nombre, tipo,
direccin de localizacin, tamao, etc.
La gestin de la tabla de smbolos es muy
importante, ya que consume gran parte del tiempo
de compilacin. De ah que su eficiencia sea crtica.
Generalidades
direccin,
Parmetros:
variable
clase
tipo
de
variable,
de
Generalidades
Generalidades
Generalidades
Generalidades
Generalidades
Generalidades
Generalidades
Tabla de Smbolos
ESTRUCTURA
Tabla de Smbolos
ESTRUCTURA
Tabla de Smbolos
ESTRUCTURA
Tabla de Smbolos
Definiendo
puntero.
el
campo
nombre
como
un
ESTRUCTURA
Tabla de Smbolos
B. Direccin de memoria
En este campo se almacenan las direcciones de
memoria en las que se guardaran los valores de las
variables correspondientes a cada smbolo, durante
la ejecucin del programa.
ESTRUCTURA
Tabla de Smbolos
C. Tipos
En este campo se almacenara el cdigo
correspondiente al tipo de datos representado por
el smbolo, o bien un puntero a la estructura de
datos correspondiente.
ESTRUCTURA
Tabla de Smbolos
INICIALIZACION
Tabla de Smbolos
FUNCIONAMIENTO
Anlisis
lxico
Anlisis
sintctico
Anlisis Semntico
TABLA DE SIMBOLOS
Gener
ador
de
cdigo
Tabla de Smbolos
FUNCIONAMIENTO
a. La TS puede inicializarse con cierta informacin
sobre smbolos especiales en el lenguaje, como son
las palabras reservadas, funciones de libreras,
constantes predefinidas, etc.
Tabla de Smbolos
FUNCIONAMIENTO
d. El analizador sintctico sirve de soporte o
armazn de un conjunto de rutinas del anlisis
semntico. Parte de estas rutinas puede
completar la informacin de la TS sobre el tipo
de un determinado lexema.
e. El generador de cdigo usa la informacin de la
TS para referenciar el cdigo a las posiciones
adecuadas de memoria.
OPERACIONES
Tabla de Smbolos
dos
ORGANIZACIN
1
Program ejemplo;
Var uno : integer;
Tabla de Smbolos
Procedure dos
Var tres, cuatro : integer;
Procedure cinco
Begin
End
Procedure seis
End
Begin
End
Tabla de Smbolos
EJEMPLO
program e
var a, b, c : char;
procedure f;
var a, b, c: char;
procedure g;
var a, b : char;
procedure h;
var c, d : char;
procedure i;
var b, c: char;
procedure j;
var b, d:char;
e():
a, b, c
f, g, j
f():
a, b, c
h():
c, d
j():
b, d
g():
a, b
h, i
i():
b, c
ESTRUCTURAS DE DATOS
Tabla de Smbolos
Lista no ordenada:
Lista ordenada:
rbol binario:
Tablas hash:
ESTRUCTURAS DE DATOS
Tabla de Smbolos
Lista no ordenada
ESTRUCTURAS DE DATOS
Tabla de Smbolos
rbol binario
ESTRUCTURAS DE DATOS
Tabla de Smbolos
(bosque de rboles)
dos
tres
cuatro
cinco
(a)
uno
dos
ESTRUCTURAS DE DATOS
(bosque de rboles)
Tabla de Smbolos
ESTRUCTURAS DE DATOS
Tabla de Smbolos
Tablas hash
Dos cadenas
diferentes pueden
estar asociadas al
mismo ndice
(COLISION).
La funcin de dispersin h:
asocia una cadena de
caracteres con un cdigo de
dispersin = ndice de la tabla.
Tabla de Smbolos
TRABAJO
Al analizador lexicogrfico desarrollado,
incorporar la implementacin y uso de
la tabla de smbolos para reconocer
errores tales como variables no
definidas o variables ya definidas.
Analizador Sintctico
Semana 7
Tabla de smbolos