You are on page 1of 3

1.6.-GENERACIN DE LA TABLA DE SMBOLO Y DE DIRECCIONES.

Tambin se la llama tabla de nombres o tabla de identificadores. Es una estructura


de datos que usa el proceso de traduccin de un lenguaje de programacin, por
un compilador o un intrprete, donde cada smbolo en el cdigo fuente de un
programa est asociado con informacin tal como la ubicacin, el tipo de datos y
el mbito de cada variable, constante o procedimiento.
Funciones principales:
Efectuar chequeos semnticos.
Generacin de cdigo.
Ambas funciones se realizan insertando o recuperando desde la tabla de
smbolos los atributos de las variables usadas en el programa fuente.
Estos atributos, tales como:

el nombre
tipo
direccin de almacenamiento
dimensin de una variable

La organizacin de la tabla de smbolos variar dependiendo de las


limitaciones de memoria y tiempo de acceso.

Una tabla de smbolo provee la siguiente informacin:


Da un identificador.
Que informacin es asociada con un nombre.
Como se asocia esa informacin con un nombre.
Como acceder esta informacin.

La tabla almacena la informacin que en cada momento se necesita 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.
Tambin sirve para guardar informacin referente a los tipos creados por el
usuario, tipos enumerados y en general, a cualquier identificador creado por el
usuario, se centrar principalmente en las variables de usuario.

Lista de Atributos

Nombre de identificador.
Direccin en tiempo de ejecucin a partir de la cual se almacenar el
identificador si es una variable. En el caso de funciones puede ser la
direccin a partir de la cual se colocar el cdigo de la funcin.
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 se hace referencia a la
variable.
Consideraciones sobre la Tabla de Smbolos
La tabla de smbolos puede iniciarse con cierta informacin til, tal
como:
Constantes: PI, E, etc.
Funciones de librera: EXP, LOG, etc.
Palabras reservadas. Esto facilita el trabajo al lexicogrfico, que tras
reconocer un identificador lo busca en la tabla de smbolos, y si es
palabra reservada devuelve un token asociado.
Token: Es un par que consiste en un nombre de token y un valor de atributo
opcional.
El nombre del token es un smbolo abstracto que representa un tipo de unidad
lxica; por ejemplo, una palabra clave especfica o una secuencia de caracteres
de entrada que denotan un identificador.
Lexema: Es una secuencia de caracteres en el programa fuente, que coinciden
con el patrn para un token y que el analizador lxico identifica como una instancia
de ese token.

Para cada lexema, el analizador lxico produce como salida un token de la forma:

nombreToken,valorAributo
En el token, el primer componente nombreToken es un smbolo abstracto que se
utiliza durante el anlisis sintctico, y el siguiente componente valorAtributo apunta
a una entrada en la tabla de smbolos.
El analizador lxico encuentra dos tokens de la forma identificador, para los
conjuntos de caracteres suma y resta, para esta etapa de reconocimiento bastar
con dicha informacin; pero el generador de cdigo necesita saber la posicin y
uso de stos identificadores en el programa fuente.

Ejemplo
El analizador realiza esta identificacin de lexemas de la siguiente instruccin:
velocidad = distancia / tiempo
1.velocidad es un lexema que se representa por la forma id1, en donde id
representa de forma abstracta la palabra identificador y 1 la posicin en que se
encuentra el lexema en la tabla de smbolos.
2. El smbolo de asignacin = se representa por el token =,
3. distancia es un lexema al que se le asigna la forma id2
4. Para el smbolo / se asigna /
5. tiempo con la forma id3
El cdigo generado por el analizador lxico se representa como:
id1= id2/ id3
Se muestra la forma en que se almacenan los lexemas dentro de la tabla de
smbolos.

You might also like