
5.9 Generadores de Analizadores Sintácticos
Presentation
•
Computers
•
1st - 5th Grade
•
Medium
Equipo 6
Used 7+ times
FREE Resource
17 Slides • 6 Questions
1
5.9 Generadores de Analizadores Sintácticos
EQUIPO 6
Hernandez Reyes Lizzeth
Lopez Zarate Maria Fernanda
Marquez Zepactle Paola
Perez Ramos Eliel
Salmeron Gomez Elian Rafael
2
Informacion General
Un compilador o intérprete de un lenguaje de programación a menudo se descompone en dos partes:
1. Lectura de el programa fuente y entender su estructura.
2. Procesa la estructura, por ejemplo, para generar el programa de destino.
Lex y Yacc pueden generar fragmentos de programa que resuelven la primera tarea.
La tarea de volver a descubrir la estructura fuente se descompone en subtareas:
1. Divida el archivo de origen en tokens ( Lex ).
2.Encuentre la estructura jerárquica del programa ( Yacc ).
3
Multiple Choice
Que tarea realiza LEX
Divida el archivo de origen en tokens .
Encuentre la estructura jerárquica del programa
4
¿Que es la Sintaxis de un lenguaje de programación?
conjunto de reglas a seguir
5
¿Qué es un analizador sintáctico?
Es una herramienta que analiza una cadena de símbolos de acuerdo a las reglas de una gramática formal.
Función:
Dentro de un compilador es transformar una entrada en un árbol de derivación.
6
Multiple Choice
¿Cuál es su principal función?
Transformar una entrada en árbol de derivación
Convierte una gramática sin contexto anotada en un LR determinista o analizador LR generalizado.
Generar código legible
7
Características
Su función es dependiente de un analizador léxico
Todos los analizadores sintácticos necesitan una función llamada YYLEX pra devolver el siguiente tooken de entrada y otra función llamada YYVAL para poder trabajar con sus valores,
Usan gramáticas libres de contexto
Todos deben definir terminales y no temrinales
8
Tipos
De la forma de construir el árbol sintáctico se desprenden dos tipos o clases de analizadores sintácticos.
Ascendentes: Comienzan en las hojas y suben hacia la raíz.
Descendentes: Construyen árboles de análisis sintáctico desde arriba (la raíz) hasta abajo (las hojas)
9
Diferencias
En el análisis sintáctico descendente se construye el árbol sintáctico de arriba hacia abajo y se utilizan más reglas
En el análisis sintáctico ascendente: Se construye el árbol sintáctico de abajo hacia arriba, lo cual disminuye el número de reglas mal aplicadas con respecto al caso descendente
10
Multiple Choice
Tipos de analizadores sintácticos
Ascendente y Descendente
LEX y YACC
11
YACC
Tipo de analizador: Ascendente, LALR(1).
Código generado: C, C++.
Características adicionales:
Se puede integrar con Lex dejando a éste el análisis léxico.
La precedencia se puede definir al margen de la gramática, manteniendo ésta más simple.
Conjuntamente con Memphis se puede construir un árbol sintáctico como salida del analizador.
12
GRAMATICA
Tipo de analizador: Descendente, LL(k).
Código generado: C#, Java.
Características adicionales:
-Soporte para depurar las gramáticas sin necesidad de generar el analizador.
-Genera código legible y comentado.
-Mensajes de error detallados durante el análisis.
13
GOLD
Tipo de analizador: Ascendente (LALR(1)).
Código generado: Multilenguaje (Java, C#, ANSI C, Delphi, Python, VB, VB .NET, VC++, wxWidgets, todos los lenguajes .NET, todos los lenguajes ActiveX)
Características adicionales:
-Incluye análisis léxico.
-El código fuente está disponible también en numerosos lenguajes.
14
Multiple Choice
Tipo de generador que analiza desde la raíz hasta las hojas
Ascendente
Laterales
Descendentes
15
Multiple Choice
Analizadores Ascendentes
YACC y GOLD
GRAMATICA y YACC
GOLD y GRAMATICA
16
Multiple Choice
Tipo de generador que analiza desde las hojas hasta la raíz
Ascendente
Lateral
Descendente
17
Bison
Tipo de analizador: Ascendente, LALR(1).
Código generado: C, C++.
Características:
∎ Compatible con Yacc.
∎ Puede generar tablas de analizador IELR(2)
∎ Puede generar tablas canónicas LR(1)
18
CUP
Tipo de analizador: Ascendente, LALR(1).
Código generado: Java.
Características:
∎ La precedencia puede especificarse al margen de la gramática.
∎ La gramática se especifica en notación EBNF.
19
LEMON
Tipo de analizador: LALR (1).
Código generado: C
Características:
∎ Incompatible con Bison y Yacc
∎ Su sintaxis gramatical es menos propensa a errores de programación.
∎ El analizador generado es reentrante y seguro para subprocesos.
∎ Incluye el concepto de un destructor no terminal, lo que hace que sea mucho más fácil escribir un analizador que no pierda memoria.
20
Aplicaciones
∎ Lectura de un lenguaje de programación.
∎ Código HTML.
∎ Documentos XML.
∎ URL
∎ Motores de búsqueda.
21
Ejemplo: YACC
Dividido en:
<Sección de definiciones>
∎ Declara símbolos terminales
<Sección de reglas>
∎ Contiene la gramática.
<Sección de rutinas>
∎ Incluye las funciones main(), yylex(), yyerror().
22
HOLA
int yylex(){
char caract=getchar();
switch (caract){
case 'H': case 'h': return H;
case 'O': case 'o': return O;
case 'L': case 'l': return L;
case 'A': case 'a': return A;}
return -1;}
int yyerror(){
printf("La expresión no forma parte del lenguaje conocido");
return 0;}
23
Bibliografia
http://www.uco.es/users/ma1fegan/2013-2014/pl-grado/temas/Tema-3-Tipos-de-generadores.pdf
http://www.lcc.uma.es/~galvez/ftp/tci/tictema3.pdf
https://www.infor.uva.es/~mluisa/talf/docs/labo/L8.pdf
http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro32/38_ generadores_de_analizadores_sintcticos.html
5.9 Generadores de Analizadores Sintácticos
EQUIPO 6
Hernandez Reyes Lizzeth
Lopez Zarate Maria Fernanda
Marquez Zepactle Paola
Perez Ramos Eliel
Salmeron Gomez Elian Rafael
Show answer
Auto Play
Slide 1 / 23
SLIDE
Similar Resources on Wayground
16 questions
II Trimestre Nivel 3 Hedy Code
Presentation
•
1st - 5th Grade
18 questions
Diminutivos
Presentation
•
1st - 5th Grade
19 questions
LA EMPATIA
Presentation
•
1st - 6th Grade
15 questions
Present continuous -negative and Questions-
Presentation
•
1st - 5th Grade
16 questions
UD1. Dispositivos de I/O
Presentation
•
1st - 4th Grade
20 questions
Leyenda
Presentation
•
1st - 5th Grade
19 questions
Diplomado Gestión Hospitalaria
Presentation
•
1st - 5th Grade
17 questions
Alicia en el pais de las maravillas
Presentation
•
1st - 5th Grade
Popular Resources on Wayground
6 questions
PRIDE Always and Everywhere
Presentation
•
12th Grade
20 questions
Lab Safety Quiz
Quiz
•
6th Grade
26 questions
KOR Review Kahoot Questions
Quiz
•
8th Grade
21 questions
Continents and Oceans
Quiz
•
6th Grade
12 questions
Unit Zero lesson 2 cafeteria
Presentation
•
9th - 12th Grade
20 questions
Parts of Speech
Quiz
•
5th Grade
10 questions
Riddles Riddles fun Riddles
Quiz
•
6th - 12th Grade
16 questions
Subject & Predicate
Quiz
•
5th Grade