viernes, 3 de junio de 2016

Unidad 4 - 5

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