Análisis Semántico
Contenido
•
Dar a conocer las fases del análisis semántico.
Enseñar
la especificación semántica de un lenguaje de programación.
Definición
Semántica de un lenguaje de
programación es el conjunto de reglas que especifican el significado de
cualquier sentencia sintácticamente válida.
Análisis Semántico
Es la etapa que procesa la
información adicional necesaria para el procesamiento de un lenguaje, una vez
que la estructura sintáctica de un programa haya sido obtenida
Un analizador semántico comprueba que un
analizador sintáctico es
semánticamente válido.
Además genera un árbol
semántico o etiquetado.
|
Análisis semántico
Ø Se trata de determinar el
tipo de los resultados intermedios, comprobar que los argumentos que tiene un
operador pertenecen al conjunto de los operadores posibles, y si son
compatibles entre sí, etc. En definitiva, comprobará que el significado de lo
que se va leyendo es válido.
Análisis semántico
1.
El análisis semántico se
realiza posteriormente al sintáctico y mucho difícil de formalizar éste.
UNIDAD #5
Lenguajes intermedios, definición y tipos
Optimización dependiente e independiente de la
maquina
Generador de código
LA MÁQUINA
Según el modelo de arquitectura de un compilador en el que
éste se divide en frontend y backend, la etapa inicial traduce el programa
fuente a una representación intermedia a partir de la cual la etapa final
genera el código objeto, ya sea en forma de código máquina o ensamblador.
INDEPENDENCIA DE LA MÁQUINA
La construcción del lenguaje
objeto en la etapa final, facilita la reutilización del frontend para crear
otros compiladores del mismo lenguaje pero que generan código para otras
plataformas.
INDEPENDENCIA DE LA MÁQUINA
La división en etapas se realiza utilizando un código
intermedio independiente de la máquina destino.
El programa en código intermedio resultante es la salida
de la etapa frontend y la entrada al backend
A QUÉ LE LLAMAMOS CÓDIGO INTERMEDIO?
El código intermedio es una simplificación de los lenguajes de
alto nivel en la que se
elimina
las estructuras y las declaraciones y con sentencias cercanas al ensamblador.
PARA QUE LO UTILIZAMOS?
El código intermedio se utiliza en un compilador por las
siguientes razones:
1.
Es mas fácil hacer la conversión en dos fases.
2.
Independiza el analizador sintáctico del resto del
compilador.
Es mas sencillo aplicar la
optimización sobre instrucciones independientes del hardware que sobre
instrucciones dependientes.
A QUÉ LE LLAMAMOS LENGUAJE INTERMEDIO?
Los lenguajes intermedios son representaciones abstractas de un leguaje
fuente.
Algunas representaciones obsoletas o en desuso son los árboles
sintácticos.
Actualmente se
utilizan como código intermedio las cuádruplas.
A QUE SE REFIERE EL USO DE CUÁDRUPLAS?
Tipos de
cuádruplas:
Cuartetos o
código de tres direcciones
(OPERADOR, operando1, operando2, resultado)
Tercetos o
código de dos direcciones.
(OPERADOR, operando1, operando2)
CÓDIGO INTERMEDIO
CÓDIGO INTERMEDIO
Se genera código
ensamblador
No hay comentarios:
Publicar un comentario