2. EXPRESIONES REGULARES
• La notaci´on de conjuntos nos permite describir los lenguajes
regulares, pero nosotros
• quisiéramos una notación en que las representaciones de los
lenguajes fueran simplemente
• text (cadenzas de characters).
• 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 “” 2 ER
• 2. Si 2 , entonces 2 ER.
• 3. Si E1,E2 2 ER, entices “(”E1“+”E2“)” 2 ER, “(”E1“•”E2“)” 2
ER, “(”E1“)”
• 2 ER.
3. DEFINICIÓN FORMAL DE LENGUAJES
REGULARES
• Definición.- Un lenguaje L es regular si y solo si se cumple
al menos una de las condiciones
• siguientes:
• L as finite;
• L es la unión o la concatenación de otros lenguajes
regulares R1 y R2, L = R1 [ R2 o
• L = R1R2 respectivamente.
• L es la cerradura de Keene de algún lenguaje regular, L
= R.
• Esta definición nos permite construir expresiones en la
notación de conjuntos que representan
• languages regulars.
4. EXPRESSIONS REGULARS E
GRAMMATICUS
REGULARS
• Languages Regulars
• 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 = {abs, Abba, Ababa, abababab, . . .}
• En este ejemplo se aprecia que las palabras de L1 son
simplemente repeticiones de “ab”
• cualquier numero de veces. Aqu´ı la “regularidad”
consiste en que las palabras contienen “ab”
• alg´un n´umero de veces.
• Otro ejemplo mas complicado serıa el lenguaje L2:
• L2 = {abc, cc, Abba, abccc, abbacy, . . .}
5. SIGNIFICADO
• Las ER son simplemente formulas cuyo proposito 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 {}.
• El significado de una ER es una función L : ER ! 2 (esto es, una función
• que toma como entrada una expresión regular y entrega como salida
un lenguaje), definida
• de la manera siguiente:
• 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
6. 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.
7. EQUIVALENCIES DE EXPRESSIONS
REGULARS
• Las expresiones regulares no representan en forma ´única a un lenguaje -esto es, la función
• L : ER !2 descrita arriba no es inyectaba. 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.
• A continuación damos una lista de las principales equivalencias de ER, clasificadas en 9
• groups:
• 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
• La
8. LIMITES 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 limite 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 vs., que es el conjunto
• infinite {", a, b, abs, be, acai, sab, . . .}, pureed seer represent ado
mediate la cadenza de characters
• “{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
9. EQUIVALENCIA DE EXPRESIONES
REGULARES Y AUTÓMATAS FINITES
• 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 Keene.- Un lenguaje es regular si y
s´olo si es aceptado por algún autómata
• finito.
11. CONVERSI´ON 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´on:
• La idea es hacer una transformación gradual que vaya conviertiendo la ER en AF.
• Para hacer la transformacion gradual de ER a AFN se requiere utilizar alguna representaci
• ´on de los lenguajes regulares que sea intermedia entre las ER y los AFN.
• Una posible soluci´on es el uso de las gr´aficas de transici´on. Estas ´ultimas son esencialmente
• AFN en que las etiquetas de las flechas tienen expresiones regulares, en lugar de
• palabras. Las gr´aficas de transici´on (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 a s´ı mismas.
• Ahora procederemos a describir el procedimiento de transformación de ER a AFN.
• A partir de una ER es trivial obtener una GT que acepte el mismo lenguaje. En efecto,
• sea R una ER; entonces, si
• G1 = ({q0, q1},, {(q0,R, q1)}, q0, {q1})
12. CONVERSION DE AF A ER
• La prueba de la parte “si” del teorema consiste en
dar un procedimiento para transformar
• en forma sistem´atica un aut´omata finito en una
expresi´on 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 ´unicamente queden un
nodo
• inicial y un nodo final.
• Dicho procedimiento comprende los siguientes
pasos: