Want to create interactive content? It’s easy in Genially!

Get started free

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!