Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesor Adolfo Di Mare
CI-1322
II Semestre 2002
[<=] [home] [<>] [\/] [=>]
CI-1322 Autómatas y compiladores

Examen #2 [solución]

      Duración: dos horas. Lea bien el examen antes de hacerlo. Cuenta la redacción y la ortografía. Puede hacer el examen con lápiz. Resuelva tres de las cuatro preguntas. ¡No haga más de lo que se le pide!

 

1) [33 pts] (a+b) <: (c*D**F) <:= H ** i ** j

En esta expresión se usa el operador ternario para denotar rangos, que evalúa cada término y retorna "true" si la expresión del centro está entre las de los extremos.

1.a) [6 pts] De un ejemplo de cada una de los posibles rangos que se pueden expresar con el operador ternario de rangos.

1.b) [11 pts] Extienda la gramática de expresiones para que incluya los operadores ternarios de rangos. Al formar expresiones también permita que se use el operador de exponenciación "**", pero asegúrese de que tenga mayor precedencia que los operadores multiplicativos y de que sea asociativo a la derecha. Su gramática debe ser recursiva izquierda.

1.c) [5 pts] Transforme su gramática es una gramática que no sea recursiva izquierda.

1.d) [11 pts] Haga una derivación de una hilera "w" en la que aplique por lo menos 10 producciones de "G" y en la que se usen operadores ternarios, de exponenciación multiplicativos y aditivos.

 

2) [33 pts] Un palíndromo es una hilera que se lee igual hacia adelante que hacia atrás. Por ejemplo, "radar" y "aba" son palíndromos.

2.a) [7 pts] Escriba una gramática G que genere todos los palíndromos para el alfabeto Σ = {a,b,c}.

2.b) [7 pts] Calcule los conjuntos Primero() y Siguiente() para G. Diga si la gramática G es LL(1).

2.c) [11 pts] Haga la tabla SLR(1) para G. Interprete lo que ha obtenido.

2.d) [8 pts] Escoja una hilera "w" que esté en el lenguaje L(G) y que tenga al menos 10 símbolos. Procese su hilera "w" con la tabla de análisis sintáctico SLR(1) que ha calculado y diga cuál es la derivación más derecha que ha obtenido.

 

3) [33 pts] L1 = { an bn cK | n ≥ 1 & K ≥ 1 }       L2 = { aK bn cn | n ≥ 1 & K ≥ 1 }

3.a) [7 pts] Escriba una gramática G1 para L1 que no sea recursiva izquierda.

3.b) [11 pts] Haga las tablas LL(1) para la gramática G1. Interprete lo que ha obtenido.

3.c) [4 pts] Escriba la gramática G2 para L2 que no sea recursiva izquierda.

3.d) [11 pts] Haga las tablas SLR(1) para la gramática G2. Interprete lo que ha obtenido.

3.e) [0 pts] Calcule L1 ∩ L2. Explique qué puede concluir del valor calculado.

 

4) [33 pts] L = { an bn cm dm | n ≥ 1 & m ≥ 1 } U { an bm cm dn | n ≥ 1 & m ≥ 1 }

4.a) [11 pts] Describa en palabras cuáles son las hileras que pertenecen a L. Escriba una gramática G que genere L, o sea, que L(G) = L.

4.b) [11 pts] Hay lenguajes libres de contexto que son inherentemente ambiguos, pues cualquier gramática que los genere es ambigua. Muestre que su gramática G es ambigua.

4.c) [11 pts] Calcule los conjuntos Primero() y Siguiente() para su gramática G. Sin hacer el trabajo de calcular las tablas LL(1) para su gramática G, demuestre que G no es una gramática LL(1).

 

Soluciones

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2002
Derechos de autor reservados © 2002
[home] <> [/\]