Want to create interactive content? It’s easy in Genially!
PRESENTACIÓN INTERACTIVA
ITZEL ALEJANDRA MARQUEZ SANTIAGO
Created on May 29, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
Transcript
Análisis sintáctico
UNIDAD V
Integrantes:
- De la cruz Hernández Isaac
- García Diaz Samantha
- Márquez Santiago Itzel Alejandra
- Torres Gonzalez Anet Yamil
6° B
Índice
5.4 Formas normales de Chomsky
Introducción
5.1 Definición y clasificación de gramáticas
5.5 Diagramas de sintaxis
5.2 Gramáticas libres de contexto
5.6 Eliminación de la ambigüedad
5.3 Árboles de derivación
5.7 Tipos de analizadores sintácticos
Índice
Conclusión
5.8 Generación de matriz predictiva
Bibliografía
5.9 Manejo de errores
5.10 Generadores de analizadores sintácticos
Introducción
Un analizador sintáctico, también conocido como parser, es una herramienta que obtiene una cadena de tokens del analizador léxico y genera un árbol sintáctico, siendo el objetivo de esta fase la de comprobar que la secuencia de componentes léxicos que le entrega el analizador léxico cumple las reglas de la gramática que se han definido previamente.
+ info
5.1 Definición y clasificación de gramáticas
Concepto
Clasificación
info
Ver
Clasificación de las gramáticas
5.2 Gramáticas Libres de Contexto (GLC)
Elementos
Convenciones
Derivaciones
Definición
+ info
Ver
+ info
Ver
Elementos
No terminales
Producción
Símbolo inicial
Gramática
Terminales
Convenciones
Letras griegas
Símbolos no terminales
Producciones
Símbolos terminales
Símbolo inicial
Símbolos gramaticales
5.3 Árboles de derivación
Ejemplo
Gramática
Definición
5.4 Formas normales de Chomsky
Tipos
Definición
Tipos de gramáticas
Gramáticas regulares
Gramática sensible
+ info
+ info
Gramática sin restricción
Gramática libre
+ info
+ info
5.5 Diagramas de sintaxis
Definición
Reglas
Ejemplo
Reglas
Para las producciones que contengan una serie concatenada de símbolos terminales y/o no terminales, bastara simplemente con conectar simplemente a continuación del otro grafo de cada símbolo.
Cada símbolo terminal se representa por su nombre encerrado en un círculo o en una caja de bordes circulares.
Producciones con varias alternativas.
Cada símbolo no terminal se representa por su nombre encerrado en un rectángulo.
Producciones con cero, una o más repeticiones.
5.6 Eliminación de la ambigüedad
Concepto
Eliminación
Ejemplo
+ info
+ Ver
+ info
Eliminación de ambigüedad
Eliminación de recursividad por la izquierda
Factorización
Reescripción de la gramática
5.7 Tipos de analizadores sintácticos
Sintácticos descendentes (top-down)
A pila
Sintácticos ascendentes (bottom-up)
+ VER
+ info
+ Ver
Descendentes (top-down)
Descenso recursivo
+ info
Construyen el árbol de análisis sintáctico desde arriba (raíz o axioma de la gramática) hacia abajo (hojas con los terminales).
Predictivo
+ info
LL(1)
+ info
Ascendentes (bottom-up)
Precedencia de operador
+ info
Construye el árbol de análisis sintáctico desde abajo hacía arriba.
LR(1)
+ info
Gramáticas ambiguas
+ info
5.8 Generación de matriz predictiva (cálculo first y follow)
Siguiente (Follow)
Matriz predictiva
Primero (First)
5.9 Manejo de errores
Objetivos
Recuperación
Definición
Un buen compilador debe conocer los errores que se pueden producir, con lo que se consigue simplificar su estructura.
Si el propio compilador está preparado para admitir incluso los errores más frecuentes, entonces se puede mejorar la respuesta ante esos errores incluso corrigiéndolos.
El manejo de errores en lenguajes y autómatas es una parte fundamental de los sistemas de análisis y procesamiento de lenguajes.
5.10 Generadores de analizadores sintácticos
Alto nivel
Ejemplos de generadores
ver
+ info
Ejemplos de generadores de analizadores sintácticos
ANTLR
Flex/Bison
Yacc/Bison
JavaCC
Coco/R
Conclusión
Gracias a la presente actividad, pudimos comprender mejor los componentes de un analizador sintáctico así como su importancia ya que, este resulta útil por el hecho de que nos ayuda a checar la coherencia existente en el lenguaje; y esto es de suma importancia pues, nos encontramos trabajando en un proyecto a fin y necesitados comprender todo lo referente a esta fase del compilador.
Bibliografía
¡Gracias!