You are on page 1of 13

UNIVERSIDAD TECNOLÓGICA NACIONAL

Facultad Regional Tucumán


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

GRUPO DE TRABAJO
Profesor: Fecha de Entrega
Nº de Grupo: División:
Auxiliar: ___/___/___
Orden Apellido y Nombre de los Integrantes Nro. Legajo
1
2
3
4

UNIDAD Nº 1: Introducción a la Teoría de Lenguajes Formales y Autómatas Finitos.


Lingüística Matemática: Alfabetos, palabras y lenguajes. Operaciones con cadenas y con lenguajes.
Niveles de un lenguaje. Gramáticas para estructuras de frases. Jerarquía de Chomsky. Lenguajes Re-
gulares (LR) y Autómatas Finitos (AF): Gramáticas Regulares (GR), Expresiones Regulares (ER).
Máquinas de Estados Finitos (MEF): Modelos de Mealy y de Moore. Autómata Finito Determinista
(AFD). Equivalencia y minimización. Autómatas Finitos No Deterministas (AFND). Operaciones con
AF. Conversión AFND/AFD. Obtención del AF a partir de una ER. Propiedades de los LR. Analiza-
dor Léxico (Scanner).

1. Problemas a resolver en clase

1.1. Sea x = abbcb , y = ab, dos palabras sobre el alfabeto ∑ = {a,b,c}, obtener las operaciones indicadas y
señalar cuáles tienen un resultado palíndromo:

a) x.y g) x0
b) y.x h) (x2)-1
c) x2 i) (x-1)2 x2
d) y-1 j) long(x2)
e) (y -1)2 k) | (y 2)-1 |
f) x . y-1 l) | xn |b

1.2. Sean ∑ = { 0 , 1 , a , b } y dos lenguajes L1= { a , b } y L2= { λ , 0 , 1 }, resolver las operaciones indicadas.

a) L2 . L1 h) ( L1L2 )10
b) L22 i) L1* ∩ L2+
c) L1+ j) L1+ ∩ L2*
d) L2+ k) L1+ - (L12) *
e) L1* l) ( L2 . L1 ) +
f) L1 . L22 m) ~ ( L1L2 )10
g) (L1 . L22) -1

1.3. Definir los sub-lenguajes y operaciones que considere necesarios para obtener los siguientes lenguajes

a) Todos los números enteros del 0 al 9.999 con punto (unidad de mil) y sin ceros no significativos

b) Todos los nombres y apellidos de longitud máxima 40 (cada nombre o apellido comienza con
una mayúscula seguida de minúsculas, los componente se separan con espacios)

1.4. Sea el lenguaje L formado por todas las secuencias de cinco dígitos cualesquiera:

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

a) ¿Cuántas palabras tiene el lenguaje?


b) Defina el lenguaje utilizando operaciones con lenguajes
c) ¿Cuántos palíndromos posee L? ¿Cuál es la probabilidad de qué una palabra sea pa-
líndrome? ¿Cuántas palabras están formadas por cinco símbolos diferentes?
1.5. Definir gramáticas que generen los siguientes lenguajes. Con cada una de ellas derivar cuatro palabras.

Todos las secuencias de cinco dígitos cualesquiera


a)
Solo los palíndromos del lenguaje anterior
b)
c) Todas las secuencias de ∑ = { a , b } que no tienen dos “a” consecutivas
d) El conjunto de los números naturales impares sin ceros no significativos.
1.6. Para cada conjunto de producciones:
 Formalizar la gramática
 Indicar a qué tipo de gramáticas corresponden en la Jerarquía de Chomsky, justificando la respuesta.
 Obtener 5 palabras de diferente longitud
 Encontrar el lenguaje generado

a) S  SXb S  aXY / λ
b) c) S  aS / bX / cZ / b / c / λ
X  aX X  aXB / b X  bX / cZ / b / c
aaXb  aab Y  bYC / bC Z  cZ / c
SX  a Bb
Cc
d) S  xBSz e) S  XC f) S  ASB
S  xyz X  AY / AB AAS  CCBB
Bx  xB Y  XB A  aa
By  yy C  CC / c Bb
Aa Cc
Bb
1.7. Obtener una GR en formato estándar para el siguiente conjunto de producciones:

P: S  acS / X
X  bbX / ccY
Y  cZ / aZ
Z  aZ / λ

1.8. Encontrar una ER que defina cada lenguaje expresado en palabras

 L = { todas las palabras formadas por Σ ={a,b} de longitud impar }

 L = { todas las palabras formadas por Σ ={a,b} tales que tengan al menos tres a consecutivas }
(dicho de otra forma, que contengan la subcadena aaa).

1.9. Describir en palabras el lenguaje asociado a cada ER

 a.( a + b )*.a + b.( b + a )*.b

 ( a*.b.a*.b.a* ) *

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


a) P: S  aX
S  bS
X  aS
X  bX
X  λ
Página 2/13
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 1
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2018

b) P : S  aX / bW ; W  aY / bS ; X  aZ / bS / λ , Y  aX / bY / λ ; Z  aZ / bZ

1.11. Diseñar una MEF que reciba como entrada una secuencia de dígitos binarios y produzca como salida el
módulo 4 de la de secuencia parcial leída (es decir, considerando la secuencia leída hasta ese momento).

1.12. Diseñar una MEF que modelice el funcionamiento de tres semáforos que actúan en forma conjunta en
un cruce de una avenida con una calle de una sola mano. Se dispone de 3 células fotoeléctricas, sobre cada
carril de la avenida y sobre la calle, que emiten una señal cuando existen vehículos frente al semáforo co-
rrespondiente. Por una cuestión de funcionalidad, el sistema chequea las células dos veces por minuto. Se
deben tener en cuenta las siguientes reglas:

 Si hay vehículos en los 2 carriles de la avenida, se les da prioridad


 Si hay vehículos en 1 solo carril de la avenida y en la calle, se da prioridad al que viene por la derecha
 Si no hay vehículos ni en la avenida ni en la calle, cambiar.
 Los semáforos no pueden permanecer sin cambiar más de 2 minutos

1.13. Dado el AF, identificar estados generadores y sumideros, indicar si es completo y conexo, en caso nega-
tivo completarlo y hacerlo conexo. Obtener las secuencias de configuración de tres palabras de diferente
longitud aceptadas por el AF obtenido y de tres secuencias rechazadas.

AF = < Q , Σ , q0 , F , f >
Q = { q0 , q1 , q2 , q3 , q4 , q5 , q6 , q7 }
F = { q3 , 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.14. Minimizar el siguiente AF


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.15. Dados los siguientes AF indicar si son equivalentes y encontrar los AF mínimos para cada uno.

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

A1. A2. A3.

a b a b a b
 q0 q6 q4 q0 q3 q1  q0 q5 q4
q1 q2 q3 * q1 q1 q4 q1 q2 q4
* q2 q4 q8 q2 q3 q1 q2 q4 q0
q3 q8 q4  q3 q5 q1 * q3 q4 q5
* q4 q2 q0 q4 q6 q1 * q4 q3 q1
q5 q1 q3 q5 q1 q0 q5 q2 q3
q6 q4 q3 q6 q1 q2
* q7 q7 q6 q7 q1 q3
q8 q1 q2

1.16. 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 componentes.

GR1 S  xC / yB / λ GR2 S  abaS / babY / a / b


A  xA / yB / y X  baY / abS / λ
B  xC / yA Y  aaX / Z
C  xA / x Z  baZ / bbZ / λ

GR3 S  aX / b
X  bX / aY
Y  aY / bZ
Z  bX / a

1.17. Obtener GR que generen los lenguajes aceptados por los siguientes autómatas:

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.18. Obtener AFD mínimos para los AFND .del ejercicio 1.14.

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

1.19. Resolver las operaciones combinadas con autómatas que se indican (no es requisito que la solución sea
determinista).
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) ( A3 U A2)+

b) ( A2 . A1 )*

c) ( A1 ∩ A2 )-1

d) ( ~A3 ) ∩ A2

1.20. Para cada una de las ER dadas, obtener una AFD mínimo que acepte el lenguaje correspondiente.

 ( a ( a + b ) ) * a* b

 a * b a * + ( a b* b a ) *

2. Problemas a resolver por los alumnos

2.1. Sean x = 111 , y = 211, z = 10, palabras sobre el alfabeto ∑ = { 1,2,10}. Completar el siguiente cuadro:

Definición Resultado Definición Resultado Definición Resultado


y2 (yz)2 z-1y2
xy λ 11101111
(xy)-1 |(yz)2| 11121111
(xz)-1 5 |y2z3|
4
(*) 0101 |(zx) |1 |(yx)n|1

2.2. Representando con Wk el conjunto de todas las palabras de longitud k sobre el alfabeto ∑ = { a , b }, ob-
tener:
a) W1 c) W5
b) W3 d) W0
e) ¿Cuántas palabras obtendría para Wn?
f) ¿Cuántas palabras obtendría para longitud n con m símbolos?
g) ¿Cuántas con la restricción de no repetir símbolos?

2.3. Dados los lenguajes L1 = {a , ba}, L2 = {a , b , ba} , L3 = {a, b}, L4 = {a , ab } y L5 = { b , λ } sobre el alfa-
beto ∑ = { a , b }, resolver las operaciones e indicar si el resultado es vacío, finito o infinito. Describir con
palabras los lenguajes infinitos.

a) L1+ i) L5+ ∩ ~L2*


b) L23 j) ~ (L3+ U L2+)
c) L2* k) L120
d) (L4*)-1 l) ~L1*
e) L510 m) L5 . L4+
Página 5/13
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 1
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2018

f) ~ (L52 U L2) n) L4* - L1+


g) L2* - ( L1* L5 ) o) ( L32 )+
h) (L3 U L5) n p) ( L3 . L5+ )-1

2.4. Partiendo de los lenguajes L1 = { a , b }, L2 = { aa, ba } , L3 = { λ , 1, 2 }, L4 = { a , 2 } y L5 = { b , λ } so-


bre el alfabeto ∑ = { a , b , 1 , 2 }, encontrar operaciones combinadas que arrojen los siguientes resulta-
dos:
a) Φ
b) { λ }
c) { bb }
d) { a , b , ba , bb }
e) { aa , aa1 , aa2 , ab , ab1 , ab2 }
f) Todas las secuencias de longitud ≥ 0 que se pueden formar usando solamente letras
g) Todas las secuencias de letras de longitud igual a 10
h) Todas las secuencias de números de longitud menor que 10
i) Todas las secuencias de letras de longitud mayor que 10
j) Todas las secuencias de letras de longitud impar
k) Todas las secuencias de letras de longitud par que terminan con “a”
l) Todas las secuencias cuya longitud sea par pero no sea múltiplo de tres
m) Todas las secuencias que contienen al menos una letra
n) Todas las secuencias que comienzan con letra y no tienen números consecutivos
o) Todas las secuencias que comienzan y terminan con letra y no tienen números consecutivos

2.5. Para ∑ = { a , b , 0 , 1 } y los lenguajes L1 = { a , b }, , L2 = { λ , 1, 0 }, L3 = { a, ab } y L4 = { 01 , 10 },


determinar entre las operaciones indicadas las que arrojan como resultado los lenguajes que se expresan en
la tabla

LENGUAJES OPERACIONES
{ aa , baa , ab , bab } L3 • L1 L1 •.L3 L3-1 • L1 ( L1 •.L3 )-1

Todas las secuencias de no contienen letras L2+ (L22 )+ L2* (L2* )3


Todas las secuencias de longitud menor que 8
que se pueden formar con los símbolos 0 y 1
L28 L27 ( L2 – L10 ) 7 L27 U L26
Todas las secuencias de longitud mayor que 8
que se pueden formar con los símbolos 0 y 1
~ L28 L29 L2* – L28 Σ* – L27
Todas las secuencias de longitud igual a 8
que se pueden formar con los símbolos 0 y 1
L44 L28 L28 – L27 ( L2 – L1* ) 8
Todas las secuencias de dos o más letras que
empiezan con a y no tienen b consecutivas
L3+ L3+ – L1 L12 •.L3* ( L1 •.L3+ ) U ( L3 - L1 )

Todas las secuencias de longitud impar que


~ (L12 )+ (L12 )+ • L1 L1 • (L12 )+ L1 * – (L12 )+
se pueden formar con los símbolos a, b
(L13 )+ (L12 )* • L1 L1 + – (L12 )+ L1 * – (L12 )*
Todas las secuencias que contienen al menos L2* • L1 •
~ (L2 )* L1 • (L1 U L2 ) * (L1 U L2 ) * • L1
una letra L2*

2.6. Sea L = { λ , x }. Obtener Ln para n = 0,1,2,3. ¿Cuántos elementos tiene Ln para un n arbitrario? ¿Cuáles
son las palabras de Ln para un n arbitrario?

2.7. Sea = { a, o , m , r ,ba, bo , le , li , te , se , re }, encontrar todos los palíndromos de * que constituyan


palabras válidas en el idioma castellano, de longitud 1, de longitud 2 y de longitud 3.

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

2.8. Dado el lenguaje base L = { a , b } , definir con expresiones de L los lenguajes cuyas palabras cumplen
con las siguientes condiciones

a) Longitud impar.
b) Longitud par que no sea múltiplo de 3.
c) Longitud múltiplo de 3 o múltiplo de 5.
d) Longitud que no sea múltiplo de 5 ni de 7.

2.9. Definir el alfabeto, los lenguajes bases y las operaciones de lenguajes correspondientes a cada uno de los
siguientes campos de datos de un formulario:

a) Código de producto: N-F


Donde N puede ser cualquier secuencia de 1 a 3 dígitos decimales y F puede ser cual-
quier secuencia de 2 a 5 letras mayúsculas.

b) Precio del producto: E.D


Donde E debe ser un número entero sin signo de hasta 6 dígitos decimales y D debe
ser una secuencia cualquiera de 2 dígitos decimales

2.10. Encontrar gramáticas que generen los lenguajes que se indican para el alfabeto Σ = { a , b } excepto en
los casos que se indique otro alfabeto y derivar al menos cuatro palabras de diferente longitud, indicando
las formas sentenciales intermedias.

 todas las secuencias de longitud impar


 todas las cadenas que contengan exactamente tres “a”
 todos los palíndromos de longitud par que empiecen con “b”.
 todas las secuencias que no contengan “b” consecutivas
 todas las cadenas que contengan al menos dos “a” consecutivas
 todas las secuencias que contengan una cantidad par de “a” y una cantidad impar de “b”
 Todas las secuencias de la forma anbn/ n ≥ 0
 Todos los números reales (enteros o decimales) sin ceros no significativos con Σ = { 0,1,2,3,…,9,-
,+, •}
2.11. Para cada conjunto de producciones:
 Formalizar la gramática
 Indicar el mayor tipo de gramáticas al que corresponden en la Jerarquía de Chomsky, justificando la
respuesta.
 Obtener 3 palabras de longitud > 4 generadas por la gramática
 Enunciar el lenguaje generado

a) S  Sxx / By b) S  aDS / a c) S  SRW / a


A  Azz / zz aD  Da WR  RW
B  By / A Da  aD baa  λ
aDa  aya Yb
DD  D R  aba

d) S  HL / MN / 0 e) S  0Ax / 0x f) S bSE /xSE


N  HL / MN / 0 A  YAx S  xR / bT/ 1Q
M1 A  00 Ex/b/1
H0 YA  AYY Rb
L  HN YYx  0xx Q1
L  ML / 1 Tx
Página 7/13
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 1
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2018

g) S  wV / bX h) S  ASB / y i) S  0QC/ xS
V wS / bZ/b Sy S  cS / λ
X  wZ/bS/w Ad  yA QC  0xB/xQC/cQC
Z  wX/ bV Ax xB  0S /xxB/cxB
By

2.12. Obtener GR en formato estándar para los siguientes conjuntos de producciones:

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

2.13. Encontrar ER que definan para Σ ={ x , y} los siguientes lenguajes expresado en palabras:

a) Todas las palabras cuya tercera letra sea x.


b) Todas las palabras que contienen tres y.
c) Todas las palabras de longitud par que comienzan con x
d) Todas las palabras que no contienen “y” consecutivas

2.14. Describir en palabras los lenguajes asociados a las ER dadas

a) ( x + yx + yxx )*

b) ( x ( x + y ) )*

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

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

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.16. Diseñar las siguientes MEF

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.
Página 8/13
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 1
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2018

c) Una expendedora que ofrece 3 productos distintos cuyos precios son de $ 5, $ 7 y $ 8, respectivamente.
La máquina admite monedas de 1 y 2 pesos, y billetes de 2, de 5 y de 10 pesos y rechaza las monedas o
billetes cuando el monto supera los 10$. Tiene un botón para cada uno de los productos y otro para can-
celar o solicitar el vuelto después de una compra si no se desea seguir comprando.

2.17. Dado el AF, identificar estados generadores y sumideros, indicar si es completos y conexos, en los casos
negativo, completarlo, y hacerlo conexos. Encontrar cinco palabras de diferente longitud aceptadas por el
AF obtenido y de tres secuencias rechazadas de diferente longitud.

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

f (A,x) = B
f (A,y) = C
f (B,x) = B
f (B,z) = D
f (C,y) = E
f (D,x) = D
f (D,y) = B
f (E,x) = C
f (E,z) = B

2.18. Minimizar los siguientes AF

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
2.19. Dados los siguientes pares de AF indicar si son equivalentes y encontrar los AF mínimos.

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

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.20. Dados los siguientes AF, indicar y justificar si se trata de autómatas deterministas. En caso que sean no
deterministas, identificar si son AF-λ o AF-lazy, representarlos gráficamente e indicar sus componentes;
Encontrar 5 palabras de diferente longitud que pertenezcan al lenguaje aceptado y otras 5 secuencias (de
símbolos del alfabeto) que no pertenezcan.

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 λ
 *T {T,U} ø {X}  G {H} {G} {I}
U ø {W} {Y} H ø {H} {M}
W ø {U,T} ø I ø {M} ø
X {T} {Z} ø *M {M} {H} ø
*Y {W} ø {U}
*Z ø {X} {Z}

2.21. Para cada uno de los autómatas del ejercicio anterior, obtener una GR que genere el lenguaje aceptado
por el autómata.
Página 10/13
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 1
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2018

2.22. Dados los siguientes conjuntos de producciones, obtener un AF que acepte el lenguaje generado por ca-
da gramática.

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.23. Resolver las operaciones con autómatas que se indican, indicar si el resultado es o no determinista.

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 d) ~ (A1 ∩ A2 )
b) (A2 . A1)+ e) (~A1) . A3
c) (A1 ∩ A2)-1

2.24. Obtener un AFD mínimo para cada uno de los siguientes AFND
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}

2.25. Para cada una de las ER dadas, obtener un AF-λ que acepte el lenguaje correspondiente.

 a ( b + a b )* a + ( aa + bb ) * ( bb + a ) + a
 ( a b * ( a + b ) + a *b b ) *
 ( a a)* b a* ( b a)* + (a a b* a + b* a a b)*

2.26. Para los siguientes AF -  encontrar el lenguaje aceptado y obtener los AFD mínimos equivalentes.

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

a)

b)

c)

2.27. Encontrar el AFD mínimo que acepte el lenguaje formado por todas las secuencias de Σ = { a , b } que
cumplan simultáneamente con las siguientes condiciones.

 Comienzan con “ab”


 No contienen la subcadena “aaa” (en otras palabras, no tienen 3 “a” consecutivas”)
 Tienen longitud impar

(Nota: encontrar AF para las distintas condiciones y operar)

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

3. Proyecto de Aplicación

3.1 Considerando los comandos de Unix adecuados y el empleo de tuberías, que posibilitan administrar archi-
vos de texto, resolver las siguientes situaciones con expresiones regulares:

3.1.1 Dado un texto cuyos párrafos comienzan con un tab.

 Determinar la cantidad de párrafos que componen el texto.


 Calcular la cantidad de nombres propios que se incluyen en el texto, considerando que los nombres co-
mienzan con letra mayúscula.
 Verificar que las líneas del párrafo terminen con un punto.

3.1.2 Dado un archivo “plantilla.txt” con una plantilla de texto que incluye los siguientes patrones:
#DNI , #Nombre, #Email, #Domicilio y #FechaNacimiento:

 Reemplazar los patrones por los respectivos datos personales almacenados en un archivo de texto con
formato csv: “datos.csv”.

 Teniendo en cuenta la fecha actual, mostrar los registros que verifiquen la edad mayor a 18 años.

3.2 Dado el siguiente conjunto de componentes léxicos o tokens utilizados en expresiones algebraicas, cons-
truir un Analizador Léxico (Scanner). Cada token se representa con un par (lexema, token-type). Cada to-
ken-type se codifica con un identificador, de acuerdo a la siguiente descripción:

ENTERO: Cualquier secuencia de dígitos decimales sin signo.


REAL: Cualquier número entero seguido de un punto seguido de cualquier número entero.
PARENTESIS: ( )
OPERADOR: + - * /

Construir el Scanner, utilizando como modelo para el diseño el AFD e implementarlo mediante un pro-
grama 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, eliminar los espacios en blanco y rea-
lizar el escaneo sobre la misma. Tener en cuenta que un token termina cuando se encuentra un final de
String o el primer símbolo del siguiente token. En este último caso se debe retroceder un símbolo en la
cadena que se está escaneando. 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 13/13

You might also like