jueves, 5 de septiembre de 2019

Pila Semántica De Un Analizador Sintáctico

Pila semántica en un analizador sintáctico

Árbol De Expresiones o Árbol Semántico

Es una estructura jerárquica en la cual se registran las operaciones que realiza el programa fuente, en cada una de las ramas de el árbol se registra el valor o significado que este debe tener y el análisis analiza cual de los valores registrado en las ramas es aplicable



ACCIONES SEMÁNTICAS

Dependiendo del tipo de sentencias, las acciones semánticas pueden agruparse en: Sentencias de Declaración: Completar la sección de tipos de la Tabla de
Símbolos.
Sentencias “ejecutables”: Realizar comprobaciones de tipos entre los operando
implicados.
Funciones y procedimientos: Comprobar el número, orden y tipo de los
parámetros actuales en cada llamada a una función o procedimiento.
Identificación de variables: Comprobar si un identificador ha sido declarado
antes de utilizarlo.
Etiquetas: Comprobar si hay etiquetas repetidas y validación.
Constantes: Comprobar que no se utilicen en la parte izquierda de una asignación.
Conversiones y equivalencias de tipo: Verificación.
Sobrecarga de operadores y funciones: Detectar y solventar.

Acciones semánticas de un analizador sintáctico
Definición de un analizador sintáctico: es la fase del analizador que se encarga de chequear el texto de entrada en base a una gramática dada. Y en caso de que el programa de entrada sea válido, suministra el árbol sintáctico que lo reconoce. En teoría, se supone que la salida del analizador sintáctico es alguna representación del árbol sintáctico que reconoce la secuencia de Token suministrada por el analizador léxico. En la práctica, el analizador sintáctico también hace:  Acceder a la tabla de símbolos (para hacer parte del trabajo del analizador semántico).  Chequeo de tipos (del analizador semántico).  Generar código intermedio.  Generar errores cuando se producen.  En definitiva, realiza casi todas las operaciones de la compilación. Este método de trabajo da lugar a los métodos de compilación dirigidos por sintaxis. Manejo de errores sintácticos Los errores sintácticos son dados por una expresión aritmética o paréntesis no equilibrados. El manejo de errores de sintaxis es el más complicado desde el punto de vista de la creación de compiladores. Nos interesa que cuando el compilador encuentre un error, se recupere y siga buscando errores. Por lo tanto el manejador de errores de un analizador sintáctico tiene como objetivos:  Indicar los errores de forma clara y precisa. Aclarar el tipo de error y su localización.  Recuperarse del error, para poder seguir examinando la entrada.  No ralentizar significativamente la compilación




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.
En compiladores de un solo paso, las llamadas a las rutinas semánticas se realizan directamente desde el analizador sintáctico y son dichas rutinas las que llaman al generador de código. El instrumento más utilizado para conseguirlo es la gramática de atributos.
En compiladores de dos o más pasos, el análisis semántico se realiza independientemente de la generación de código, pasándose información a través de un archivo intermedio, que normalmente contiene información sobre el árbol sintáctico en forma linealizada (para facilitar su manejo y hacer posible su almacenamiento en memoria auxiliar).
En cualquier caso, las rutinas semánticas suelen hacer uso de una pila (la pila semántica) que contiene la información semántica asociada a los operando (y a veces a los operadores) en forma de registros semánticos.

Resultado de imagen para pila semantica de un analizador sintactico




Resultado de imagen para pila semantica de un analizador sintactico













No hay comentarios:

Publicar un comentario