Uno de los aspectos más interesantes del diseño de un compilador es la implementación de la tabla de símbolos, recurso indispensable que actúa como nodo central, en torno al cual trabajarán los analizadores léxicos, sintácticos y semánticos, así como los generadores y optimizadores de código. Del modo en que se construya esa tabla de símbolos dependerá en parte el rendimiento del compilador, por lo que es muy importante elegir adecuadamente las estructuras de datos a emplear.
En este documento en formato PDF, que en su momentó preparé para la asignatura Procesadores de Lenguajes I, hago un análisis de la utilidad de las tablas de símbolos en el diseño de un compilador, la forma en que funciona una tabla de símbolos y algunos de los aspectos a tener en cuenta, como puede ser la existencia de símbolos con el mismo identificador en diferentes ámbitos. Incluso aunque no nos interese el tema del diseño de compiladores, la información puede ser también útil a la hora de evaluar qué estructura de datos elegir (listas, árboles, tablas hash) a la hora de mantener una serie de claves (los identificadores) y datos asociados (tipo, longitud, etc.).
Torre de Babel - Francisco Charte Ojeda - Desde 1997 en la Web