Compiladores
ANALISIS SEMANTICO
Trata de determinar el tipo de los resultados intermedios, comprobar que los argumentos que tiene un operador pertenecen al conjunto de los operadoresposibles, y si son compatibles entre sí. Es decir, comprobará que el significado de lo que se va leyendo es válido o no.
La semántica corresponde al significado asociado a las estructuras formales(sintaxis) del lenguaje.
El análisis semántico utiliza como entrada el árbol sintáctico detectado por el análisis sintáctico para comprobar restricciones de tipo y otras limitaciones semánticas ypreparar la generación de código.
Así, se denomina tradicionalmente “análisis semántico” a todo aquello que forma parte del frontal [front-end] más allá de lo que la gramática utilizada nos permite:
*Tabla de símbolos
* Chequeos de tipos (y otros)
* Generación de representación interna
La tabla de símbolos permite que el analizador léxico devuelva un token distinto según la categoríadel identificador en ese contexto. Con esta técnica:
* En el fondo, estamos introduciendo “dependencia del contexto” sobre una gramática independiente del contexto.
* Por tanto, aumentamos lapotencia del análisis sintáctico
* Podemos resolver algunos conflictos y así evitar modificar la gramática o el lenguaje.
* Ristra del identificador (¿mayúsculas y minúsculas?)
* Categoría:variable, constante, tipo, campo, procedimiento, función, parámetro, clase, etiqueta, módulo, macro, etc.
* A qué ámbito pertenece (profundidad)
* Otra información según categoría: tamaño;ubicación; valor; enlaces a tipo, parámetros o campos; si incompletamente definido; etc.
Su estructura lógica viene determinada por:
* El tipo de ámbito (estático o dinámico)
* Los mecanismos deámbito del lenguaje: procedimientos, bloques, herencia, módulos, espacios de nombres, registros, with,...
* Si se da más de una pasada.
* Compilación separada: ficheros con tablas
* Su...
Regístrate para leer el documento completo.