
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
15 questions
Soy responsable del uso de internet
Presentation
•
1st Grade
17 questions
RECOPILACION DE DATOS
Presentation
•
1st - 5th Grade
15 questions
Correo Electronico
Presentation
•
KG
17 questions
Lenguaje secreto
Presentation
•
1st - 5th Grade
15 questions
Descubrimiento de América
Presentation
•
1st - 5th Grade
20 questions
sinonimos y antonimos
Presentation
•
2nd - 5th Grade
21 questions
Clases de Word Clase 1 y 2
Presentation
•
1st - 5th Grade
14 questions
La libertad 1. Qué es la Ilustración
Presentation
•
KG
Popular Resources on Wayground
20 questions
"What is the question asking??" Grades 3-5
Quiz
•
1st - 5th Grade
20 questions
“What is the question asking??” Grades 6-8
Quiz
•
6th - 8th Grade
10 questions
Fire Safety Quiz
Quiz
•
12th Grade
20 questions
Equivalent Fractions
Quiz
•
3rd Grade
34 questions
STAAR Review 6th - 8th grade Reading Part 1
Quiz
•
6th - 8th Grade
20 questions
“What is the question asking??” English I-II
Quiz
•
9th - 12th Grade
20 questions
Main Idea and Details
Quiz
•
5th Grade
47 questions
8th Grade Reading STAAR Ultimate Review!
Quiz
•
8th Grade