T A L F

Anuncio
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
CURSO 2009/10 – CONVOCATORIA DE DICIEMBRE
14 de Junio de 2010
NORMATIVA
1.
2.
3.
4.
5.
6.
7.
8.
No está permitido fumar en el aula de examen.
No está permitido salir del examen durante la primera media hora.
Es obligatorio entregar antes de abandonar el examen.
Tiempo disponible: 2 : 45 horas.
Este examen consta de 4 ejercicios, que deberán entregarse en hojas separadas. Las distintas
partes de que consta cada ejercicio sí podrán realizarse de forma continuada en las hojas de
examen.
En caso de no haber realizado un ejercicio se entregará una hoja en blanco con el nombre y
apellidos.
Las calificaciones obtenidas en este examen, junto con las de la práctica se publicarán en el
tablón de la asignatura el jueves 24 de junio a las 13 : 00 horas.
Las revisiones se realizarán el martes 29 de junio. La hora en concreto del inicio de la revisión
se publicará el día 24 junto con las calificaciones.
EXAMEN
Ejercicio 1 (3 puntos)
Dado el alfabeto  = {a, b}, sea L el lenguaje formado por las palabras que tienen longitud par y finalizan
en el sufijo ab o el sufijo a. Además, el lenguaje L también contiene la palabra vacía.
Se pide:
1. Obtener un AFD mínimo que reconozca el lenguaje L.
2. Sin emplear ningún algoritmo, obtener una expresión regular que denote el lenguaje L.
3.
Sobre el mismo alfabeto , sean los lenguajes L1 y L2, denotados respectivamente por las
expresiones regulares ER1=( aa | b )* , ER2=( bb |a )*.
Encontrar las expresiones regulares lo mas simplificadas posible que denoten las siguientes operaciones:
a) ER que denote L1 ∩ L2
b) ER que denote L1
c) ER que denote L22
Ejercicio 2 (2 puntos)
Dado el alfabeto = {a, b, c} y, sea el lenguaje L={xcn | x{a, b}* , en donde el número de cadenas ab
es igual al número de c´s}
Por ejemplo, pertenecen a este lenguaje: aabc, ababbbbcc, bbbaaa, bbbb, aaaaa, ε.
No pertenecen a este lenguaje : ac, aab, bbc, bbbaababcccc, c, babaccba.
Se pide:
1. Encontrar una gramática de contexto libre (o tipo2) que genere el lenguaje L.
2. Sin utilizar ningún algoritmo, representar el diagrama de transiciones de un autómata a pila (AP)
que reconozca L.
Explicar brevemente la lógica del AP, es decir, de qué manera se va a determinar que una palabra debe
reconocerse o rechazarse. Indicar si se va a realizar el reconocimiento por vaciado de pila o por estado
final. Para este último caso señalar el/los estado/s final/es. Explicar si el AP es determinista o no.
Nota: Las palabras siempre vienen finalizadas por el símbolo $
Ejercicio 3 (2 puntos)
Dada la siguiente gramática:
S´→ S $
S → AS | A
A→ Aaa | Ab | ε
Se pide:
1. Después de eliminar los prefijos comunes y la recursividad inmediata por la izquierda, justificar
mediante el cálculo detallado de los símbolos directores si la gramática resultante cumple la
condición LL (1).
2. En caso de que no sea LL (1), obtener una gramática equivalente que sí cumpla dicha condición,
demostrándolo igualmente a través de los símbolos directores.
Nota: El cálculo de los símbolos directores deberá aparecer de forma detallada en función de iniciales y
seguidores
Ejercicio 4 (3 puntos)
En un lenguaje de programación L, se desea definir la sentencia de alternativa múltiple cuya estructura
general es la siguiente:
SWITCH ( expresión ) {
case valor1:
case valor2: grupo de sentencias ; break
………………………..
case valorn: grupo de sentencias ; break
DEFAULT grupo de sentencias
}
Para construir la expresión se podrán utilizar identificadores y constantes como operandos, y como
operadores los símbolos aritméticos binarios: (+, -, *, /). Debiéndose tomar además en consideración las
siguientes reglas de precedencia: cada operador tiene una precedencia distinta, según el siguiente orden de
menor a mayor : -, +, / y *, teniendo una asociatividad por la derecha, excepto el operador ´/´ que no se
puede anidar. Los operadores + y - pueden ser también operadores unarios, que preceden al operando,
ambos tienen la misma precedencia, y mayor que la de los operadores binarios, se pueden anidar pero no
mezclar entre ellos. También se podrán utilizar paréntesis de forma habitual para alterar la precedencia
entre operadores.
Puede que no existan alternativas en cuyo caso debe existir la opción DEFAULT, que consta de la palabra
reservada DEFAULT seguida de un grupo de sentencias (0 o más). En otro caso de existir alternativas, no
es obligatorio que aparezca la opción DEFAULT. Pero si aparece deberá ser la última y nunca llevará la
sentencia break.
Cada alternativa está formada por una lista (1 o más) de componentes seguidos de un grupo de sentencias.
Cada componente está formado por la palabra reservada case seguida de una constante que puede ser
indistintamente entera o carácter y finaliza por el símbolo ´:´.
El grupo de sentencias está formado por cero o más sentencias separadas por el símbolo ‘;’, la última de
las cuales podrá ser la sentencia break (no es obligatoria pero si aparece será la última).
Obtener una gramática sintáctica en notación BNF ampliada (ó extendida)
definición.
que genere la anterior
Nota: No es necesario la definición de las sentencias, puesto que no se especifica (se dejará en función del
no terminal <sentencia>).
No será válida la solución si no se utilizan adecuadamente los metasímbolos propios de esta notación.
Descargar