Professional Documents
Culture Documents
1
▪ Cuáles son los puntos de vista de descripción semántica más utilizados, realice un resumen
corto y un ejemplo de la especificación de los mismos.
Semántica axiomática: Especifica las propiedades del efecto de ejecutar las sentencias
sintácticamente correctas, expresadas mediante asertos, desoyendo así los aspectos de su
ejecución. Ejemplo:
2
Semántica de acciones: Fue elaborado por Peter Mosses para describir la semántica de
lenguajes de un modo más inteligible. Las especificaciones semánticas de lenguajes
siempre han sido consideradas como oscuras, complicadas y únicamente legibles por
expertos, adquiriendo así una mala reputación por su uso intensivo de símbolos
matemáticos. Ejemplo:
▪ Cuál es la conexión directa entre el análisis semántico con el resto de fases que emplea un
compilador, explique a través del organizador gráfico de Aho.
La conexión directa que tiene el análisis semántico con el resto de fases del
compilador es la Tabla de símbolos (Inserción y búsqueda de símbolos) y otra con
el Manejador de errores (Errores Semánticos).
3
▪ Cite de forma rápida ejemplos de comprobaciones que hace el analizador semántico con
respecto a:
✓ Comprobaciones de unicidad
Constantes de cada case en Pascal, C o Java. Cada uno de los elementos existentes en los
condicionales múltiples de los lenguajes de programación mencionados, ha de ser único. En otro
caso, el analizador semántico deberá generar un error de compilación.
4
✓ Comprobaciones de enlace
En un ensamblador, un salto a una etiqueta requiere que ésta haya sido referida como una
posición de memoria.
Las sentencias break y continue de Java y C sólo pueden utilizarse en determinadas estructuras de
control del lenguaje. Éste es otro escenario para que el analizador sintáctico posponga la
comprobación hasta la fase análisis semántico.
✓ Comprobaciones dinámicas
✓ Comprobaciones de tipo
▪ Qué comprende el análisis semántico como decoración del Árbol de Sintaxis abstracta.
-Las expresiones tendrán asociadas un atributo tipo que indique si son reales o enteras. Esto es
necesario porque se podrá asignar un valor entero a una expresión real, pero no al revés.
−Las expresiones deberán tener un atributo lógico que indique si son o no lvalues. De este modo,
se podrá comprobar si lo que está a la izquierda de la asignación es o no semánticamente correcto.
−En una declaración se deberá insertar el identificador en una tabla de símbolos con su tipo
declarado, para poder conocer posteriormente el tipo de cualquier identificador en una expresión.
Es, por tanto, necesario asignar un atributo nombre (cadena de caracteres) a un identificador.
−Finalmente, aunque más enfocado a la fase de generación de código o interpretación que al análisis
semántico– se le asigna un valor entero o real a las constantes del lenguaje.
▪ Defina una gramática concreta para la siguiente operación 7+(4*2) * 5 / (10*2) y finalmente
genere su árbol sintáctico.
5
6