2. Lenguajes Regulares
Los lenguajes regulares se llaman as´ı porque sus palabras
contienen “regularidades” o repeticiones de los mismos
componentes, como por ejemplo en el lenguaje L1
siguiente:
L1 = {ab, abab, ababab, abababab, . . .}
3. Definicion formal de Lenguajes Regulares
Un lenguaje L es regular si y s´olo si se cumple al menos una
de las condiciones
siguientes:
• L es finito;
• L es la uni´on o la concatenaci´on de otros lenguajes
regulares R1 y R2, L = R1 ∪ R2 o
• L = R1R2 respectivamente.
• L es la cerradura de Kleene de algun lenguaje regular, L =
R∗
.
Esta dentición nos permite construir expresiones en la
notación de conjuntos que representan lenguajes regulares.
4. Expresiones regulares
La notacion de conjuntos nos permite describir los lenguajes
regulares, pero nosotros
quisiéramos una notación en que las representaciones de los
lenguajes fueran simplemente
texto (cadenas de caracteres).
5. Así las representaciones de los lenguajes regulares
serıan simplemente palabras de un lenguaje (el de las
representaciones correctamente formadas). Con
estas ideas vamos a definir un lenguaje, el de las
expresiones regulares, en que cada palabra
va a denotar un lenguaje regular.
6. Significado de las ER
Las ER son simplemente formulas cuyo
propósito es representar cada una de ellas un
lenguaje. Así, el significado de una ER es
simplemente el lenguaje que ella representa.
Por ejemplo, la ER “Φ” representa el conjunto
vacío {}.
7. Metodología de diseño de las ER
Al tratar de encontrar una ER para un lenguaje dado,
mientras mas complejo sea el
lenguaje es obvio que resulta mas difícil encontrar por pura
intuición dicha ER.
En estos casos puede ser conveniente trabajar en forma
metódica.
8. Una técnica que funciona en muchos casos consiste en
determinar primero la estructura de la ER, dejando unos
“huecos” pendientes para resolverse luego.
Estos huecos, que llamaremos contextos, son también
lenguajes para los que habrá que encontrar una ER.
9. Equivalencia de expresiones
regulares y autómatas finitos
Teorema de Kleene.- Un lenguaje es regular si y sólo
si es aceptado por algún autómata finito.
10. Conversion de ER a AF
La prueba de que si un lenguaje es regular entonces es
aceptado por un AF consiste en dar un procedimiento para
transformar en forma sistemática una expresión regular en
un autómata finito que acepte su lenguaje.
Dicho procedimiento se describe a continuación:
La idea es hacer una transformación gradual que vaya
convirtiendo la ER en AF.
11. Para hacer la transformación gradual de ER a AFN se
requiere utilizar alguna representación de los lenguajes
regulares que sea intermedia entre las ER y los AFN.
12.
13. Conversion de AF a ER
La prueba de la parte “si” del teorema consiste en dar
un procedimiento para transformar en forma
sistemática un autómata finito en una expresión regular
equivalente.
14. Un procedimiento para hacerlo consiste en ir
eliminando gradualmente nodos de una GT, que
inicialmente es el AFN que se quiere transformar, hasta
que ´únicamente queden un nodo inicial y un nodo final.