Sie sind auf Seite 1von 1

El anlisis semntico se realiza despus del sintctico y es ms difcil 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, es decir, comprobar que el significado de lo que se va leyendo es vlido. El anlisis semntico utiliza como entrada el rbol sintctico detectado para comprobar restricciones de tipo y otras limitaciones semnticas y preparar la generacin de cdigo. La salida terica de la fase de anlisis semntico sera un rbol semntico. Consiste en un rbol sintctico en el que cada una de sus ramas ha adquirido el significado que debe tener. En el caso de los operadores polimrficos (un nico smbolo con varios significados), el anlisis semntico determina cul es el aplicable. Por ejemplo, consideremos la siguiente sentencia de asignacin: A := B + C En Pascal, el signo + sirve para sumar enteros y reales, concatenar cadenas de caracteres y unir conjuntos. El anlisis semntico debe comprobar que B y C sean de un tipo comn 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 unin. Acciones semnticas Dependiendo del tipo de sentencias, las acciones semnticas pueden agruparse en: Sentencias de Declaracin: completar la seccin de tipos de la Tabla de Smbolos. Sentencias ejecutables: realizar comprobaciones de tipos entre los operandos implicados. Funciones y procedimientos: comprobar el nmero, orden y tipo de los parmetros actuales en cada llamada a una funcin o procedimiento. Identificacin de variables: comprobar si identificador ha sido declarado antes de utilizarlo. Etiquetas: comprobar si hay etiquetas repetidas y validacin. Constantes: comprobar que no se utilicen en la parte izquierda de una asignacin. Conversiones y equivalencias de tipo: verificacin. Sobrecarga de operadores y funciones: detectar y solventar.

Das könnte Ihnen auch gefallen