Ejercicios Sobre Aut Omatas Finitos y Otras M Aquinas Deterministas
Ejercicios Sobre Aut Omatas Finitos y Otras M Aquinas Deterministas
uk
Provided by Repositori Institucional de la Universitat Jaume I
Sea L el lenguaje de todas las cadenas formadas por cero o más letras minúsculas y que no tienen tres bes seguidas en su
interior. Ası́, por ejemplo, las siguientes cadenas pertenecerı́an a L: xyz, bb, bebebe, baobab, λ. Pero no estas otras: Gato,
abbbba, xxxbbb, salu2...
Consideremos también dos subconjuntos disjuntos del lenguaje L:
Obsérvese que λ, aunque es una cadena de L, no pertenece a ninguno de los subconjuntos que acabamos de definir.
A. Representa gráficamente un autómata finito determinista que reconozca el lenguaje L. No olvides los convenios habituales
para marcar estados como iniciales (flecha entrante) o finales (doble cı́rculo).
B. Construye una máquina discriminadora determinista que omita letras mayúsculas y que, ante cadenas no vacı́as de L, emita
la categorı́a FinBe o la categorı́a FinNoBe según el último carácter de la cadena sea o no una be; es decir, la categorı́a
FinBe se corresponderá con el lenguaje L1 y FinNoBe se corresponderá con L2 . Aparte de marcar adecuadamente el
estado inicial de la máquina y sus finales, no olvides indicar la acción asociada a cada uno de estos últimos, según el
convenio habitual con flechas punteadas.
C. Determina cuál serı́a la secuencia de componentes léxicos emitidos ante la siguiente cadena de entrada:
xyzbbbebebebaobabGatoabbbbaxxxbbbsalu2
Para cada componente emitido debes indicar, junto con el nombre de su categorı́a, su lexema entre paréntesis. Además, si
se produce algún error léxico, debes indicar en cada caso cuál es el carácter causante del error.
Considera la siguiente especificación léxica, que define categorı́as diferentes para literales enteros en bases dos, cuatro y ocho:
Construye una máquina discriminadora determinista que sea equivalente a la especificación anterior. Aparte de marcar adecua-
damente el estado inicial de la máquina y sus finales, no olvides indicar las acciones asociadas a cada uno de estos últimos,
según el convenio habitual con flechas punteadas.
1
Ejercicio 3 Valor: 1,00 puntos
emitir C1
1 b
2
b
a
b c
0 3 4 emitir C2
c
5 omitir
y la estrategia avariciosa.
Supón que el analizador anterior recibe como entrada la cadena abbbbbcccaba y di cuál serı́a la secuencia de componentes
léxicos emitidos. No olvides especificar, para cada componente emitido (y sólo para éstos), tanto su categorı́a léxica como el
correspondiente lexema. Ten en cuenta que en caso de error léxico se debe indicar cuál es el carácter causante del error y
continuar con el análisis de la cadena.
Teniendo en cuenta la especificación anterior, ası́ como las reglas habituales para la resolución de conflictos (estrategia avariciosa
y sistema de prioridades), responde a los apartados siguientes:
A. Representa gráficamente tres autómatas finitos deterministas, uno para el lenguaje de cada una de las siguientes categorı́as
léxicas: com, ide y ope. No olvides los convenios habituales para marcar estados como iniciales (flecha entrante) o finales
(doble cı́rculo).
B. Construye una máquina discriminadora determinista equivalente a la especificación léxica anterior. Aparte de marcar ade-
cuadamente el estado inicial de la máquina y sus finales, no olvides indicar la acción asociada a cada uno de estos últimos,
según el convenio habitual con flechas punteadas.
C. Finalmente, di cuál serı́a la secuencia de componentes léxicos emitidos en cada uno de los casos siguientes:
Cadena 1: <hola><h<<AA><aa>9ig29f54
Cadena 2: exe<f4>><<>>
Cadena 3: <><<><<curioso
No olvides especificar, para cada componente emitido (y sólo para éstos), tanto su categorı́a léxica como, si procede, sus
atributos. Además, en caso de error léxico debes indicar cuál es el carácter causante del error y continuar con el análisis de
la cadena.
2
Ejercicio 5 Valor: 1,00 puntos
Representa gráficamente un autómata finito determinista que reconozca el lenguaje de los literales de hora descrito en el
Ejercicio 13 del documento Recopilación de ejercicios sobre expresiones regulares en exámenes de Compiladores e
intérpretes. No olvides los convenios habituales para marcar estados como iniciales (flecha entrante) o finales (doble cı́rculo)
ni utilices caracteres de escape innecesarios en los arcos del autómata.
Ejercicio 6
Construye autómatas finitos deterministas para los lenguajes del documento Recopilación de ejercicios sobre expresiones
regulares en exámenes de Compiladores e intérpretes:
A. Construye uno para cada lenguaje de los que aparecen en el bloque Modelado, excepto el del Ejercicio 5 y el del Ejercicio 13,
que ya habrás construido previamente. Se trata, pues, de representar gráficamente veinte autómatas.
B. Para cada una de las veinte expresiones regulares que aparecen en el bloque Análisis, construye un autómata finito deter-
minista equivalente.
Ejercicio 7
Tomando como punto de partida Un ejercicio sobre especificaciones léxicas extraı́do de un examen de Compiladores e
intérpretes, haz lo siguiente:
A. Traduce cada una sus dos especificaciones léxicas a una máquina discriminadora determinista equivalente.
B. Analiza léxicamente, utilizando las máquinas anteriores, el programa que aparece en el enunciado del ejercicio.