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. Definición formal de Lenguajes
Regulares
• Definición.- Un lenguaje L es regular si y sólo si se cumple al menos una de
las condiciones siguientes:
• L es finito;
• L es la uni´on o la concatenación de otros lenguajes regulares R1 y R2, L =
R1 ∪ R2 o
• L = R1R2 respectivamente.
• L es la cerradura de Kleene de algún lenguaje regular, L = R∗
•.
• Esta definición nos permite construir expresiones en la notación de
conjuntos que representan lenguajes regulares.
4. Expresiones regulares
• Definición.- Sea Σ un alfabeto. El conjunto ER de las expresiones
regulares sobre Σ contiene las cadenas en el alfabeto Σ∪ {“∧”, “+”, “•”,
“∗”, “(”, “)”, “Φ”} que cumplen con lo siguiente:
1. “∧” y “Φ” ∈ ER
2. Si σ ∈ Σ, entonces σ ∈ ER.
3. Si E1, E2 ∈ ER, entonces “(”E1“+”E2“)” ∈ ER, “(”E1“•”E2“)” ∈ ER,
“(”E1“)∗”∈ ER.
5. Significado de las ER
• Las ER son simplemente fórmulas 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 {}.
6. Calcular el significado de una ER
• Para calcular el significado de una ER en particular, se aplica a ella la
función L. Las
• ecuaciones dadas arriba se aplican repetidamente, hasta que el
simbolo L desaparezca.
• Ejemplo.- El significado de la ER “(((a + b)) • a)” se calcula de la
manera siguiente:
• L(“(((a + b)) • a)”) = L(“((a + b))”)L(“a”) -usando 4,
• = L(“(a + b)”){a} -por 6 y 3,
• = (L(“a”) *L(“b”)){a} -aplicando 5,
• = ({a} [ {b}){a} = {a, b}{a} -usando 3 y simplificando.
7. Metodología de diseño de las ER
• 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ía que encontrar una ER.
8. Equivalencias de Expresiones
Regulares
• Las expresiones regulares no representan en forma única a un
lenguaje -esto es, la función L : ER !2 descrita arriba no es inyectiva.
Esto quiere decir que puede haber varias ER para un mismo lenguaje,
lo cual desde luego no es conveniente, pues al ver dos ER distintas no
podemos aun estar seguros de que representan dos lenguajes
distintos. Por ejemplo, las ER (a + b) y (ab) representan el mismo
lenguaje.
9. Límites de las representaciones
textuales
• Nos podemos preguntar que tantos lenguajes se pueden representar
con las ER. En otras secciones mostraremos que dichos lenguajes
coinciden con los que pueden ser aceptados por algún autómata
finito. Por lo pronto, en esta sección vamos a establecer un límite que
existe no solamente para las ER, sino para cualquier forma de
representar lenguajes mediante texto
• 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”,“{”,“}”,“”, “,”}.
10. Equivalencia de expresiones regulares y
autómatas
finitos
• A un 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 sólo si es aceptado
por algún autómata finito.
11. Conversión 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.
12. 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.
13. Gramáticas regulares
• La representación de los lenguajes regulares que aquí estudiaremos
se fundamenta en la noción de gramática formal. Intuitivamente, 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. La formalización que presentaremos de la noción de
gramática es debida a N.
• Chomsky [4], y está basada en las llamadas reglas gramaticales
14. Gramáticas regulares
• Nosotros nos vamos a interesar por el momento en las gramáticas
cuyas reglas son de la forma A ! aB o bien A ! a, donde A y B son
variables, y a es un carácter terminal. A estas gramáticas se les llama
regulares.
15. • 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 .
• Por ejemplo, la gramática que presentamos arriba se representaría
formalmente como:
• ({S, A,B}, {a, b}, {(S, aA), (S, bA), (A, aB), (A, bB), (A, a), (B, aA), (B, bA)},
S)