Clasificaciones, modalidades y tendencias de investigación educativa.
Tabla De Simbolos
1. TABLA DE SIMBOLOS Ing. Diego Andrés Manios M. UNIVERSIDA ANTONIO NARIÑO
2.
3. La tabla almacena la información que en cada momento se necesita sobre las variables del programa, información tal como: nombre, tipo, dirección de localización, tamaño, etc. La gestión de la tabla de símbolos es muy importante, ya que consume gran parte del tiempo de compilación. De ahí que su eficiencia sea crítica. Aunque también sirve para guardar información referente a los tipos creados por el usuario, tipos enumerados y, en general, a cualquier identificador creado por el usuario, nos vamos a centrar principalmente en las variables de usuario.
4. 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.
5. 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)
6. Algunas TS contienen también las palabras reservadas del Lenguaje, esto implica que sea creada inicialmente con todas las posibles Palabras Reservadas, para que después se incluyan los identificadores del programa. En este caso el léxico debe usar la TS para ver si una cadena es o no una palabra reservada. Caso la TS contenga sólo identificadores, el léxico podrá mantener una Tabla de Palabras Reservadas para poder identificar si una cadena es o no palabra Reservada
7. La Tabla de Palabras reservada es una tabla estática que debe tener valores definidos por el mismo programa (constante). Debe estar organizada de manera a tener un acceso eficiente. La Tabla de palabras reservadas también debe incluir los nombres de las funciones intrínsecas del lenguaje
8. 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 un campo de tamaño variable. Estructura TS
9. Campo Atributo: asociado al nombre que generalmente es compuesto y puede contener: Tipo: indica si el identificador es variable, constante, entero, real, procedimiento, función, etc. » Indicador: si el identificador tiene valor definido o no » Valor: si se trata de una constante » Ámbito del identificador: si fuera el caso » Dimensión: (para arreglos) cuantas dimensiones y el rango para cada una
10. Dirección asignada al identificador, generalmente esuna posición relativa a una dirección base Número y tipo de parámetros (si fuera procedimiento o función)
11. 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 Organización TS
12. La TS debe organizarse de manera eficiente teniendo en cuenta las características del lenguaje. Se puede proponer: » Campos de tamaño fijo o variable » Entradas ordenadas, tablas secuenciales indexadas » Listas ligadas » Árboles binarios » Árboles B » Dispersión » Una combinación de los métodos anteriores
13. Campos fijos Es usado generalmente cuando el nombre del identificador tiene un máximo de pocos caracteres
14. Campos Nombre Variables Se usa generalmente cuando el número de caracteres máximo para un identificador es bastante grande
15. Campos Variables Se usa cuando la estructura de la TS es muy variada para los diferentes tipos de entrada
16. Esta operación se realiza cada vez que aparece un nuevo identificador en el programa fuente. La operación se ejecuta, generalmente, cuando no existe otro identificador con el mismo nombre. Normalmente se incluye el nombre del identificador y el tipo del mismo. Si se trata de un procedimiento o función será necesario crear entradas para los parámetros formales o realizar un proceso especial para guardar la declaración del procedimiento o función. Inclusión
17. Toda vez que aparece la referencia a un identificador es necesario verificar si éste ya está en la TS. Dependiendo del lenguaje si el identificador no está: » Hay que incluirlo (lenguajes sin declaración de variables) » Hay un error (lenguajes con declaración de variables) En el análisis Semántico se consulta para realizar la verificación de tipos (entero, real, arreglos, etc). En el generador de código se consulta para obtener la dirección asignada al identificador Consulta
18. Algunos de los valores del atributo se conocen con posterioridad a la declaración/aparición por primera vez de la variable. En este caso será necesario realizar una operación de modificación sobre un atributo como por ejemplo: Dirección de memoria asignada Si la variable tiene valor asignado o no. Modificación