1.2 Acciones semánticas de un analizador sintáctico

 1.2 Acciones semánticas de un analizador sintáctico

Pila semántica en un analizador sintáctico


Por diseño cada lenguaje de programación tiene reglas precisas a las cuales obedece y prescriben la estructura sintáctica de un programa bien formado.

Gramática

Reglas que definen un lenguaje:
  • Una gramática genera o describe un lenguaje, define la estructura de las frases y las palabras de un lenguaje.
  • La gramática proporciona una especificación sintáctica precisa, pero fácil de entender del lenguaje de programación.

Analizador Sintáctico

Fase del analizador que se encarga de revisar el texto de entrada en base a una gramática dada

Obtiene una cadena de tokens del analizador léxico, y verifica que la cadena de nombres de los tokens pueda generarse mediante la gramática para el lenguaje fuente.


Analizador Semántico

Extensión del analizador sintáctico, finaliza la fase de análisis del compilador y comienza la fase de Síntesis, en la cual se comienza a generar el código objeto.
  • Tabla de símbolos
  • Chequeos de tipos (y otros)
  • Generación de representación interna

Acciones Semánticas

Se encargan de que los tipos que intervienen en las expresiones sean compatibles o que los parámetros reales de una función sean coherentes con los parámetros formales.


Acciones de un analizador sintáctico

  • Acceder a la tabla de símbolos.
  • Chequeo de tipos.
  • Generar código intermedio.
  • Generar errores cuando se producen
  • Controla el flujo de tokens reconocidos por parte del analizador léxico.

Manejo de errores sintácticos

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.

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

Estrategias para recuperarse de errores sintácticos

  • Recuperación en modo de pánico
  • Recuperación a nivel de frase
  • Producción de errores
  • Corrección global

Elaborado por: Joseph Aldahir López Hernández

Referencias

Avila, A. L. (12 de Septiembre de 2016). 1.2 Acciones semánticas de un analizador sintáctico. Recuperado el 12 de Febrero de 2022, de Prezi: https://prezi.com/orfcgo6ps5ai/12-acciones-semanticas-de-un-analizador-sintactico/

Moreno, L. d. (5 de Septiembre de 2019). Pila Semántica en un Analizador Sintáctico. Recuperado el 12 de Febrero de 2022, de Lenguajes y Autómatas II: https://lucyleonmoreno.blogspot.com/2019/09/pila-semantica-en-un-analizador.html