Analizador semantico

Páginas: 9 (2196 palabras) Publicado: 18 de octubre de 2014
1. Análisis Semántico.

El Análisis Semántico

Verifica si tiene sentido el programa fuente, es en esta fase en donde se hace la verificación de tipos, algunos analizadores semánticos convierten el dato de menor precisión al de mayor precisión con el que se esta realizando alguna operación, otros marcan conflicto de tipos. Pero todos deben marcar error si se utiliza un flotante comoexponente de un arreglo por poner un ejemplo.


1.1. Arboles de expresiones.

Un árbol de expresiones es un tipo especial de árbol que permite representar expresiones matemáticas. En sus nodos internos, el árbol contiene las operaciones a realizar. En los nodos hoja, los operandos.

Dado que la mayoría de operadores matemáticos son unarios o binarios, los árboles de expresión más comunes son losárboles de expresión binarios. Si la operación de un nodo de un árbol de expresión binario tiene dos operandos, ese nodo deberá tener dos hijos. Si es unario, tendrá un único hijo a la derecha.









Los árboles de expresión representan el código en una estructura de datos similar a un árbol, donde cada nodo es una expresión.

Los árboles de expresiones representan el código de niveldel lenguaje en forma de datos. Los datos se almacenan en una estructura con forma de árbol. Cada nodo del árbol de expresión representa una expresión

1.1.1 Reglas para la construcción de árboles de expresión.

Regla I:

Existe un orden de prioridad para los operadores, que de menor a mayor es el siguiente: suma (+) y resta (-), multiplicación (*) y división (/), exponenciación (^),operadores unarios. El paréntesis izquierdo lo trataremos como un operador (aunque no lo es) cuyo orden de prioridad es el mayor de todos cuando se quiera apilar y el menor de todos cuando esté en la cima de la pila.

Cuando se intente apilar algún operador se hará lo siguiente: si es un operador unario entonces se apila, si es un operador binario, se comparará su prioridad con el último insertado enla pila (el de la cima), si su prioridad es mayor, entonces se apilará. Si ocurre lo contrario (su prioridad es menor o igual) entonces el operador de la cima de la pila se desapilará y pasará a formar parte de la notación polaca. Se volverá a intentar apilar el operador siguiendo la misma regla, hasta que se pueda apilar, si la pila queda vacía también se apila. El paréntesis izquierdo siempre seapilará y no podrá ser desapilado por ningún operador y por tanto no formará parte de la notación polaca inversa.


Regla II.

Si el nodo corresponde a un operando, entonces se apila. Si el nodo corresponde a una operador unario entonces se desapila un nodo de la pila de nodos y es enlazado a la rama izquierda del nodo correspondiente al operador unario y este último es apilado. Si el nodocorresponde a un operador binario entonces dos nodos son desapilados de la pila de nodos, el primero es enlazado a la rama derecha del nodo binario y el segundo a la rama izquierda, nuevamente este nodo es apilado.

1.2. Acciones semánticas de un analizador sintáctico.

Todo lenguaje de programación tiene reglas que describen la estructura sintáctica de programas bien formados. En Pascal,por ejemplo, un programa se compone de bloques, un bloque de proposiciones, una proposición de expresiones, una expresión de componentes léxicos, y así sucesivamente. Se puede describir la sintaxis de las construcciones de los lenguajes de programación por medio de gramáticas de contexto libre o notación BNF (Backus-Naur Form).

Las gramáticas ofrecen ventajas significativas a los diseñadores delenguajes y a los desarrolladores de compiladores.

Las gramáticas son especificaciones sintácticas y precisas de lenguajes de programación.
A partir de una gramática se puede generar automáticamente un analizador sintáctico.
El proceso de construcción puede llevar a descubrir ambigüedades.
Una gramática proporciona una estructura a un lenguaje de programación, siendo más fácil generar...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Analizador semantico
  • Analizador semantico
  • Analizador semantico
  • Semantica
  • Semantica
  • Semantica
  • Semantica
  • la semàntica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS