Universidad de Costa Rica
|
|
Duración: dos horas. Lea bien el examen antes de hacerlo. El examen es a libro abierto. Cuenta la redacción y la ortografía. Puede hacer el examen con lápiz. Resuelva las tres preguntas. ¡No haga más de lo que se le pide!
1) [33 pts]
r = ( a+ | b? ) +
s = ( a* | b* ) +
1.a) [5 pts]
Para la expresión regular
"r
" construya el autómata no determinista "Nr"
que reconoce L(r
).
1.b) [5 pts]
Para la expresión regular
"s
" construya el autómata no determinista "Ns"
que reconoce L(s
).
1.c) [7 pts]
Obtenga el autómata determinista "Dr" para
L(r
). Incluya el diagrama del autómata en su
respuesta.
1.d) [7 pts]
Obtenga el autómata determinista "Ds" para
L(s
). Incluya el diagrama del autómata en su
respuesta.
1.e) [9 pts]
Demuestre que L(r
) = L(s
).
2) [33 pts] Considere la siguiente gramática para la generación de expresiones lógicas:
E --> E and E E --> E or E E --> id
2.a) [8 pts] Elimine la recursividad por la izquierda de la gramática anterior y obtenga una gramática equivalente.
2.b) [8 pts] ¿Es la gramática resultado del punto anterior apropiada para traducir las expresiones a la forma postfija? Si no lo fuera, arregle el problema.
2.c) [17 pts] Implemente en C/C++ un programa que realice el análisis sintáctico predictivo para la gramática obtenida en el punto anterior. Asegúrese que al finalizar el análisis la expresión quede en postfijo para que pueda ser evaluada (usted no tiene que implementar la función de evaluación).
2.d) [0 pts] Implemente la función de evaluación para este analizador sintáctico.
3) [33 pts]
<P ALIGN="CENTER"> ¿Es ésta la pregunta del examen? </P> Texto libre. <BLOCKQUOTE> <OL START="6"> <LI> <IMG SRC="../../../img/index.gif" ALT="[<>]" BORDER="0" /> </LI> <LI> <CODE> <A HREF="./ac-ea-2.htm#XML"> http://www.di-mare.com/ <BR/>adolfo/cursos/2006-2/ <BR/>ac-ea-2.htm#XML </A> </CODE> </LI> </OL> </BLOCKQUOTE> |
¿Es ésta la pregunta del examen? Texto libre. |
3.a) [5 pts]
Use el documento
XML
de la izquierda y dibuje el árbol que contiene los nodos y
etiquetas del documento. Recuerde que cada "nodo" se reconoce
porque está a la par del paréntesis angular
"<
" y cada etiqueta está seguida de un
argumento encerrado entre comillas. Por ejemplo, en
"<CODE>
" el "nodo" es "CODE
" y una
de las etiquetas del nodo "IMG
" se llama
"ALT
" y tiene asociado el atributo
"[<>]"
. Tome en cuenta que
algunos nodos XML no están emparejados, como ocurre con
"<BR/>
".
3.b) [6 pts] Explique cuáles son los tokens y los lexemas para el lenguaje XML.
3.c) [11 pts] Escriba una grámatica que genere documentos XML.
3.d) [11 pts]
Use su grámatica para derivar el primer bloque
"<LI>
" de este documento XML.
Adolfo Di Mare <adolfo@di-mare.com>.
|