Está en la página 1de 2

Tabla de símbolos:

La tabla de símbolos es una es una estructura de datos que nos permite realizar
operaciones de inserción, búsqueda y eliminación de información en varias
construcciones del lenguaje fuente, la cual es analizada por el compilador
originándose un código abierto.

Un compilador utiliza una tabla de símbolos para llevar un registro de la


información sobre el ámbito y el enlace de los nombres. Se examina la tabla de
símbolos cada vez que se encuentra un nombre en el texto fuente. Si se descubre
un nombre nuevo o nueva información sobre un nombre ya existente, se producen
cambios en la tabla.

Es útil que un compilador pueda aumentar dinámicamente, la tabla de símbolos


durante la compilación. Si la tabla de símbolos tiene tamaño fijo al escribir el
compilador, entonces el tamaño debe ser lo suficientemente grande como para
albergar cualquier programa fuente. Es muy probable que dicho tamaño sea
demasiado grande para la mayoría de los programas e inadecuado para algunos.

Ejemplo de tabla de símbolos en lenguaje C

la tabla de símbolos es una estructura de datos que se crea en tiempo de


traducción del programa fuente. Es como un diccionario variable, debe darle apoyo
a la inserción, búsqueda y cancelación de nombres (identificadores) con sus
atributos asociados, representando las vinculaciones con las declaraciones. Debe
aclararse que no necesariamente deberá estar representada en una tabla como su
nombre indica ya que también se emplean árboles, pilas , etc.

Los símbolos se guardan en la tabla con su nombre y una serie de atributos


opcionales que dependerán del lenguaje y de los objetivos del procesador, este
conjunto de atributos almacenados se denomina registro de la tabla de símbolos.
La siguiente representa una serie de atributos que no es necesaria para todos los
compiladores, sin embargo cada uno de ellos se puede utilizar en la
implementación de un compilador particular.

nombre del identificador.

dirección en tiempo de ejecución a partir del cual se almacenara el identificador si


es una variable.

tipo del identificador. Si es una función, el tipo que devuelve la función.

número de dimensiones del array (arreglo), o número de miembros de una


estructura o clase, o números de parámetros si se trata de una función.

tamaño máximo o rango de cada una de las dimensiones de los array, si tiene
dimensión estática.

etc.

Máquina de pila abstracta

También podría gustarte