16
Robín Peña 12-0914 Noel Gutiérrez 12-0723

Expresiones regulares y gramaticas

Embed Size (px)

Citation preview

Page 1: Expresiones regulares y gramaticas

Robín Peña 12-0914

Noel Gutiérrez 12-0723

Page 2: Expresiones regulares y gramaticas

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, . . .}

Definicíon.- 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ón 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 algun lenguaje regular, L = R.

Page 3: Expresiones regulares y gramaticas

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, entonces “(”E1“+”E2“)” 2 ER, “(”E1“•”E2“)” 2 ER, “(”E1“)”

2 ER.

Las comillas “ ” enfatizan el hecho de que estamos definiendo cadenas de texto, no expresiones matemáticas 3. Es la misma diferencia que hay entre el carácter ASCII “0”, que se puede teclear en una terminal, y el número 0, que significa que se cuenta un conjunto sin ningún elemento.

Page 4: Expresiones regulares y gramaticas

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 ER5. L( “(”R“+”S“)” ) = L(R) [ L(S),R, S 2 ER6. L( “(”R“)” ) = L(R),R 2 ER

Page 5: Expresiones regulares y gramaticas

Ejemplo.- Obtener una ER para el lenguaje en el alfabeto {a, b, c} en que las palabras contienenexactamente una vez dos b contiguas. Por ejemplo, las palabras aabb, babba, pertenecen al lenguaje, pero no aaba, abbba ni bbabb.

Para resolver este problema, expresamos primero la estructura de la ER de la manerasiguiente:

< contexto1 > bb < contexto2 >

Podemos ver que en esta expresión aparecen directamente las bb que deben estar en la ER, rodeadas por otras dos ER, que son < contexto1 > y < contexto2 >. Ahora el problema es determinar qu´e ER corresponden a < contexto1 > y < contexto2 >, lo cual es un su problema del problema original. El lenguaje de < contexto1 > comprende a las palabras que no tienen bb y además no terminan en b. Esto es equivalente a decir que toda b esta seguida de una a o una c.

Esto quiere decir que la ER de este contexto va ser de la forma:(. . . b(a + c) . . .)

donde los detalles que faltan están representados por las “. . .”. Lo que falta por considerares que puede haber cualquier cantidad de a’s o c’s en el < contexto1 >, por lo que dichocontexto queda como:

(b(a + c) + a + c)

Similarmente se puede obtener la expresión para < contexto2 >, que es (a + c + (a + c)b),por lo que finalmente la ER del problema es:

(b(a + c) + a + c)bb(a + c + (a + c)b)

Page 6: Expresiones regulares y gramaticas

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

Page 7: Expresiones regulares y gramaticas

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.

Page 8: Expresiones regulares y gramaticas

Teorema de Kleene.- Un lenguaje es regular si y solo si es aceptado por algún autómata finito.

Page 9: Expresiones regulares y gramaticas

Una posible solución es el uso de las graficas de transición. Estas ´ultimas 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.

Page 10: Expresiones regulares y gramaticas

Un procedimiento para hacerlo consiste en ireliminando gradualmente nodos de unaGT, que inicialmente es el AFN que se quieretransformar, hasta que únicamente queden unnodo inicial y un nodo final.

Page 11: Expresiones regulares y gramaticas

1. El primer paso en este procedimientoconsiste en añadir al autómata finito unnuevo estado inicial i, mientras que elantiguo estado inicial q0 deja de serinicial, y un nuevo estado final f, mientrasque los antiguos estados finales qi ∈ Fdejan de ser finales;

2. El segundo paso consiste en eliminarnodos intermedios en la GT.

Page 12: Expresiones regulares y gramaticas
Page 13: Expresiones regulares y gramaticas

Una gramática es un conjunto de reglas paraformar 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 α → β, endonde tanto α como β son cadenas de símbolos endonde pueden aparecer tanto elementos del alfabetoΣ como unos nuevos símbolos, llamados variables.

Los símbolos que no son variables son constantes.

Page 14: Expresiones regulares y gramaticas

Formalizamos estas nociones con las siguientesdefiniciones:

Definición.- Una gramática regular es uncuá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 finitode V × (ΣV ∪ Σ).S, el símbolo inicial, es un elemento de V

Page 15: Expresiones regulares y gramaticas

Teorema.- La clase de los lenguajes generadospor alguna gramática regular es exactamentela de los lenguajes regulares.

Limitaciones de los lenguajes regulares

Los AF están limitados a los estados de quedisponen como único medio para “recordar” laserie de símbolos recibidos hasta un momento dado.

Page 16: Expresiones regulares y gramaticas

Teorema.- Si L es un lenguaje regularinfinito, entonces existen cadenas x, y, z talesque

y 6= ε, y xynz ∈ L, para algún n ≥ 0.

Lo que este resultado establece esque, suponiendo que cierto lenguaje esregular, entonces forzosamente dicholenguaje debe contener palabras en que unasubcadena se repite cualquier número deveces.