Este documento presenta un portafolio de unidad sobre expresiones y lenguajes regulares. Explica expresiones regulares, lenguajes regulares y presenta ejemplos de ambos. También incluye ejercicios resueltos sobre expresiones y lenguajes regulares para reforzar la comprensión de estos conceptos.
Residente de obra y sus funciones que realiza .pdf
Expresiones regulares y lenguajes regulares
1. INSTITUTO TECNOLÓGICO DE TEPIC
Ingeniería en Sistemas Computacionales
LENGUAJES AUTÓMATAS 1
UNIDAD 2, EXPRESIONES Y LENGUAJES
REGULARES
PORTAFOLIO UNIDAD 2
Alumno: Luis Adrian Parra Avellaneda
Docente: Sonia Alvarado Mares
2. Luis Adrian Parra Avellaneda ISC ITT Page 1
Introducción
En este portafolio de unidad veremos más acerca de los lenguajes, en este caso las
expresiones regulares, las cuales utilizaremos más adelante para armar nuestros
autómatas que gracias a ellos y a la programación nos encargaremos de validar cadenas
de un lenguaje. En este portafolio se verán los temas desarrollados en clase y algunos
ejercicios que ayudaron a tener un mejor conocimiento sobre este tema y sobre todo a
pensar de una manera más lógica y analítica que es lo que se necesita para resolver
problemas relacionados con la computación. Se verá de como una notación formal o una
descripción de un lenguaje podemos generar expresiones y lenguajes regulares, aprender
a simplificarlos, y otras cosas.
A continuación se presentará el contenido:
Índice
Introducción........................................................................................................................................ 1
Índice................................................................................................................................................... 1
Contenido............................................................................................................................................ 2
Expresiones regulares ......................................................................................................................... 2
Algunos ejercicios:........................................................................................................................... 3
Lenguajes regulares............................................................................................................................ 4
Ejercicios con lenguajes regulares .................................................................................................. 5
Más ejercicios.................................................................................................................................. 6
Conclusiones ....................................................................................................................................... 7
Bibliografía .......................................................................................................................................... 7
3. Luis Adrian Parra Avellaneda ISC ITT Page 2
Contenido
Expresiones regulares
Una expresión regular es un conjunto de cadenas que puede formar un lenguaje.
Las expresiones regulares son expresiones aceptadas por un autómata finito, estas expresiones se
pueden hacer mediante operaciones or, concatenación, cerradura de Klein y cerradura positiva,
esta es la definición de Hopcroft y Ullman
Un lenguaje regular es todo lenguaje reconocido por autómatas finitos, entonces una expresión
regular es una expresión regular son cadenas que generan un lenguaje y son reconocidas por estos
autómatas, según el autor Brookshear
Según Isasi, Martinez y Borrajo, Las expresiones regulares representan con consistencia lenguajes
regulares, por lo tanto resumen la descripción de un lenguaje. Las expresiones regulares permiten
definir el lenguaje aceptado por un autómata finito
• Expresión Regular sobre un alfabeto 𝚺: sólo son Expresiones Regulares aquéllas que se obtienen
aplicando un número finito de veces las siguientes reglas:
El vacio es una expresión regular
Para cada A𝜖𝚺 , A es una ER
Si A y B son ER, A+B es una ER
AB también es una ER
A* es una ER
Algunas identidades de las expresiones regulares nos da la autora Elisa Vilso, y son las siguientes:
Donde r+s= (r,s)
4. Luis Adrian Parra Avellaneda ISC ITT Page 3
Algunos ejercicios:
Definir alfabeto, cadenas válidas y describir con palabras el lenguaje
1. 𝑎(𝑎𝑏)+
Σ = 𝑎, 𝑏
cadenas = {aab, aabab, aababab, … . }
El conjunto de todas las cadenas de [a] y [b] que inicien con una [a], seguidas de 1 o más
veces [ab]
Exp. Equivalentes aab(ab)*
2. (𝑎𝑏|𝑏𝑎)+
Σ = 𝑎, 𝑏
cadenas = {ab, ba, abab, abba, baab, … . }
El conjunto de todas las cadenas de [a] y [b] que inicien con [ab] o [ba] seguidas de 0 o
más veces [ab] y [ba]
Exp. Equivalentes (ab|ba)(ba|ab)+
3. 𝑎∗
𝑏|𝑎𝑏∗
Σ = 𝑎, 𝑏
cadenas = {b, a, ab, aab, abb, aaaaab, abbbbb, … . }
El conjunto de todas las cadenas de [a] y [b] que inicien con 0 o más veces [a] seguidas de
[b] o que empiecen con [a] seguidas de 0 o más veces [b]
Exp. Equivalentes (a+
b|ab+
)|a|b
4. 𝑥(𝑥|𝑦)∗
Σ = 𝑥, 𝑦
cadenas = {x, xx, xy, xxx, xyx, xxy, xyy, xxxyyyy … . }
El conjunto de todas las cadenas de [x] y [y] que inicien con [x] seguidas de 0 o más veces
[x] y [y]
Exp. Equivalentes x|x(y|x)+
, x(x*y*)*
5. 𝑥(𝑦𝑥)∗
𝑦+
Σ = 𝑥, 𝑦
cadenas = {xy, xyxy, xyxyxyyy, xyyy, xyxyxyxyyy, … . . }
El conjunto de todas las cadenas de [x] y [y] que inicien con [x] seguidas de 0 o más veces
[xy], seguidas de 1 o más veces [y]
Exp. Equivalentes xy(xy)+
y*|xy+
6. 0(01|11)∗
00
Σ = 0,1
cadenas = {000,00100,0011100,01100,011110100, … }
El conjunto de todas las cadenas de [0] y [1] que inicien con [0] seguidas de 0 o más veces
[01]y[11], y todo seguido de [00]
Exp. Equivalentes 0((01)*(11)*|𝜉)+
00
5. Luis Adrian Parra Avellaneda ISC ITT Page 4
7. (𝑐𝑑|𝑑𝑐|𝑑𝑑|𝑐𝑐)+
Σ = 𝑐, 𝑑
cadenas = {cd, dc, dd, cc, cddc, cdcdccdd, dcdd, … . }
El conjunto de todas las cadenas de [c] y [d] que sean todas las combinaciones de 2
elementos de las letras [c] y [d] concatenadas 1 o más veces
Exp. Equivalentes ((c|d)(c|d))+
8. (𝑐|𝑑|𝑒)∗
𝑒𝑐
Σ = 𝑐, 𝑑, 𝑒
cadenas = {ec, cec, ceec, cdeecdceec… . }
El conjunto de todas las cadenas de [e], [c] y [d] que inician con 0 o más veces de [c], [d] y
[e] seguidas de [ec]
Exp. Equivalentes ((c*d*)|e)*ec
9. 𝑦(𝑥(𝑥𝑦|𝜉)+
)∗
𝑥
Σ = 𝑥, 𝑦
cadenas = {yx, yxx, yxxyxyxxyx, … }
El conjunto de todas las cadenas de [x] y [y] que inician con [y] seguidas de 0 o más veces
[x] con [xy] 0 o más veces, y todo eso seguido de [x]
Exp. Equivalentes y(x(xy)*| 𝜉)+
x
Lenguajes regulares
Lenguajes
recursivamente
numerádos
Lenguajes
sensibles de
contexto
Lenguajes
libres de
contexto
Lenguajes
regulares
6. Luis Adrian Parra Avellaneda ISC ITT Page 5
Un lenguaje regular es todo lenguaje generado a partir de expresiones regulares, o como dicen la
mayoría de los autores un lenguaje que puede ser aceptado por un autómata finito. En el libro de
Isasi, Martínez y Borrajo se manejan las siguientes propiedades de un lenguaje regular:
Ejercicios con lenguajes regulares
Encuentre una o más expresiones regulares para los siguientes lenguajes
1. 𝐿 = {𝑥|𝑥𝜖 0,1 +
}
(00|01|11|00)+
((0|1)(0|1))+
2. 𝐿 = {𝑤𝜖 𝑎, 𝑏 ∗
|𝑤 𝑡𝑖𝑒𝑛𝑒 𝑢𝑛 𝑛ú𝑚𝑒𝑟𝑜 𝑖𝑚𝑝𝑎𝑟 𝑑𝑒 𝑎´𝑠}
b*ab*(b*ab*ab*)*
3. 𝐿{𝑎 𝑛
𝑏 𝑛
|𝑛 ≥ 0}
No existe expresión regular
4. 𝐿{0 𝑚
1 𝑛
|𝑛 ≥ 0, 𝑚 > 0}
0+
1*
5. El conjunto de todas las cadenas de [c] y [d] que terminen con [dc]
(c|d)*dc
(c|d)dc+
L={w dc|w𝜖(c,d)*}
7. Luis Adrian Parra Avellaneda ISC ITT Page 6
Más ejercicios
1. Encuentre una expresión regular más sencilla
a) (a|b|ab|ba)*=(a|b)*
b) x(xx*|x*)*=x+
c) (0|1)*01(0|1)*|0*1*=(0|1)*01(0|1)*|0*1*, no se encontró expresión más sencilla
2. Encuentre una expresión regular que corresponda a cada uno de los subconjuntos (0,1)
a) Lenguaje de todas las cadenas que no terminan con 01
(0|1)*(00|11|10)|(0|1)
b) Lenguaje de todas las cadenas que contienen exactamente 2 0´s
(1*01*01*)
c) Lenguaje de todas las cadenas que no contienen la subcadena 00
(1+
01*)*|(1*01+
)|(1*|0)
3. Describa los siguientes lenguajes
a) a*(ab)*b*
Conjunto de todas las cadenas de [a] y [b] que empiezan con 0 o más [a] seguidas de 0
o más veces [ab] seguidas de 0 o más [b]
b) c*(dcc)*d*
Conjunto de todas las cadenas de [c] y [d] que empiezan con 0 o más [c], seguidas de 0
o más veces [dcc] seguidas de 0 o más veces d
c) (xx*yy*)*
Conjunto de todas las cadenas de [x] y [y] que empiezan con 1 o más [x] seguidas de 1
o más [y] todo eso concatenado 0 o más veces
8. Luis Adrian Parra Avellaneda ISC ITT Page 7
Conclusiones
En esta unidad aprendimos que es una expresión regular, la cual es una expresión que es aceptada
por un autómata finito, pero ignorando el conocimiento de un autómata, es una expresión que se
puede armar a partir de las operaciones como OR, concatenación, y cerraduras. Estas expresiones
regulares forman un lenguaje regular, pero vimos que existen ciertos lenguajes que no pueden
formar una expresión regular, por lo tanto no son lenguajes regulares. Como vimos en esta
unidad, aprendimos a usar la lógica y el análisis para desarrollar expresiones a partir de lenguajes,
a definir y describir ciertas expresiones, y también a desarrollar expresiones regulares diferentes
Bibliografía
Isasi, Martínez, Borrajo (1997). Lenguajes, gramáticas y autómatas, un enfoque práctico.
México. Editorial Addison-wesley
Hopcroft, Ullman (1993). Introducción a la teoría de autómatas, lenguajes y computación.
Editorial CECSA
Brookshear. Teoría de la Computación, Lenguajes Formales, Autómatas y Complejidad.
Addison Wesley.
Viso (2002). Teoría de la computación. México. Facultad de Ciencias UNAM
Louden (2004). Construcción de compiladores, principios y práctica. Ed Thomson Kelley,
Dean, Teoría de Automatas y Lenguajes Formales, Prentice Hall.