Expresiones regulares y gramáticas

880 views

Published on

Nestor Alduey
Diogenes

  • Be the first to comment

  • Be the first to like this

Expresiones regulares y gramáticas

  1. 1. Expresiones Regulares y GramáticasRegulares.
  2. 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. 3. Definición formal de LenguajesRegulares• 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. 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 “Φ” ∈ ER2. Si σ ∈ Σ, entonces σ ∈ ER.3. Si E1, E2 ∈ ER, entonces “(”E1“+”E2“)” ∈ ER, “(”E1“•”E2“)” ∈ ER,“(”E1“)∗”∈ ER.
  5. 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. 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. 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. 8. Equivalencias de ExpresionesRegulares• 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. 9. Límites de las representacionestextuales• 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. 10. Equivalencia de expresiones regulares yautómatasfinitos• 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. 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. 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. 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. 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. 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)

×