Está en la página 1de 9

UNIVERSIDAD TECNOLÓGICA NACIONAL

Facultad Regional Tucumán


TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes

UNIDAD Nº 2: Lenguajes-Gramáticas Regulares y Autómatas Finitos.


Gramáticas Regulares (GR), Lenguajes Regulares (LR), Expresiones Regulares (ER), Autómatas
Finitos Deterministas y No-Deterministas (AFD y AFND). Máquinas de Estados Finitos (MEF).
Analizador Léxico (Scanner).

1. Problemas a resolver en clase

1.1. Obtener una GR en formato estándar FNC3 para el siguiente conjunto de producciones. En
el caso del punto b), pasar el FNC3 de regular izquierda a derecha. Simular con JFLAP.

a) b)
P: S → abX | bbY | aaW | λ P: S → Xa | Tabb | Y
T → baS | abY T → Tba | Wab | Xaa
V → aS | bbX | baY V → Tbb | Xabb | Yb
X → abT | bbbS | aaZ X → Ya | Xaba | λ
Y → T | aaX | λ Y→T|λ
Z → abZ | bbZ Z → Zab | Ybb | aaa

1.2. Encontrar gramáticas regulares a la derecha y a la izquierda que generen los lenguajes
indicados, considerando el alfabeto Σ = { a , b , c }. Simular con JFLAP.

a) Todas las palabras que no tienen símbolos consecutivos iguales


b) Todas las palabras que responden al patrón an bm cp / n≥0 , m impar , p≥2

1.3. Encontrar una ER que defina cada lenguaje expresado coloquialmente, sobre el alfabeto
Σ={a,b}:

• L = { todas las palabras de longitud impar }


• L = { todas las palabras cuya tercera letra sea “a” }

1.4. Describir en palabras el lenguaje asociado a cada ER:

• a.( a + b )*.a + b.( b + a )*.b


• ( a*.b.a*.b.a* ) *

1.5. Obtener una ER a partir del conjunto de producciones de cada gramática.


Simular con JFLAP.
a) P: S → aX b) P: S → aX | bW | a
S → bS W → aY | bS | a
X → aS X → aZ | bS
X → bX Y → aX | bY | a | b
X →λ Z → aZ | bZ

Página 1/9
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes

1.6. Diseñar una MEF, con criterio de Mealy o de Moore, que reciba como entrada una secuen-
cia de dígitos binarios y produzca como salida el módulo 4 de la secuencia parcial leída (es
decir, considerando la secuencia leída hasta ese momento). Convertir la MEF al otro crite-
rio. Simular con JFLAP.

1.7. Diseñar una MEF, con criterio de Mealy o de Moore, que modelice el funcionamiento de
una máquina expendedora que vende un solo producto, que es entregado al depositar $50
a través de una ranura que acepta billetes de $10, $20 y $50. El producto se entrega auto-
máticamente al llegar al importe requerido y no se entrega vuelto. Convertir la MEF al otro
criterio. Simular con JFLAP.

1.8. Dado el AFD, identificar estados generadores y sumideros, indicar si es completo y conexo,
en caso negativo completarlo y hacerlo conexo. Obtener las secuencias de configuración
de tres palabras de diferente longitud aceptadas por el AFD obtenido y de tres secuencias
rechazadas. Simular con JFLAP.

AF = < Q , Σ , q0 , F , f >
Q = { q0 , q1 , q2 , q3 , q4 , q5 , q6 , q7 }
F = { q 3 , q6 }

f ( q0,a ) = q2 f ( q0,b ) = q7 f ( q1,a ) = q4


f ( q2,a ) = q6 f ( q2,b ) = q5 f ( q3,b ) = q3
f ( q4,a ) = q7 f ( q4,b ) = q1 f ( q5,a ) = q5
f ( q5,b ) = q5 f ( q6,a ) = q2 f ( q7,b ) = q6

1.9. Minimizar el siguiente AFD. Simular con JFLAP.

a b

→ A F C
B F E
C E B
D F G
E C A
F G H
G F C
H G E
I D A

1.10. Dados los siguientes conjuntos de producciones correspondientes a GR, obtener los AF
para cada uno de ellos. Identificar de qué modelo de AF se tratan y determinar sus com-
ponentes. Simular con JFLAP.
GR1: S → xC | yB | λ GR2: S → abaS | babY | a | b GR3: S → aX | b
A → xA | yB | y X → baY | abS | λ X → bX | aY
B → xC | yA Y → aaX | Z Y → aY | bZ
C → xA | x Z → baZ | bbZ | λ Z → bX | a

Página 2/9
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes

1.11. Obtener GR que generen los lenguajes aceptados por los siguientes AF. Simular con
JFLAP.
A1. A2. A3.

x y a b x y λ
→ *A B E → E {F} {H} → J ø ø {K, P}
*B D B F {H} ø K {L} ø ø
C C C *G ø {H,I} *L ø {K} {M}
D B C H {E,G} ø M {P} ø ø
E C B I {F} {I} N ø {M} ø
*P {N} {P} ø
1.12. Resolver las operaciones combinadas con autómatas que se indican (no es requisito que
la solución sea determinista). Simular con JFLAP.
A1. A2. A3.
a b a b a b
→ C C D → *F H I * J J K
*D E D G I G K J L
*E E C *H F G → L J K
I F H

a) ( A2. A1 )* b) ( A1 ∩ A2 )-1 c) (~A3) ∩ A2 d) ( A3 U A2 )+

1.13. Para las siguientes ER, obtener un AF-λ que acepte el lenguaje correspondiente.
Simular con JFLAP.
• ( a.( a + b ) )*.a*.b
• a*.b.a* + ( a.b* b.a )*

1.14. Obtener los AFD mínimos correspondientes a los AF-λ del ejercicio anterior. Simular con
JFLAP.

1.15. Obtener los AFD mínimos para los AF No-Deterministas del ejercicio 1.11. Simular con
JFLAP.

2. Problemas a resolver por los alumnos


2.1 Obtener una GR en formato estándar FNC3 para el siguiente conjunto de producciones. En
el caso de los puntos a) y c), pasar el FNC3 de regular izquierda a derecha. Simular con
JFLAP.
a) P: S → Sab b) P: S → xxA | By
S → Sb A → xxA | λ
S → Sbb B → By | λ
S→λ C → xA | yB

c) P: S → Sab | Xb | λ d) P: S → aS | aaS | X
X → Xa | Z W → abW | a
Y → Sbb | Xaa X → bbX | bcY | λ
Z → Zaa | b Y → cY | aaZ | λ
Z → aaZ | bbZ
Página 3/9
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes

2.2 Encontrar gramáticas regulares a la derecha o a la izquierda que generen los lenguajes
indicados, sobre Σ={x, y, z}. Simular con JFLAP.
a) Todas las palabras que empiezan con “x” y terminan con “y”
b) Todas las palabras que tienen al menos dos “x”
c) Todas las palabras que tienen una cantidad impar de “y”
d) Todas las palabras que no tienen tres “x” consecutivas
e) L = { xn ym zp / n par, m ≤ 2 , p ≥ 1 }
f) L = { xn ym / n,m ≥ 1 }

2.3 Encontrar ER que definan los siguientes lenguajes expresados coloquialmente, sobre
Σ={x, y}:
1. Todas las palabras que contienen tres “y”
2. Todas las palabras de longitud par que comienzan con “x”
3. Todas las palabras que no contienen “y” consecutivas

2.4 Describir coloquialmente los lenguajes asociados a las ER dadas


a) (x + y.x + y.x.x)*
b) ( x.( x + y ))*
c) ( y + x.y*.x)*.x.y*

2.5 Obtener las ER a partir de los conjuntos de producciones de cada gramática.


Simular con JFLAP.
a) P: S → yS | xD b) P: S → bX | ab
C → xS | yD X → aaX | Y
D → xC | yE | λ Y → aZ | bX
E → aE | bE Z → bY | a

c) P: S → aW | bY / λ d) P: S → aX | bY
W → aZ | bW W → aW | bW
X → aX | bX X → aZ | bW | λ
Y → aX | bS Y → aY | bS | λ
Z → aY | bX Z → aZ | bY

2.6 Diseñar las siguientes MEF, con criterio de Mealy o de Moore y luego convertirla al otro
criterio. Simularlas con JFLAP:

a) Recibe una secuencia de símbolos pertenecientes a Σ ={x,y} y detecta las subcadenas


“xyx”.

b) Recibe como entrada una secuencia de dígitos decimales y genera como salida el mó-
dulo 5 de la suma parcial de los dígitos recibidos.

c) Recibe como entrada una secuencia de dígitos binarios y genera como salida el módulo
3 de la suma parcial de los dígitos recibidos.

Página 4/9
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes

d) Una expendedora que ofrece 3 productos distintos cuyos precios son de $50, $80 y $90,
respectivamente. La máquina admite billetes de $10, $20, $50 y $100 y rechaza los bille-
tes cuando el monto supera los $100. Tiene un botón para cada uno de los productos y
otro para cancelar o solicitar el vuelto después de una compra, si no se desea seguir
comprando.

2.7 Dado el AFD, identificar estados generadores y sumideros, indicar si es completo y conexo,
en caso negativo, completarlo y hacerlo conexo. Encontrar cinco palabras de diferente longi-
tud aceptadas por el AFD obtenido y de tres secuencias rechazadas de diferente longitud.
Simular con JFLAP.

Q={A,B,C,D,E}
f (A,x) = B
Σ={x,y,z} f (A,y) = C
f (B,x) = B
qo=A f (B,z) = D
f (C,y) = E
F={A,D} f (D,x) = D
f (D,y) = B
f (E,x) = C
f (E,z) = B

2.8 Minimizar los siguientes AFD. Simular con JFLAP

a) b)
x y x y
→ A I D A B C
B G A →* B J D
* C D G C J G
D G F * D C A
* E A H * E E E
F C B F H D
* G C E * G I A
* H F E * H F H
* I B G I J G
* J J F J G J

c) d)
p q 0 1
* A D H → A J F
B D H * B H G
* C D A C I B
D I F * D D C
E H C * E H E
F A B * F D A
G E I * G G H
* H D C H A B
→ I B A I E F
* J C J

Página 5/9
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes

2.9 Dados los siguientes pares de AFD, encontrar los AFD mínimos y comprobar si son equiva-
lentes mediante el concepto de isomorfismo. Simular con JFLAP.

a)
x y x y
* A E A → K L M
* B G B L P M
→ C G A * M L M
D H C N N N
E D A P P K
F A J
G H B
H I C
I D C
J B F

b)
0 1 0 1
→ A D C → G H L
B E B H H G
* C B C I I H
D F A * J I L
E B E K J G
F D A * L I J

2.10 Dados los siguientes AF, indicar y justificar si se trata de autómatas deterministas. En
caso de que sean No deterministas identificar de que modelo se trata, representarlos gráfi-
camente e indicar sus componentes. Encontrar 5 palabras de diferente longitud que perte-
nezcan al lenguaje aceptado y otras 5 secuencias (de símbolos del alfabeto) que no perte-
nezcan. Simular con JFLAP.
A1. A2.

a b x y xy yy xxx
→ A {A} {C} → J {K} ø ø {M} ø
B ø {F} *K ø {L} {K} ø ø
* C {B} {C} L {L} {K} ø ø ø
D {E} {C} M {K} {N} ø ø ø
* E ø ø *N ø ø ø ø {N}
F {A} {D}

A3. A4.

0 1 2 a b λ
→ R {W} {X,U} ø → G {H} {G} {I}
→ *T {T,U} ø {X} H ø {H} {M}
U ø {W} {Y} I ø {M} ø
W ø {U,T} ø *M {M} {H} ø
X {T} {Z} ø
*Y {W} ø {U}
*Z ø {X} {Z}
Página 6/9
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes

2.11 Para cada uno de los AF del ejercicio anterior, obtener una GR que genere el lenguaje
aceptado por el autómata. Simular con JFLAP.

2.12 Dados los siguientes conjuntos de producciones, obtener un AF que acepte el lenguaje
generado por cada gramática. Simular con JFLAP.

a) P: S → aX | bW | a b) P: S → abX | bbY | aaW | λ


W → aY | bS | a T → baS | abY
X → aZ | bS V → aS | bbX | baY
Y → aX | bY | a | b X → abT | bbbS | aaZ
Z → aZ | bZ Y → T | aaX | λ
Z → abZ | bbZ

2.13 Resolver las operaciones con AF que se indican, indicar si el resultado es un AF deter-
minista o no. Simular con JFLAP.

A1. A2. A3.

a b a b a b λ
→ A B D → *E ø {G} → H {I} ø {J}
*B D B F {E} {F} I {K} {H} ø
*C B C G {F} {G} *J ø {K} ø
D D C *K {K} {I} ø

a) A3* U A1
b) (A2 . A1)+
c) (~A1) . A3

2.14 Para cada una de las ER dadas, obtener un AF-λ que acepte el lenguaje correspondiente.
Simular con JFLAP.

• a.( b + a.b )*.a + ( a.a + b.b )* ( b.b + a ) + a


• ( a.b* ( a + b ) + a* b.b )*
• ( a.a)*.b.a*.( b.a)* + (a.a.b*.a + b*.a.a.b)*

2.15 Obtener un AFD mínimo para cada uno de los siguientes AF No deterministas. Simular
con JFLAP.
A1. A2.
a b a b c λ
→ A {B,D} {A} → P ø ø ø {Q,T}
B {D} {C} Q ø {R,S} ø {R,S}
*C {B} {C,D} R ø ø ø {Q-U}
D {D} {B} S {T,P} ø {U} ø
T ø {V} ø {Q}
U {S,Q} ø {V} {S}
*V ø ø ø {R}
Página 7/9
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes

2.16 Para los siguientes AF- encontrar el lenguaje aceptado y obtener los AFD mínimos
equivalentes. Simular con JFLAP.

a)

b)

c)

Página 8/9
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes

3. Ejercicio de Aplicación

Dado el siguiente conjunto de componentes léxicos o tokens utilizados en expresiones al-


gebraicas, construir un Analizador Léxico (Scanner). Cada token se representa con un par
(lexema, token-type). Cada token-type se codifica con un identificador, de acuerdo a la si-
guiente descripción:

ENTERO: Cualquier secuencia de dígitos decimales que comiencen con dígitos distintos
de cero, más el cero. Considerar también el signo “-“ para los negativos y en forma
optativa el signo “+” para los positivos.

REAL: Cualquier número entero seguido de un punto seguido de cualquier secuencia de


dígitos decimales.

PARENTESIS: ( )

OPERADOR: + - * /

Construir el Scanner, utilizando como modelo para el diseño el AFD e implementarlo


mediante un programa que utilice la tabla de transiciones. Suponer que las expresiones
algebraicas a analizar están en un archivo de texto. Leer línea por línea en una variable
tipo String y realizar el escaneo sobre la misma. Tener en cuenta que un token termina
cuando se encuentra un final de String o un espacio en blanco. El resultado del análisis
debe guardarse en otro archivo de texto, que contendrá los pares (lexema, token-type)
de cada token encontrado, separado por espacio en blanco, uno por línea. En caso de
no encontrar un token válido, suponer como token-type “ERROR_LEXICO”.

Página 9/9

También podría gustarte