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, . . .}
Un lenguaje L es regular si y sólo si se cumple al menos una de las condiciones siguientes:
• Es finito.
L { •
•
Es la unión o la concatenación de otros lenguajes regulares R1 y R2, L = R1
[ R2 o L = R1R2 respectivamente.
Es la cerradura de Kleene de algún lenguaje regular, L = R.
3. Expresiones Regulares
El conjunto ER de las expresiones regulares sobre Σ contiene las cadenas en el alfabeto Σ∪
{“∧”, “+”, “•”, “∗”, “(”, “)”, “Φ”} que cumplen con lo siguiente:
• “∧” y “Φ” ∈ ER.
{ •
•
Si σ ∈ Σ, entonces σ ∈ ER.
Si E1, E2 ∈ ER, entonces “(”E1“+”E2“)” ∈ ER, “(”E1“•”E2“)” ∈ ER, “(”E1“)∗” ∈ ER
Nota: Las comillas “ ” enfatizan el hecho de que estamos definiendo cadenas de
texto, no expresiones matemáticas
4. Significados 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 {}.
1. L(“”) = ; (el conjunto vacío)
2. L(“^”) = {"}
3. L(“”) = {}, 2 .
4. L(“(”R“•”S“)” ) = L(R)L(S),R, S 2 ER
5. L( “(”R“+”S“)” ) = L(R) [ L(S),R, S 2 ER
6. L( “(”R“)” ) = L(R),R 2 ER
5. Metodología de diseño de las ER
Al tratar de encontrar una ER para un lenguaje dado, mientras más complejo sea el
lenguaje es obvio que resulta más difícil encontrar por pura intuición dicha ER. En estos
casos puede ser conveniente trabajar en forma metódica.
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.
Ejemplo
Obtener una ER para el lenguaje en el alfabeto {a, b, c} en que las palabras contienen
exactamente una vez dos b contiguas. Por ejemplo, las palabras aabb, babba, pertenecen
al lenguaje, pero no aaba, abbba ni bbabb.
6. Equivalencias de Expresiones Regulares
1. R + S = S + R, (R + S) + T = R + (S + T), R + = + R = R, R + R = R
2. R • ^ = ^ • R = R, R • = • R = , (R • S) • T = R • (S • T)
3. R • (S + T) = R • S + R • T, (S + T) • R = S • R + T • R
4. R = R • R = (R) = (^ + R), = ^ = "
5. R = ^ + RR
6. (R + S) = (R + S) = (RS) = (RS)R = R(SR) 6= R + S
7. RR = RR, R(SR) = (RS)R
8. (RS) = ^ + (R + S)S, (RS) = ^ + R(R + S)
9. R = SR + T ssi R = ST, R = RS + T ssi R = TS
7. Limites de las representaciones
textuales
NOTA:
Un lenguaje puede tener varias representantes, sin embargo, se desea que una
cadena de caracteres no pueda representar mas de un lenguaje, pues de otro modo no
sabríamos a cual de ellos representa.
8. Limites de las representaciones
textuales
Por ejemplo, el conjunto de todas las palabras formadas por a’s y b’s, que es el conjunto
infinito {", a, b, ab, ba, aaa, aab, . . .}, puede ser representado mediante la cadena de
caracteres “{a, b}”, que es una palabra formada por caracteres del alfabeto {“a”,“b”,“{”,“}”,“”,
“,” }.
Como vemos en este ejemplo, una cadena de caracteres de 6 caracteres puede
representar todo un lenguaje infinito.
Teorema
El conjunto de los lenguajes en un alfabeto finito es incontable.
9. Equivalencia de Expresiones Regulares y
Autómatas Finitos
Aún cuando por varios ejemplos hemos visto que lenguajes representados por
expresiones regulares son aceptados por autómatas finitos, no hemos probado que para
cualquier expresión regular exista un autómata finito equivalente, y viceversa.
Esto se establece en el siguiente…
Teorema de Kleene
Un lenguaje es regular si y solo si es aceptado por algún autómata finito.
10. Conversión de ER a AF
Una posible solución es el uso de las graficas de transición. Estas últimas son
esencialmente AFN en que las etiquetas de las flechas tienen expresiones regulares, en
lugar de palabras. Las graficas de transición (GT) son por lo tanto quíntuplos (K,,, s, F)
en donde 2 K × ER × K.
Los AFN son un subconjunto propio de las GT, puesto que las palabras en las etiquetas
de un AFN pueden ser vistas como expresiones regulares que se representan así mismas.
11. Conversión 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
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.
12. Conversión de AF a ER
1- El primer paso en este procedimiento
consiste en añadir al
autómata finito un nuevo estado inicial i,
mientras que el
antiguo estado inicial q0 deja de ser inicial,
y un nuevo estado final f, mientras que los antiguos estados finales qi ∈ F dejan de ser
finales;
2- El segundo paso consiste
en eliminar nodos intermedios en la GT.
13. Conversión de AF a ER
Ejemplo:
Obtener una ER para el AFD de la figura siguiente:
Por lo que finalmente la ER buscada
es (bb∗a) ∗a(a + b) ∗ + (bb∗a)∗ bb∗.
14. Gramáticas Formales
Una gramática es un conjunto de reglas para formar correctamente las frases de un
lenguaje; así tenemos la gramática del español, del francés, etc
Una regla es una expresión de la forma α → β, en donde tanto α como β son cadenas de
símbolos en donde pueden aparecer tanto elementos del alfabeto Σ como unos nuevos
símbolos, llamados variables.
Los símbolos que no son variables son constantes.
15. Gramáticas Regulares
Definición
Una gramática regular es un cuádruplo (V, Σ, R, S) en donde:
V es un alfabeto de variables,
Σ es un alfabeto de constantes,
R, el conjunto de reglas, es un subconjunto finito de V × (ΣV ∪ Σ).
S, el símbolo inicial, es un elemento de V
16. Autómatas finitos y Gramáticas
Regulares
Teorema:
La clase de los lenguajes generados por alguna gramática regular es
exactamente la de los lenguajes regulares.
Limitaciones de los Lenguajes Regulares
Los AF están limitados a los estados de que disponen como único medio para “recordar”
la serie de símbolos recibidos hasta un momento dado.
17. El teorema de Bombeo
Teorema
Si L es un lenguaje regular infinito, entonces existen cadenas x, y, z tales que
y 6= ε, y xynz ∈ L, para algún n ≥ 0.
¿Qué?
Lo que este resultado establece es que, suponiendo que cierto lenguaje es
regular, entonces forzosamente dicho lenguaje debe contener palabras en que una
subcadena se repite cualquier número de veces.