Procesadores de lenguaje Ejercicios de análisis sintáctico Ejercicios de análisis sintáctico Salvador Sánchez Daniel Rodríguez Salvador Sánchez, Daniel Rodríguez Departamento de Ciencias de la Computación Universidad de Alcalá Recursividad: ejercicios Recursividad: ejercicios Obt l áti d Obtener las gramáticas que producen: 1 U á i id d l i i d ( i) 1. Una o más aes con recursividad por la izquierda (r.i) 2. Cero o más aes (r.i) 3. Una o más aes con recursividad por la derecha (r.d) 4. Cero o más aes (r.d) 5. Una b y cero o más aes (r.i) 6 Cero o más aes terminando en b (r d) 6. Cero o más aes terminando en b (r.d) 7. Cero o más aes separadas por ‘;’ (r.d) 8. Una o más aes separadas por ‘;’ (r.i) Procesadores de lenguaje – Ejercicios Análisis Sintáctico Salvador Sánchez, Daniel Rodríguez Soluciones Soluciones 1 A A | 1. A->Aa | a 2. A->Aa | ε 3. A->aA | a 4. A->aA | ε 5. A->Aa | b 6. A->aA | b 7. A->aB | ε B->;aB | ε 8. A->A;a | a Procesadores de lenguaje – Ejercicios Análisis Sintáctico Salvador Sánchez, Daniel Rodríguez Analizador descendente recursivo Analizador descendente recursivo Ejemplos: • Ejemplos: 1. Mostrar las acciones de un analizador descendente recursivo que analiza la cadena “aaab” según la gramática: A ÆaA | b cadena “aaab” según la gramática: A ÆaA | b 2. Para la gramática anterior, analizar la cadena “abaab”. 3. Mostrar las acciones de un analizador descendente recursivo que analiza la cadena “aba” según la gramática: A Æab | aA 4. Mostrar las acciones de un analizador descendente recursivo para la cadena de entrada “IDENT()” según la gramática: S t i Æ Ai ió | Ll d | t Sentencia Æ Asignación | Llamada | otro Asignación Æ Identificador := Valor LlamadaÆ Identificador () Procesadores de lenguaje – Ejercicios Análisis Sintáctico Salvador Sánchez, Daniel Rodríguez
12
Embed
Procesadores de lenguaje...$0E Ir_a 1 $ $0E1 Reducir E’ÆE $ $0E' EXITO $ Procesadores de lenguaje – Ejercicios Análisis Sintáctico Salvador Sánchez, Daniel Rodríguez Analizador
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Procesadores de lenguajeEjercicios de análisis sintácticoEjercicios de análisis sintáctico
Salvador Sánchez Daniel RodríguezSalvador Sánchez, Daniel RodríguezDepartamento de Ciencias de la ComputaciónUniversidad de Alcalá
Recursividad: ejerciciosRecursividad: ejercicios
Obt l áti dObtener las gramáticas que producen:
1 U á i id d l i i d ( i)1. Una o más aes con recursividad por la izquierda (r.i)2. Cero o más aes (r.i)3. Una o más aes con recursividad por la derecha (r.d)4. Cero o más aes (r.d)5. Una b y cero o más aes (r.i)6 Cero o más aes terminando en b (r d)6. Cero o más aes terminando en b (r.d)7. Cero o más aes separadas por ‘;’ (r.d) 8. Una o más aes separadas por ‘;’ (r.i)
Procesadores de lenguaje – Ejercicios Análisis SintácticoSalvador Sánchez, Daniel Rodríguez
SolucionesSoluciones
1 A A |1. A->Aa | a 2. A->Aa | ε3. A->aA | a4. A->aA | ε5. A->Aa | b6. A->aA | b7. A->aB | ε
B->;aB | ε8. A->A;a | a
Procesadores de lenguaje – Ejercicios Análisis SintácticoSalvador Sánchez, Daniel Rodríguez
1. Mostrar las acciones de un analizador descendente recursivo que analiza la cadena “aaab” según la gramática: A aA | bcadena “aaab” según la gramática: A aA | b
2. Para la gramática anterior, analizar la cadena “abaab”.
3. Mostrar las acciones de un analizador descendente recursivo que analiza la cadena “aba” según la gramática: A ab | aA
4. Mostrar las acciones de un analizador descendente recursivo para la cadena de entrada “IDENT()” según la gramática:
S t i A i ió | Ll d | tSentencia Asignación | Llamada | otroAsignación Identificador := ValorLlamada Identificador ()
Procesadores de lenguaje – Ejercicios Análisis SintácticoSalvador Sánchez, Daniel Rodríguez
Analizador LL(1) – Conjunto primeroAnalizador LL(1) Conjunto primero
1 C l l l j t P i d A l áti1.Calcular el conjunto Primero de A para la gramática siguiente:
A (A)A | ε
2.Calcular el conjunto Primero de los no terminales A, B y C para la gramática siguiente:
A BCB ε | mB ε | mC ε | s
Procesadores de lenguaje – Ejercicios Análisis SintácticoSalvador Sánchez, Daniel Rodríguez
Analizador LL(1) - Conjunto primeroAnalizador LL(1) Conjunto primero
1 C j t P i d A l áti i i t1.Conjunto Primero de A para la gramática siguiente:A (A)A | ε
1 C b i l i i t áti LL(1) t i l1. Comprobar si la siguiente gramática es LL(1) y construir la tabla de análisis y todos los conjuntos Siguiente y Primero.
E TE’E’ +TE’ | єT FT’T FTT’ *FT’ | єF (E) | id
2. Reconocer la cadena “(3+5*8)” con el analizador construido.
Procesadores de lenguaje – Ejercicios Análisis SintácticoSalvador Sánchez, Daniel Rodríguez
SoluciónSolución
Prim (E) { ( id } Si (E) { $ ) }Prim (E) = { (, id }Prim (E’) = { +, є }Prim (T) = { (, id }
Sig (E) = { $, ) }Sig (E’) = { $, ) } Sig (T) = {+ $ )}Prim (T) { (, id }
1 A ti d l i i t áti t i l t bl d áli i1. A partir de la siguiente gramática, construir la tabla de análisis y todos los conjuntos Siguiente y Primero.
B -> DLD -> id ; D | єL > S L |L -> S ; L | єS -> a + a
2. Reconocer la cadena “id;a+a;” con el analizador construido.
Procesadores de lenguaje – Ejercicios Análisis SintácticoSalvador Sánchez, Daniel Rodríguez
Pila Decisión Entrada$B B DL id;a+a;$$LD D id;D id;a+a;$$LD;id Reconocer id id;a+a;$
Reconocer:id;a+a;
$LD;id Reconocer id id;a+a;$$LD; Reconocer ; ;a+a;$$LD D є a+a;$$L L S;L a+a;$$L;S S a+a a+a;$$L;a+a Reconocer a a+a;$$L;a+a Reconocer a a+a;$$L;a+ Reconocer + +a;$$L;a Reconocer a a;$$L; Reconocer ; ;$$L L є $$ EXITO $
Procesadores de lenguaje – Ejercicios Análisis SintácticoSalvador Sánchez, Daniel Rodríguez
1 A ti d l i i t áti t i l tó t fi it1. A partir de la siguiente gramática, construir el autómata finito determinista y la tabla de análisis para el analizador LR(0).
E (E + T) | idT (T * F) | idF id
2 Reconocer la cadena “(6+(4*2))”
F id
2. Reconocer la cadena (6+(4 2)) .
Procesadores de lenguaje – Ejercicios Análisis SintácticoSalvador Sánchez, Daniel Rodríguez
1 A ti d l i i t áti t i l tó t fi it1. A partir de la siguiente gramática, construir el autómata finito determinista y la tabla de análisis para el analizador LR(0).
S ( S ) S | ε
2. Reconocer la cadena “(())()”.
Procesadores de lenguaje – Ejercicios Análisis SintácticoSalvador Sánchez, Daniel Rodríguez
1 A ti d l i i t áti t i l tó t fi it1. A partir de la siguiente gramática, construir el autómata finito determinista y la tabla de análisis para el analizador SLR(1).
E (E + T) | idT (T * F) | idF id
2 Reconocer la cadena “(6+(4*2))”
F id
2. Reconocer la cadena (6+(4 2)) .
Procesadores de lenguaje – Ejercicios Análisis SintácticoSalvador Sánchez, Daniel Rodríguez
1 A ti d l i i t áti t i l tó t fi it1. A partir de la siguiente gramática, construir el autómata finito determinista y la tabla de análisis para el analizador SLR(1).
S (S) S | ε
2 Reconocer la cadena “( ( ) )( )”2. Reconocer la cadena ( ( ) )( ) .
Procesadores de lenguaje – Ejercicios Análisis SintácticoSalvador Sánchez, Daniel Rodríguez