You are on page 1of 10

Generacin de la

tabla de smbolos y
de direcciones

TABLA DE SMBOLOS
Estructura utilizada por el compilador para
almacenar informacin (atributos) asociada
a los smbolos declarados en el programa en
compilacin.
Objetivos:

Colaborar
con
las
comprobaciones
semnticas.
Facilitar ayuda a la generacin de cdigo.

CONTENIDO DE LA TABLA
Palabras reservadas: tienen un significado
especial; no pueden ser redefinidas.

Smbolos predefinidos: tienen un significado


especial, pero pueden ser redefinidos.
sin cos get put read
write integer! real!

CONTENIDO DE LA TABLA
Literales: constantes que denotan un valor
char caracter = 'z';
float pi = 3.14;

Smbolos generados por el compilador:


var a: record
b,c : integer;
end;

CONTENIDO DE LA TABLA
Smbolos definidos por el programador
Variables: tipo, lugar en memoria, valor?
referencias?
Tipos de datos: descripcin
Procedimientos y funciones: direccin,
parmetros, tipo de resultado
Parmetros: tipo de variable, clase de
parmetro
Etiquetas: lugar en el programa

FUNCIONAMIENTO
Conforme
van
apareciendo
nuevas
declaraciones de identificadores, el analizador
lxico, o el analizador sintctico segn la
estrategia que sigamos, insertar nuevas
entradas en la tabla de smbolos, evitando
siempre la existencia de entradas repetidas. El
analizador
semntico
efecta
las
comprobaciones sensibles al contexto gracias a
la tabla de smbolos, y el generador de cdigo
intermedio usa las direcciones de memoria
asociadas a cada identificador en la tabla de
smbolos, al igual que el generador de cdigo.

FUNCIONAMIENTO
Conforme
van
apareciendo
nuevas
declaraciones de identificadores, el analizador
lxico, o el analizador sintctico segn la
estrategia que sigamos, insertar nuevas
entradas en la tabla de smbolos, evitando
siempre la existencia de entradas repetidas. El
analizador
semntico
efecta
las
comprobaciones sensibles al contexto gracias a
la tabla de smbolos, y el generador de cdigo
intermedio usa las direcciones de memoria
asociadas a cada identificador en la tabla de
smbolos, al igual que el generador de cdigo.

EJEMPLO

ATRIBUTOS

Nombre de identificador.
Direccin en tiempo de ejecucin a partir de la cual se almacenar el
identificador si es una variable.
Tipo del identificador. Si es una funcin, es el tipo que devuelve la
funcin.
Nmero de dimensiones del array, o nmero de miembros de una
estructura o clase, o nmero de parmetros si se trata de una funcin.
Tamao mximo o rango de cada una de las dimensiones de los arrays, si
tienen dimensin esttica.
Tipo y forma de acceso de cada uno de los miembros de las estructuras,
uniones o clases. Tipo de cada uno de los parmetros de las funciones o
procedimientos.
Valor del descriptor del fichero y tipo de los elementos del fichero en el
caso de lenguajes basados en ficheros homogneos.
Nmero de la lnea del texto fuente en que la variable est declarada.
Nmero de la lnea del texto fuente en que se hace referencia a la
variable.
Campo puntero para construir una lista encadenada que permita listar las
variables en orden alfabtico en las fases de depuracin de cdigo.

IDENTIFICADORES

You might also like