Analisis Sintactico
Analisis Sintactico
Analisis Sintactico
Asignatura: Compiladores
Grupo: 5CM14
Análisis Sintáctico
Grupo: 5CM14
Integrantes:
Aguilar Hernández Brenda.
Cruz Ramírez Betsabe Alejandra.
Melo Gómez Guillermo Ednuar.
Mendez Albino Alexis Miguel.
1
Contenido
Análisis Sintáctico...........................................................................................................................3
¿Qué es?......................................................................................................................................3
¿Cómo funciona el analizador sintáctico?...............................................................................4
Estructura Sintáctica...................................................................................................................4
Autómatas de Pila.......................................................................................................................4
Gramáticas Libres de Contexto.................................................................................................5
Tipos de Analizadores Sintácticos............................................................................................6
Descendente............................................................................................................................6
Ascendente...............................................................................................................................6
ERRORES....................................................................................................................................7
ERRORES LÉXICOS..............................................................................................................7
ERRORES SINTÁCTICOS....................................................................................................7
ERRORES SEMÁNTICOS.....................................................................................................8
ERRORES LOGICOS.............................................................................................................8
MANEJO DE ERRORES............................................................................................................8
Reglas de producción adicionales para el control de errores...............................................8
Corrección Global........................................................................................................................8
Limitaciones del análisis sintáctico...........................................................................................8
Bibliografía....................................................................................................................................9
2
Análisis Sintáctico
¿Qué es?
En el proceso de compilación, es el módulo que realiza el proceso de revisión de la
sintaxis o gramática, para verificar si una frase pertenece o no al lenguaje.
Estructura Sintáctica
La sintaxis abstracta de un lenguaje identifica los componentes significativos de cada
constructor. Las descripciones de lenguajes y las implantaciones están organizadas
alrededor de la sintaxis abstracta
La sintaxis concreta de un lenguaje describe su representación escrita, incluyendo
detalles como la colocación de las palabras clave y los signos de puntuació.*
0 es menor que 5
1 es menor que 5
2 es menor que 5
3 es menor que 5
4 es menor que 5
5 no es menor que 5
3
Autómatas de Pila
El proceso de análisis sintáctico se describe como la creación de un árbol sintáctico para
la frase que se requiere reconocer, sin embargo, en la práctica los autómatas de pila
resultan más eficientes y eficaces que los arboles sintácticos.
4
T = {0-9, +}
P = {E→D, E →S, S → +, D →[0-9]}
S=E
Ejercicio:
3+5
5
Ascendente
Intenta construir un árbol de análisis sintáctico, empezando desde las hojas y
ascendiendo hacia la raíz.
Intenta obtener una reducción desde una cadena hasta llegar al axioma
Los analizadores LR funcionan así y un ejemplo es el Yacc.
ERRORES
Durante el proceso de compilación pueden surgir diversos errores, estos se pueden
clasificar en cuatro:
ERRORES LÉXICOS
Cuando un lexema no corresponde a ningún componente léxico definido para el lenguaje.
Mala escritura de cadenas como variables, palabras reservadas, etc.
area = $base * altura / 2a;
6
ERRORES SINTÁCTICOS
Cuando una secuencia de componentes léxicos no se ajusta a las reglas de
sintaxis definida por la gramática
Mala escritura de instrucciones, por ejemplo, la falta de paréntesis.
ERRORES SEMÁNTICOS
Cuando no existe relación semántica entre la secuencia de componentes léxicos.
Operaciones incorrectas entre tipo de datos.
ERRORES LOGICOS
MANEJO DE ERRORES
a) Panicmode
Consiste en ignorar el resto de la entrada hasta llegar a una condición de
seguridad, esta condición de seguridad se refiere a un token especial, por
ejemplo un “;”.
Una vez encontremos un carácter especial, el código se seguirá analizando
con normalidad
Corrección Global
Dada una secuencia completa de tokens a ser reconocida, si hay algún error por el que se
nos puede reconocer, consiste en encontrar la secuencia completa más parecida que si
se pueda reconocer.
El analizador sintáctico le pide toda la secuencia de tokens al léxico, y lo que hace es
devolver lo más parecido a la cadena de entrada pero sin errores, así como el árbol que lo
reconoce
7
Bibliografía
RYTE. (2018, 15 mayo). ¿Qué es un Analizador Sintáctico? - Ryte Marketing Wiki.
Recuperado 17 de octubre de 2020, de:
https://es.ryte.com/wiki/Analizador_Sint%C3%A1ctico
techopedia. (2020, 18 septiembre). Parser. Recuperado 20 de octubre de 2020, de
https://www.techopedia.com/definition/3854/parser
Ricardo Geek. (2017, 28 marzo). Análisis Sintáctico de un Compilador. Recuperado 19 de
octubre de 2020, de https://ricardogeek.com/analisis-sintactico-de-un-compilador/