Beruflich Dokumente
Kultur Dokumente
Sistemas
Lenguajes y Compiladores
Tabla de Símbolos
Lenguajes y Compiladores
1
Tabla de Símbolos
La Tabla de Símbolos (TS) es una estructura de
datos que usa un compilador para manipular los
identificadores que aparecen en un código fuente.
Almacena todas las características necesarias de un
identificador.
La estructura y organización de la TS depende de las
características del Lenguaje Fuente.
La TS es consultada constantemente durante la
compilación por tanto es importante que su
organización sea eficiente.
Compiladores
2
Tabla de Símbolos
La TS normalmente está vigente sólo durante la
compilación del programa fuente por lo que, en
general, se ubica en la memoria principal.
Es usada en varias fases de un compilador:
Semántico
» Para incluir nuevos identificadores
» Para verificar si un identificador ya existe
» Para verificación de tipos
Generación de código
» Para generar el código (direcciones de los operadores)
Compiladores
3
Tabla de Símbolos
Compiladores
5
Estructura de la TS
Tiene básicamente dos campos:
Nombre
Atributos
Campo Nombre: almacena la cadena de caracteres
que representa el identificador.
Algunos Lenguajes permiten que los identificadores
varíen su tamaño hasta 64 caracteres, otros permiten
sólo hasta 31 y algunos más antiguos sólo permitían
hasta 7 caracteres.
Dependiendo de diseño del Compilador éste campo
puede ser de tamaño fijo o puede ser ser un campo de
tamaño variable.
Compiladores
6
Estructura de la TS
Compiladores
7
Estructura de la TS
Compiladores
8
Organización
Un aspecto muy importante de la TS es su
organización de manera tal que su acceso sea
eficiente.
Se debe especificar las operaciones válidas sobre
esta estructura y cada operación deberá estar
asociada generalmente a una acción semántica (un
método).
La operaciones más frecuentes son:
Inclusión
Consulta
Modificación de algún subcampo de atributo
Compiladores
9
Organización
Campos fijos
Nombre Atributo
Compiladores
11
Organización
Campo Nombre Variable
Nombre Atributos
Compiladores
12
Organización
Campos Variables
Nombre Atributos
Compiladores
13
Inclusión
Compiladores
16