Skip to main content

¿Qué es una tabla de símbolos?

Los sistemas informáticos utilizan una tabla de símbolos como una forma de centralizar la información y reducir el tamaño de los programas. Estas tablas funcionan como la clave de un código secreto; un símbolo o cadena se coloca al lado de otra información, generalmente mucho más grande. Cuando un programa lee un símbolo asociado con la tabla de símbolos, el programa hace referencia a la tabla y toma la información en lugar del símbolo. Esto permite que grandes piezas de información o estructuras comúnmente repetidas tengan solo una entrada, lo que reduce el tamaño general del programa.

El concepto detrás de una tabla de símbolos es muy simple. Una sola tabla contiene una amplia gama de información utilizada por un programa, cada una con su propia entrada y un símbolo asociado único. Esta información puede ser cadenas de código, información de depuración, ubicaciones de memoria, literalmente, cualquier cosa que el programa pueda usar para funcionar. En lugar de incluir esa información dentro del programa, el código simplemente hace referencia a la tabla usando su símbolo único.

Hay dos lugares donde una tabla de símbolos es común: en la compilación de código en programas y en la vinculación de bibliotecas utilizadas por múltiples programas. Cuando se usa en programas, la tabla real generalmente se absorbe en el programa o se convierte en una biblioteca compartida al momento de la compilación. Es inusual dejar la lista separada, ya que alterar la lista podría tener consecuencias extremas para el programa. Incluso cuando la tabla se transforma en este proceso, sigue siendo la misma cosa básica, solo se incluye junto con otro código.

Cuando se usa una tabla de símbolos en una biblioteca de enlaces, las posibilidades de cómo puede funcionar se expanden drásticamente. Una biblioteca de enlace es un conjunto de información que se supone que está disponible para un programa en cualquier momento. Estas bibliotecas a menudo son compartidas por un sistema operativo o una familia de programas relacionados, todos hechos por la misma compañía.

Cada una de estas bibliotecas está llena de información sobre ciertos temas. Una biblioteca puede contener una amplia gama de programación para dibujar los bordes de la ventana de la interfaz de usuario del sistema operativo, mientras que otra puede contener información sobre dónde un grupo específico de programas almacena información en la memoria. Dado que una biblioteca de enlace puede contener tal variedad aleatoria de información, las tablas de símbolos a menudo se incluyen con ellas.

Al incorporar una tabla de símbolos en un enlazador, es posible compartir los símbolos en una serie de programas. Esto permite que múltiples programas accedan a los mismos datos en cualquier momento. Si una gran cantidad de programas requieren la misma información, incluirla dentro de una tabla de símbolos en una biblioteca reduce enormemente el tamaño del grupo total de programas.