analisis semantico
Post on 08-Jun-2015
93.561 Views
Preview:
TRANSCRIPT
ANÁLISIS SEMÁNTICO
Que es la semántica? Se refiere a los aspectos del significado, sentido o
interpretación del significado de un determinado elemento, símbolo, palabra, expresión o representación formal.
Análisis semánticoSe 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
El análisis semántico se realiza posteriormente al sintáctico y mucho más difícil de formalizar que éste.
La salida “teórica” de la fase de análisis semántico sería un árbol semántico.
QUE ES UN ARBOL SEMANTICO?
Es una estructura jerárquica en la cual se registran las operaciónes que implica u operan dentro del programa fuente
En cada una de las ramas del arbol semantico se registra el valor o significado que este debe tener, y el analisis
semantico se encarga de terminar cual de los valores registrados en las ramas es aplicable.
Ejemplo:Suponiendo que tenemos esta linea de codigo en C:
res=valor1+valor2;
El analisis semantico se va a encargar que tanto el valor1 como el valor2 tengan datos que son compatibles en común y que ademas se les pueda aplicar dicho operador.
En C el simbolo (+) implica una suma de valores o una union de las cadenas
TABLA DE SIMBOLOS
Un compilador necesita guardar y usar la información de los objetos que se va encontrando en el texto fuente, como variables, etiquetas, declaraciones de tipos, etc.
Esta información se almacena en una estructura de datos interna conocida como tabla de símbolos.
TABLA DE SIMBOLOS
El compilador debe desarrollar una serie de funciones relativas a la manipulación de esta tabla como insertar un nuevo elemento en ella, consultar la información relacionada con un símbolo, borrar un elemento, etc. Como se tiene que acceder mucho a la tabla de símbolos los accesos deben ser lo más rápidos posible para que la compilación sea eficiente.
SISTEMAS DE TIPO:
Sistema de tipos: conjunto de reglas que determinan el criterio para asignar expresiones de tipo a las diferentes partes del código fuente.
Tipo básico: entero, carácter, real, lógico Nombres de tipo Constructores de tipo: estructuras, uniones,
objetos Apuntadores: referencias a tipos Funciones a=suma();
CHEQUEOS DE TIPOS (Y OTROS)
Un compilador debe realizar una serie de chequeos estáticos, como chequeos de tipos:
Consistencia: unicidad, existencia, no-ciclicidad, ... Equivalencia y compatibilidad de tipos Conversión explícita [cast] o forzada [coercion] Inferencia de tipos (en valores) Sobrecarga de funciones y operadores
COMPROBACIONES SEMÁNTICAS
Comprobaciones ESTÁTICAS.Las comprobaciones sintácticas y semánticas. Comprobaciones DINÁMICAS.Realizadas en tiempo de ejecución. Comprobaciones SEMÁNTICAS De TIPO.Verificación del tipo de los operandos en las
expresiones. De FLUJO de CONTROL.Verifica los puntos del programa de salida y entrada
delcontrol.
De UNICIDAD.Verifica la presencia de símbolos de forma única. (ejemplo: declarar un símbolo una sóla vez).Relación de NOMBRES.Un mismo nombre puede aparecer más de una vez.
REPRESENTACIONES INTERNAS
Intermedias entre frontal [front-end] y dorsal [back-end],
permiten desacoplar los diseños de unos y otros. Orientadas a:
Su optimización (instrucciones claras y simples) Generar código de distintas máquinas objeto y el
diseño debe permitir su fácil generación por el analizador
semántico.
INTEGRANTES DEL EQUIPO
José Guadalupe Gonzales Fernando García Rivera Jesús Alejandro Beltrán Reyna
top related