¿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 una cadena se coloca junto a otra información, generalmente mucho más grande. Cuando un programa lee un símbolo que está 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 podría 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 en el 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 lo mismo básico, simplemente se incluye junto con otro código.

Cuando se utiliza una tabla de símbolos en una biblioteca de enlaces, las posibilidades de cómo puede funcionar se amplían 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 suelen ser compartidas por un sistema operativo o una familia de programas relacionados que son todos creados por la misma empresa.

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 enlaces puede contener tal variedad aleatoria de información, a menudo se incluyen tablas de símbolos.

Al incorporar una tabla de símbolos en un enlazador, es posible compartir los símbolos en una serie de programas. Esto permite que varios 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.