Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

CORE Metadata, citation and similar papers at core.ac.

uk
Provided by Repositori Institucional de la Universitat Jaume I

Ejercicios sobre autómatas finitos y otras máquinas deterministas


IG29: Compiladores e intérpretes

Cuarta sesión de teorı́a

Bloque 1: Ejercicios de examen

Ejercicio 1 Valor: 2,50 puntos

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:

L1 , el conjunto de las cadenas de L que acaban en be.


L2 , el conjunto de las cadenas de L que acaban en una letra distinta de be.

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.

Ejercicio 2 Valor: 1,25 puntos

Considera la siguiente especificación léxica, que define categorı́as diferentes para literales enteros en bases dos, cuatro y ocho:

Categorı́a léxica Expresión regular Atributos Acciones


litent 2 [0-1]+(\(2)? valor Calcular valor y emitir
litent 4 [0-3]+(\(4)? valor Calcular valor y emitir
litent 8 [0-7]+(\(8)? valor Calcular valor y emitir

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

Considera el analizador léxico dado por la máquina discriminadora determinista

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.

Ejercicio 4 Valor: 3,50 puntos

Considera la siguiente especificación léxica:

Categorı́a léxica Expresión regular Emitir u omitir Atributos


com <<[^\n]+> Omitir —
men < Emitir —
may > Emitir —
ide [a-z]+[0-9]* Emitir lexema
ope <[a-z]*> Emitir lexema

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.

Bloque 2: Otros ejercicios

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.

También podría gustarte