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.
- 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
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