Expresiones regulares
-
Upload
cokecarrillo -
Category
Documents
-
view
217 -
download
0
description
Transcript of Expresiones regulares
![Page 1: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/1.jpg)
Expresiones Regulares y Gramáticas
Regulares
Bismark Montero 12-0627
Johanny Saul Novas 12-0537
![Page 2: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/2.jpg)
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, . . .}
• Σ∪ {“∧”, “+”, “•”, “∗”, “(”, “)”, “Φ”}
![Page 3: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/3.jpg)
Definición formal de Lenguajes Regulares
• 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 algún lenguaje regular, L = R∗.
![Page 4: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/4.jpg)
Expresiones regulares
• La notación de conjuntos nos permite describir los lenguajes regulares, pero nosotros quisiéramos una notación en que las representaciones de los lenguajes fueran simplemente texto (cadenas de caracteres).
![Page 5: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/5.jpg)
Significado de las ER
• 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 {}.
![Page 6: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/6.jpg)
Metodología de diseño de
las ER
• Al tratar de encontrar una ER para un lenguaje dado, mientras mas complejo sea el lenguaje es obvio que resulta mas difícil encontrar por pura intuición dicha ER.
![Page 7: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/7.jpg)
Equivalencias de Expresiones Regulares
• Las expresiones regulares no representan en forma única a un lenguaje -esto es, la función L : ER →2 Σ∗.
![Page 8: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/8.jpg)
Cont.…
• 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 a un estar seguros de que representan dos lenguajes distintos. Por ejemplo, las ER
• (a + b)∗ y (a∗b∗)∗
• representan el mismo lenguaje.
![Page 9: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/9.jpg)
A continuación damos una lista de las principales equivalencias de ER, clasificadas en
5grupos:
• 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∗
![Page 10: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/10.jpg)
Equivalencia de expresiones regulares y autómatas finitos
• Aun 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 solo si es aceptado por algún autómata finito.
![Page 11: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/11.jpg)
Cont.… Ejemplo:
![Page 12: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/12.jpg)
Conversion 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.
![Page 13: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/13.jpg)
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.
![Page 14: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/14.jpg)
![Page 15: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/15.jpg)
![Page 16: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/16.jpg)
Gramáticas regulares
![Page 17: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/17.jpg)
Gramáticas regulares
• Es una gramática formal (N, Σ, P, S) que puede ser clasificada como regular izquierda o regular derecha. Las gramáticas regulares sólo pueden generar a los lenguajes regulares de manera similar a los autómatas finitos y las expresiones regulares.
![Page 18: Expresiones regulares](https://reader030.fdocuments.net/reader030/viewer/2022032515/563db998550346aa9a9ecc9c/html5/thumbnails/18.jpg)
Ejemplo.- Sea una gramática con las siguientes reglas:
• 1. S → aA
• 2. S → bA
• 3. A → aB
• 4. A → bB
• 5. A → a
• 6. B → aA
• 7. B → bA