Java

Páginas: 5 (1074 palabras) Publicado: 30 de marzo de 2011
Administrador de Tabla de
Símbolos
Administrador de Tabla de Símbolos
Página4
TEÓRIA DE COMPILADORES
1 INTRODUCCIÓN
1.1 Necesidad de las Tablas de Símbolos
La fase de análisis semántico obtiene su nombre por requerir información relativa al significado del lenguaje, que está fuera del alcance de la representatividad de las gramáticas libres de contexto y los principales algoritmosexistentes de análisis; es por ello por lo que se dice que captura la parte de la fase de análisis considerada fuera del ámbito de la sintaxis. Dentro del la clasificación jerárquica que Chomsky dio de los lenguajes, la utilización de gramáticas sensibles al contexto (o de tipo 1) permitirían identificar sintácticamente características como que la utilización de una variable en el lenguaje Pascalha de estar previamente declarada. Sin embargo, la implementación de un analizador sintáctico basado en una gramática de estas características sería computacionalmente más compleja que un autómata de pila.
Así, la mayoría de los compiladores utilizan una gramática libre de contexto para describir la
sintaxis del lenguaje y una fase de análisis semántico posterior para restringir las sentenciasque
“semánticamente” no pertenecen al lenguaje. En el caso que mencionábamos del empleo de una
variable en Pascal que necesariamente haya tenido que ser declarada, el analizador sintáctico se limita a comprobar, mediante una gramática libre de contexto, que un identificador forma parte de una expresión. Una vez comprobado que la sentencia es sintácticamente correcta, el analizador semánticodeberá verificar que el identificador empleado como parte de una expresión haya sido declarado previamente. Para llevar a cabo esta tarea, es típica la utilización de una estructura de datos adicional denominada tabla de símbolos. Ésta poseerá una entrada por cada identificador declarado en el contexto que se esté analizando. Con este tipo de estructuras de datos adicionales, los desarrolladores decompiladores acostumbran a suplir las carencias de las gramáticas libres de contexto.
1.2 Objetivos de la Tabla de Símbolos
Las Tablas de Símbolos (en adelante TS) son estructuras de datos que almacenan toda la
información de los identificadores del lenguaje fuente.
Las misiones principales de la TS en el proceso de traducción son:
Colaborar con las comprobaciones semánticas.Facilitar ayuda a la generación de código.
La información almacenada en la TS depende directamente del tipo de elementos del lenguaje específico a procesar y de las características de dicho lenguaje. Habitualmente los elementos del lenguaje que requieren el uso de la TS son los distintos tipos de identificadores del lenguaje (nombres de variables, de objetos, de funciones, de etiquetas, de clases, demétodos, etc.).

Administrador de Tabla de Símbolos
Página5
La información relativa a un elemento del lenguaje se almacena en los denominados atributos de dicho elemento. Estos atributos también varían de un tipo de lenguaje a otro y de un elemento a otro. Así ejemplos de atributos tales como nombre, tipo, dirección relativa en tiempo de ejecución, dimensiones de los arrays, número y tipo delos parámetros de procedimientos, funciones y
métodos, tipos de acceso a los elementos de una clase (public, private, protected…), etc. se
recogen y se guardan en la TS.
Los atributos se obtienen unas veces directamente del análisis del programa fuente, es decir, están en forma explícita (por ejemplo en la sección de declaraciones del programa fuente) y otras veces los atributos se obtienen deforma implícita a través del contexto en el que aparece el elemento en el programa fuente.
En el proceso de compilación se accede a la TS en unos determinados puntos que dependen inicialmente del número y la naturaleza de las pasadas del procesador de lenguaje y del propio lenguaje fuente a procesar.
En los traductores y compiladores, las TS existen únicamente en tiempo de compilación,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Java
  • Java
  • java
  • JAVA
  • java
  • java
  • javiera
  • Java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS