T A L F

Anuncio
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
CURSO 2009/10 – CONVOCATORIA DE JULIO
8 de Julio 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 15 de julio a las 13 : 00 horas.
Las revisiones se realizarán el martes 20 de julio. La hora en concreto del inicio de la revisión se
publicará el día 15 junto con las calificaciones.
EXAMEN
Ejercicio 1 (3 puntos)
Dado el siguiente alfabeto Σ={ a, b}, sea el lenguaje L, formado por las palabras constituidas por un número
par de símbolos a (el 0 es par), pero que no contienen dos símbolos a consecutivos en ningún lugar de la
palabra.
Palabras correctas: ε, bbb, aba, baba, bbbbbbabababa, abbbabbbb
“
incorrectas: ab, aab, baab, abababb
Se pide
1.
2.
3.
:
Construir un AFD mínimo que reconozca el lenguaje L.
Obtener una ER equivalente que denote el lenguaje L.
Encontrar la expresión regular lo más simplificada posible para cada uno de los siguientes
apartados. Cada apartado realiza operaciones entre lenguajes formales representados por
expresiones regulares.
a) ( a*b* ∩ c*d* ) - 
b) ( b* a* )* . ( a* b* )+ . *
Ejercicio 2 (2 puntos)
Dado el alfabeto Σ={ 0, 1, ‘.’ }, sea el lenguaje L = {v’.’w | v, w  {0,1}+ ; en donde |v |=|w | y w no puede
finalizar en dos o mas ceros}
Palabras correctas: 0.0, 1.0, 000.010, 010100 .000010, 0101.1111
“
Incorrectas: ., 10.00, 11110, 1100.11, 0.11, 11000.11000
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 que define la sintaxis de una función
<llamada> ::= id (<parámetros>)
| id
<parámetros> ::= <operando> <op> <parámetros>
| <signo> <operando>
<signo> ::= + | - | ε
<operando>::=id | cte
<op>::= + | Se pide:
1. Representarla en notación BNF (Ampliada).
2. Encontrar otra gramática equivalente a la dada que sea LL(1), realizando todas las transformaciones
que se consideren necesarias, justificándolas adecuadamente. Finalmente deberá aparecer la
gramática resultante junto con el cálculo detallado de los símbolos directores en función de iniciales
y seguidores de todas sus producciones.
Ejercicio 4 (3 puntos)
Construir una gramática sintáctica en notación BNF (Ampliada) que defina la sentencia de selección de un
lenguaje SQL, que permita consultar datos almacenados en las tablas de una base de datos. La sentencia
tiene las siguientes características:
Comienza con la palabra reservada SELECCIONA seguida de una lista de elementos a seleccionar (uno o
más) separados por el símbolo ´ ,´ . Los elementos a seleccionar pueden ser el nombre de una columna o el
nombre de una tabla seguido del símbolo `.` y el nombre de una columna.
A continuación viene la palabra reservada DE seguida de una lista nombres de tablas (una o más) separadas
opcionalmente por el símbolo ´,´ ; desde las cuales queremos recuperar los datos.
Seguidamente puede aparecer la palabra reservada DONDE seguida de la condición de selección. Condición
que debe cumplirse para que los datos sean devueltos por la consulta.
La condición de selección es una expresión que relaciona los operadores y operandos con las siguientes
condiciones:
Operadores lógicos: AND y OR, operadores binarios y asociativos por la derecha.
Operadores de relación: =, <=, >=, y <> , operadores binarios que no se pueden anidar
Operadores de cadenas: +, ´.` , operadores binarios y asociativos por la izquierda
Operador NOT unario que se puede anidar
El orden de precedencia es según el orden de escritura anterior de menor a mayor. Los operandos pueden
ser: constantes, variables o una expresión entre paréntesis.
Seguidamente a la expresión, puede aparecer la parte de ordenación, consistente en la palabra reservada
ORDENAR POR seguida de (0 o más) nombres de columnas pudiendo estar separados por el símbolo ´,´ .
A cada nombre de columna le puede seguir opcionalmente la palabra reservada ASC o DES, que indican el
sentido de ordenación: ASC (orden ascendente), DES (orden descendente). En el caso de no llevar la palabra
reservada (ASC, DES), se considera el valor de ordenación predeterminado, en tal caso se considera una
ordenación ascendente.
Tanto para representar los nombres de las columnas, como los nombres de las tablas, así como las variables
utilizadas en la expresión de selección, se usará el componente léxico id.
Fuentes correctos:
- SELECCIONA tAlumnos.nombre, Apellidos, tNotas.notafinal DE tAlumnos tNotas
- SELECCIONA tCoches.matricula, marca, modelo, color DE tCoches, tFabricantes tMarca
DONDE matricula = 'M-0000-A' OR matricula = '2010-XXX'
ORDENAR POR matricula, marca color ASC modelo DESC
Obtener una gramática sintáctica en notación BNF ampliada (ó extendida) que genere la anterior definición.
Documentos relacionados
Descargar