Analisis semantico

Solo disponible en BuenasTareas
  • Páginas : 3 (723 palabras )
  • Descarga(s) : 0
  • Publicado : 16 de noviembre de 2010
Leer documento completo
Vista previa del texto
Unidad 5 Análisis semántico
5.1 Análisis semántico.
El análisis semántico es posterior al sintáctico y mucho más difícil de formalizar que éste. Se trata de determinar el tipo de los resultadosintermedios, 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 loque se va leyendo es válido.

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ímbolocon 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 para sumarenteros 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 Cson enteros o reales los sumará, si son cadenas las concatenará y si son conjuntos calculará su unión.

5.2 Verificación de tipos con expresiones.
Es el proceso que permite asegurar que unprograma obedece las reglas de compatibilidad especificadas en el Sistema de Tipos del lenguaje.
La verificación de los tipos de datos se hace asignando el valor de tipo de cada uno de los
componentesléxicos.
Estos valores se comparan para verificar que los tipos de datos coincidan y sean congruentes, de lo contrario no se pueden realizar los cálculos.
EXPRESIONES DE TIPOSTipos básicos (Tipos simples) son expresiones de tipo.
Ejemplo: boolean, char, integer, real,…
Constructores de tipos y expresiones de tipos.
Ejemplo: arreglo, productos,…
Representaciónde tipos
Ejemplo:
char x char pointer(integer)

5.3 Conversión de tipos.
Cuando se tiene un valor de un tipo dado y se desea almacenar ese valor en una variable de un tipo diferente. En...
tracking img