EXPRESIONES REGULARES Y
 GRÁMATICAS REGULARES
        LENIN HERRERA
           07-0618
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.
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.
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, . . .}
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
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.
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
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
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.
CONVERSION DE AF A ER
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})
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:
GRAMATICAS REGULARES
EQUIVALENCIA DE EXPRESIONES
REGULARES Y AUT´OMATAS FINITOS

Lenin herrera

  • 1.
    EXPRESIONES REGULARES Y GRÁMATICAS REGULARES LENIN HERRERA 07-0618
  • 2.
    EXPRESIONES REGULARES • Lanotaci´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 DELENGUAJES 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 ERson 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ÑODE 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 LASREPRESENTACIONES 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.
  • 10.
  • 11.
    CONVERSI´ON DE ERA 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 AFA 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:
  • 13.
  • 14.