SlideShare una empresa de Scribd logo
Lenguajes Formales y Teoría de
            Rina Familia
Autómatas




      Johanna Dotel 12-0617
      Paola Novas 12-0534
Expresiones Regulares y
            Gramáticas
             Regulares.
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 siguiente:

          L1 = {ab, abab, ababab, abababab, . . .}
son simplemente repeticiones de “ab” cualquier numero de
veces.
Otros ejemplos…


    L2 = {abc, cc, abab, abccc, ababc, . . .}
 sus palabras comienzan con repeticiones de “ab”,
 seguidas de repeticiones de “c”. definir lenguajes
 basados en la idea de repetir esquemas simples.
  Esta es la idea básica para formar los lenguajes
 Regulares.
   los lenguajes finitos son también regulares por definición.

    L3 = {anita, lava, la, tina} es regular.

    al combinar lenguajes regulares uniéndolos o
    concatenándolos, también se obtiene un lenguaje regular.

        L1 ∪ L3 = {anita, lava, la, tina, ab, abab, ababab,
abababab, . . .} es regular.

   También es regular una concatenacion como :

    L3L3 = {anitaanita,anitalava, anitala, anitatina, lavaanita,
    lavalava, lavala, lavatina, . . .}1
o   Podemos identificar que un lenguaje es regular si cumple
    con las siguientes condiciones


   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∗
    lenguaje que contiene todas las cadenas que son posibles de formar
    sobre
Expresiones Regulares
   Sea Σ un alfabeto. El conjunto ER de las expresiones regulares sobre
    Σ contiene las cadenas en el alfabeto Σ∪ {“∧”, “+”, “•”, “∗”, “(”,
    “)”, “Φ”} que cumplen con lo siguiente:

    “∧” y “Φ” ∈ ER

   Si σ ∈ Σ, entonces σ ∈ ER.

   Si E1, E2 ∈ ER, entonces “(”E1“+”E2“)” ∈ ER, “(”E1“•”E2“)” ∈ ER,
    “(”E1“)∗” ∈ ER.
    Las comillas “ ” enfatizan el hecho de que estamos definiendo cadenas de texto, no expresiones matemáticas.
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 {}.
Ejemplos.-
     Son ER en {a, b, c} las siguientes:

                     “a”, “((a+b))∗”, “((a•b)•c)”.

     No son ER:

                     “ab”, “((a • b(c)∗)”.
   Una palabra “empata” con una expresión regular si es
    parte del lenguaje que esta representa.
         La palabra vacía ε “empata” con la ER ∧

Una palabra de una letra como “a” empata con una ER
consistente en la misma letra “a”, “b” empata “b”, etc.
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. En
          estos casos puede ser conveniente trabajar
          en forma metódica.
   Ejemplo.- Obtener una ER para el lenguaje en el alfabeto {a, b, c}
    en que las palabras contienen exactamente 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 manera siguiente:
                         < 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 >.
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 considerar es que puede haber cualquier
cantidad de a’s o c’s en el < contexto1 >, por lo que dicho
contexto 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)∗
Un importante elemento de metodología -que se aplico en
este ejemplo- consiste en transformar los enunciados de
lenguajes de manera que sean más fácilmente
representables por
ER.
También puede ser ´útil modificar la forma lógica en
que se enuncian los lenguajes. Por ejemplo, el
enunciado “palabras que si empiezan en 00, terminan
en 11”, puede modificarse de la manera siguiente:
“palabras que ya sea no empiezan en 00 o bien
terminan en 11”, utilizando la conocida equivalencia
de lógica P ⇒ Q ≡ ¬P ∨ Q.


Ejemplo.- Obtener una ER que represente el lenguaje
en {a, b} tal que si una palabra contiene la subcadena
aa, entonces no debe contener bb.
Solución: Transformando lógicamente el enunciado, representamos la
condición “contiene la subcadena aa” por el símbolo Caa, y la
condición “no contiene bb” por ¬Cbb. Entonces la condición del
problema es: Caa ⇒ ¬Cbb
Equivalencias de Expresiones
  Regulares
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 (a∗b∗)∗ representan el
mismo lenguaje.
Sin embargo, en algunos casos resulta util aplicar
ecuaciones de equivalencia entre las ER, que son
expresiones de la forma ER1 = ER2, cuyo
significado es que el lenguaje de ER1 es el mismo
que el de ER2 (contienen las mismas palabras).
Por ejemplo, la equivalencia R + S = S
+ R quiere decir que la suma de
expresiones regulares es conmutativa,
por lo que si tenemos dos ER
especificas, como a ∗ y b ∗ab,
entonces la ER a ∗+b∗ab será
equivalente a la ER b∗ab+a∗, y ambas
representaran las mismas palabras.
A continuación damos una lista de las principales equivalencias
de ER, clasificadas en 9 grupos:

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∗)∗ = (R∗S∗)∗ = (R∗S)∗R∗ = R∗(SR∗)∗ 6= R∗ + S∗
7. R∗R = RR∗, R(SR)∗ = (RS)∗R
8. (R∗S)∗ = ∧ + (R + S)∗S, (RS∗)∗ = ∧ + R(R + S)∗
9. R = SR + T ssi R = S∗T, R = RS + T ssi R = T S∗
Las equivalencias de estos 9 grupos pueden usarse
para verificar que dos ER denotan el mismo
lenguaje. La técnica a usar para verificar que P =
Q, donde P, Q ∈ ER, es formar una serie de
equivalencias P = R1 = R2 = . . . = Rn = Q, usando
las equivalencias dadas arriba para hacer
reemplazamientos.
Ejemplo: Verificar que las ER (ab + a) ∗a y a(ba + a)∗ son
equivalentes, usando las equivalencias presentadas arriba.


Solución:
(ab + a)∗a = (a + ab)∗a -por (1);= (a∗ab)∗a∗a -por (6);=
([a∗a]b)∗[a∗a] -agrupamos terminos;
Gracias.

Más contenido relacionado

PPTX
Expresiones regulares y gramáticas
PPTX
Expresiones regulares y gramáticas
PPTX
Expresiones regulares y gramaticas
PPT
Expresiones regulares y gramaticas
PPTX
Expresiones regularesfinal
PPTX
Expresiones regulares y gramáticas
PPTX
Expresiones regulares
PPTX
Gramática de contexto libre abel rodriguez (08 1297)
Expresiones regulares y gramáticas
Expresiones regulares y gramáticas
Expresiones regulares y gramaticas
Expresiones regulares y gramaticas
Expresiones regularesfinal
Expresiones regulares y gramáticas
Expresiones regulares
Gramática de contexto libre abel rodriguez (08 1297)

La actualidad más candente (20)

PPTX
Lenin herrera
PPTX
Equivalencia de autómatas finitos y expresiones regulares.
PPTX
Expresiones regulares y grámaticas regulares ariel acosta
PDF
Expresiones regulares y gramáticas
PDF
Alfabetos-Lenguajes y Automatas 1
PPT
DOCX
Gramática y autómatas
PDF
De palabras y lenguajes
PPTX
Autómatas Finitos Deterministas y Lenguajes Formales
PPTX
Lenguajes regulares
PPSX
Lenguajes formales
PDF
Unidad 7 lenguajes gramaticas y automatas
PDF
ESPRESIONES REGULARES
PPT
Teoria de Automatas & Lenguajes Formales
PDF
Unidad 6 introduccion a los lenguajes formales
PPTX
Presentacion automata grupo 1 unibe 02-02-2018
PDF
Alfabeto, Cadenas, Lenguajes, y Problemas
PDF
Automatas-Lenguajes1-1 (1).pdf
PDF
Gramaticas y lic
Lenin herrera
Equivalencia de autómatas finitos y expresiones regulares.
Expresiones regulares y grámaticas regulares ariel acosta
Expresiones regulares y gramáticas
Alfabetos-Lenguajes y Automatas 1
Gramática y autómatas
De palabras y lenguajes
Autómatas Finitos Deterministas y Lenguajes Formales
Lenguajes regulares
Lenguajes formales
Unidad 7 lenguajes gramaticas y automatas
ESPRESIONES REGULARES
Teoria de Automatas & Lenguajes Formales
Unidad 6 introduccion a los lenguajes formales
Presentacion automata grupo 1 unibe 02-02-2018
Alfabeto, Cadenas, Lenguajes, y Problemas
Automatas-Lenguajes1-1 (1).pdf
Gramaticas y lic
Publicidad

Similar a Expresiones Regulares y Gramáticas (20)

PPTX
Expresiones regulares2.pdf
DOCX
Autómata finito no determinista e investigacion
PPTX
Expresiones Regulares
DOCX
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
PPTX
Lenguajes formales
PPTX
Lenguaje de operaciones segunda anny jimenez. ppt
PPT
Ejercicios
PDF
Gramaticas y lic
PDF
Notas_de_Logica.pdf......................
PDF
Notas_de_Logica matematicas fisica algebra
PDF
Lenguajes formales y teoría de autómatas I.pdf
PPTX
Calculo de Predicados
PPTX
301405_34-Tarea1-Danilo Coral.pptx
DOCX
Automatas propuestos
DOCX
Vanessaguzman
PDF
GRAMATICAS AMBIGUAS
PPTX
Presentación 2
PDF
Tema 11 expresiones regulares en java por gio
PPTX
Gramáticas formales
Expresiones regulares2.pdf
Autómata finito no determinista e investigacion
Expresiones Regulares
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Lenguajes formales
Lenguaje de operaciones segunda anny jimenez. ppt
Ejercicios
Gramaticas y lic
Notas_de_Logica.pdf......................
Notas_de_Logica matematicas fisica algebra
Lenguajes formales y teoría de autómatas I.pdf
Calculo de Predicados
301405_34-Tarea1-Danilo Coral.pptx
Automatas propuestos
Vanessaguzman
GRAMATICAS AMBIGUAS
Presentación 2
Tema 11 expresiones regulares en java por gio
Gramáticas formales
Publicidad

Expresiones Regulares y Gramáticas

  • 1. Lenguajes Formales y Teoría de Rina Familia Autómatas Johanna Dotel 12-0617 Paola Novas 12-0534
  • 2. Expresiones Regulares y Gramáticas Regulares.
  • 3. 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 siguiente: L1 = {ab, abab, ababab, abababab, . . .} son simplemente repeticiones de “ab” cualquier numero de veces.
  • 4. Otros ejemplos…  L2 = {abc, cc, abab, abccc, ababc, . . .} sus palabras comienzan con repeticiones de “ab”, seguidas de repeticiones de “c”. definir lenguajes basados en la idea de repetir esquemas simples. Esta es la idea básica para formar los lenguajes Regulares.
  • 5. los lenguajes finitos son también regulares por definición. L3 = {anita, lava, la, tina} es regular. al combinar lenguajes regulares uniéndolos o concatenándolos, también se obtiene un lenguaje regular. L1 ∪ L3 = {anita, lava, la, tina, ab, abab, ababab, abababab, . . .} es regular.  También es regular una concatenacion como : L3L3 = {anitaanita,anitalava, anitala, anitatina, lavaanita, lavalava, lavala, lavatina, . . .}1
  • 6. o Podemos identificar que un lenguaje es regular si cumple con las siguientes condiciones  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∗ lenguaje que contiene todas las cadenas que son posibles de formar sobre
  • 7. Expresiones Regulares  Sea Σ un alfabeto. El conjunto ER de las expresiones regulares sobre Σ contiene las cadenas en el alfabeto Σ∪ {“∧”, “+”, “•”, “∗”, “(”, “)”, “Φ”} que cumplen con lo siguiente:  “∧” y “Φ” ∈ ER  Si σ ∈ Σ, entonces σ ∈ ER.  Si E1, E2 ∈ ER, entonces “(”E1“+”E2“)” ∈ ER, “(”E1“•”E2“)” ∈ ER, “(”E1“)∗” ∈ ER. Las comillas “ ” enfatizan el hecho de que estamos definiendo cadenas de texto, no expresiones matemáticas.
  • 8. 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 {}. Ejemplos.- Son ER en {a, b, c} las siguientes: “a”, “((a+b))∗”, “((a•b)•c)”. No son ER: “ab”, “((a • b(c)∗)”.
  • 9. Una palabra “empata” con una expresión regular si es parte del lenguaje que esta representa. La palabra vacía ε “empata” con la ER ∧ Una palabra de una letra como “a” empata con una ER consistente en la misma letra “a”, “b” empata “b”, etc.
  • 10. 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. En estos casos puede ser conveniente trabajar en forma metódica.
  • 11. Ejemplo.- Obtener una ER para el lenguaje en el alfabeto {a, b, c} en que las palabras contienen exactamente 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 manera siguiente: < 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 >.
  • 12. 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 considerar es que puede haber cualquier cantidad de a’s o c’s en el < contexto1 >, por lo que dicho contexto queda como: (b(a + c) + a + c)∗
  • 13. 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)∗
  • 14. Un importante elemento de metodología -que se aplico en este ejemplo- consiste en transformar los enunciados de lenguajes de manera que sean más fácilmente representables por ER.
  • 15. También puede ser ´útil modificar la forma lógica en que se enuncian los lenguajes. Por ejemplo, el enunciado “palabras que si empiezan en 00, terminan en 11”, puede modificarse de la manera siguiente: “palabras que ya sea no empiezan en 00 o bien terminan en 11”, utilizando la conocida equivalencia de lógica P ⇒ Q ≡ ¬P ∨ Q. Ejemplo.- Obtener una ER que represente el lenguaje en {a, b} tal que si una palabra contiene la subcadena aa, entonces no debe contener bb.
  • 16. Solución: Transformando lógicamente el enunciado, representamos la condición “contiene la subcadena aa” por el símbolo Caa, y la condición “no contiene bb” por ¬Cbb. Entonces la condición del problema es: Caa ⇒ ¬Cbb
  • 17. Equivalencias de Expresiones Regulares 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 (a∗b∗)∗ representan el mismo lenguaje.
  • 18. Sin embargo, en algunos casos resulta util aplicar ecuaciones de equivalencia entre las ER, que son expresiones de la forma ER1 = ER2, cuyo significado es que el lenguaje de ER1 es el mismo que el de ER2 (contienen las mismas palabras).
  • 19. Por ejemplo, la equivalencia R + S = S + R quiere decir que la suma de expresiones regulares es conmutativa, por lo que si tenemos dos ER especificas, como a ∗ y b ∗ab, entonces la ER a ∗+b∗ab será equivalente a la ER b∗ab+a∗, y ambas representaran las mismas palabras.
  • 20. A continuación damos una lista de las principales equivalencias de ER, clasificadas en 9 grupos: 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∗)∗ = (R∗S∗)∗ = (R∗S)∗R∗ = R∗(SR∗)∗ 6= R∗ + S∗ 7. R∗R = RR∗, R(SR)∗ = (RS)∗R 8. (R∗S)∗ = ∧ + (R + S)∗S, (RS∗)∗ = ∧ + R(R + S)∗ 9. R = SR + T ssi R = S∗T, R = RS + T ssi R = T S∗
  • 21. Las equivalencias de estos 9 grupos pueden usarse para verificar que dos ER denotan el mismo lenguaje. La técnica a usar para verificar que P = Q, donde P, Q ∈ ER, es formar una serie de equivalencias P = R1 = R2 = . . . = Rn = Q, usando las equivalencias dadas arriba para hacer reemplazamientos.
  • 22. Ejemplo: Verificar que las ER (ab + a) ∗a y a(ba + a)∗ son equivalentes, usando las equivalencias presentadas arriba. Solución: (ab + a)∗a = (a + ab)∗a -por (1);= (a∗ab)∗a∗a -por (6);= ([a∗a]b)∗[a∗a] -agrupamos terminos;