Analisis semantico compiladores
Cap. 3: Análisis Semántico
1. 2. 3. 4. Gramáticas con Atributos La tabla de simbolos La tabla de simbolos Tipos de datos y verificación de tipos Analizador semántico para TINYAtributos y Gramáticas con Atributos
• (visto en clases en pizarra)
1
12/10/2010
Algoritmos para el Cálculo de Atributos
• (visto en clases en pizarra)
La Tabla de Símbolos
•Es una estructura de datos de diccionario utili ada por un compilador para almacenar utilizada por un compilador para almacenar información de los nombres • Operaciones:
–Inserción: almacenar información de declaración de nombres – Búsqueda: recupera la información asociada con un nombre – Eliminación: elimina (marca como inactiva) la información de declaración de un nombre cuando ya no se aplica.
212/10/2010
Declaraciones
• Las declaraciones afectan el comportamiento e implementación de una tabla de simbolos. • Tipos de declaraciones: i d d l i Declaraciones de constantesconst int SIZE = 199;
Declaraciones de tipo
type Table = array[1..SIZE] of Entry; struct Entry {char *name, int count; struct Entry *next; }; typedef struct Entry *EntryPtr;
Declaraciones de variables
int a, b[100]Table symtab:
Declaraciones
• Tipos de declaraciones:
Declaraciones de procedimientos y funciones
• Atributos ligados a un nombre por efecto de una declaración:
‐ ‐ ‐ ‐ ‐Asociar un nombre a una constante Asociar un nombre a un tipo de dato recién definido Asociar un nombre a un tipo de dato pre‐definido p p Alcance (región del programa donde la declaración se aplica)Tiempo de vida (tiempo que dura la asociación con su localización de memoria)
3
12/10/2010
Declaraciones
• Variables estáticas en lenguaje C:
int count (void) {
static int counter = 0; return ++counter; } counter tiene alcance local a count, pero su tiempo de vida no esta asociado a la activación de count
• Uso de extern en lenguaje C: g j
int count (void) {
extern int...
Regístrate para leer el documento completo.