Analisis semantico

Solo disponible en BuenasTareas
  • Páginas : 8 (1799 palabras )
  • Descarga(s) : 0
  • Publicado : 28 de noviembre de 2011
Leer documento completo
Vista previa del texto
INGENIERÍA EN SISTEMAS COMPUTACIONALES



PROGRAMACIÓN DE SISTEMAS





UNIDAD V

ANÁLISIS SEMÁNTICO











Contenido

INTRODUCCIÓN 2
OBJETIVOS 2
5.1 ANALIZADOR SEMÁNTICO. 2
5.2 VERIFICACIÓN DE TIPOS EN EXPRESIONES. 5
5.3 CONVERSIÓN DE TIPOS. 5
5.4 ACCIONES AGREGADAS EN UN ANALIZADOR SINTÁCTICO DESCENDENTE (TOP-DOWN). 7
5.5 PILASEMÁNTICA EN UN ANALIZADOR SINTÁCTICO ASCENDENTE (BOTTOM-UP). 8
5.6 ADMINISTRACIÓN DE LA TABLA DE SÍMBOLOS. 8
5.7 MANEJO DE ERRORES SEMÁNTICOS. 9
CONCLUSIÓN 10
BIBLIOGRAFÍA 10

INTRODUCCIÓN


El análisis semántico se realiza después del sintáctico y es mucho más difícil de formalizar que éste. Se trata de determinar el tipo de los resultados intermedios, comprobar que los argumentos quetiene 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.

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 y preparar la generación de código.OBJETIVOS

* Desarrollará software de base, tales como compiladores o interpretes.
* Conocer el funcionamiento del analizador semántico.
* Identificar los tipos de datos, así como las conversiones que se pueden hacer en el.
* Conocer los tipos de conversiones que se realizan en un programa.
* Identificar los tipos de errores semánticos.

5.1 ANALIZADOR SEMÁNTICO.

El análisissemántico es posterior al sintáctico y mucho más difícil de formalizar que éste. 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.
La salida “teórica” de la fase deanálisis semántico sería un árbol semántico. Consiste en un árbol sintáctico en el que cada una de sus ramas ha adquirido el significado que debe tener. En el caso de los operadores polimórficos (un único símbolo con varios significados), el análisis semántico determina cuál es el aplicable. Por ejemplo, consideremos la siguiente sentencia de asignación:
A := B + C
En Pascal, el signo “+” sirve parasumar enteros y reales, concatenar cadenas de caracteres y unir conjuntos. El análisis semántico debe comprobar que B y C sean de un tipo común o compatible y que se les pueda aplicar dicho operador. Si B y C son enteros o reales los sumará, si son cadenas las concatenará y si son conjuntos calculará su unión.

Se encarga de analizar y comprobar

* Ajuste significativo
* Comprobaciónde tipos: operandos-operadores
* Comprobación del flujo de control ejemplo :

for(;;)
{

break;
w= a+2;
}

* Comprobación de unicidad:
* int a;
* char a; //una sola vez

* Comprobación relacionadas con nombres

* Tabla de símbolos:
* Estructura en memoria
* Almacena información sobre los tipos

* Sistemas de tipo:
* 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();.
* Sistema de tipos: conjunto de reglas que determinan el criterio para asignar expresiones de tipo a las diferentes partes del código fuente.

* Cada analizador semántico implementa un sistema de tipos
* Comprobacióndinámica y estática
* Estática: compilación
* Dinámica: Ejecución char a[5]; strcpy(a, “abcdefghijk”);

Este tipo de analizador puede ser:

* Fuertemente tipificado
* Débilmente tipificado

5.2 VERIFICACIÓN DE TIPOS EN EXPRESIONES.

La verificación de los tipos de datos se hace asignando el valor de tipo de cada una de los componentes léxicos. Estos valores se comparan para...
tracking img