Está en la página 1de 22

Motivacin

Algoritmo
Resultados Adicionales

Expresiones Regulares y Derivadas Formales


Las Derivadas Sucesivas.

Universidad de Cantabria

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Esquema

Motivacin

Algoritmo

Resultados Adicionales

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Derivadas Sucesivas

Recordemos que los lenguajes de los prefijos dan informacin


sobre los lenguajes.

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Derivadas Sucesivas
La idea es derivar las derivadas y utilizar el siguiente
resultado:
Lemma
Sea L un lenguaje sobre el alfabeto generado por una
gramtica regular G := (V , , q0 , P). Sea a un smbolo del
alfabeto. Entonces, la siguiente gramtica Ga = (Va , , qa , Pa )
genera el lenguaje a L donde:
qa es una nueva variable (no presente en V ) y
Va := V {qa }.
Pa := P {qa 7 aq0 }.

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Derivadas Sucesivas
Definicin (Derivadas Sucesivas de una Expresin Regular)
Sea = {a1 , . . . , an } un alfabeto finito, una palabra
sobre el alfabeto y una expresin regular. Definiremos la
derivada D () mediante el proceso siguiente:
Si = es la palabra vaca, D () = .
Si || = 1 (es una palabra de longitud 1) y, por tanto,
= ai , definimos D () = Dai (), conforme a la
definicin de derivada anterior.
Si = a1 con a y 1 , definimos
D () = Dai (D1 ()).

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Derivadas Sucesivas

Al conjunto de derivadas sucesivas la denotaremos:


Der () := {D () : }.
El conjunto de derivadas sucesivas es un conjunto finito, por lo
tanto es posible calcularlo.

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Algoritmo

La entrada de nuestro algoritmo es una expresin regular


sobre un alfabeto finito .

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Algoritmo

Hallar todos los elementos del conjunto


Der () := {D () : }.

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Algoritmo

Definir un conjunto finito V de variables, biyectable al conjunto


Der (). Llamaremos a la variable inicial q0 y se relacionar con
la expresin .

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Algoritmo

Definir P1 := 1 y

P2 :=

{q 7 },
,

si L()
en caso contrario

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Algoritmo

Mientras P2 6= P1 hacer
P1 := P2
Para cada Der () hacer
Para cada a hacer
Hallar := Da (), p := E() y q := E() en V .
Si L(), hacer P2 := P2 {q 7 a}.
Si 6= , , hacer P2 := P2 {q 7 ap}.
tomar siguiente

tomar siguiente

finaliza mientras
La gramtica G = (V , , q0 , P2 ).

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Ejemplo

Tomemos la expresin regular a(a + b) b, empecemos


calculando el conjunto de las derivadas:
Der () = {, a(a + b) b, (a + b) b, (a + b) b + }

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Ejemplo

Da (a(a + b) b) = (a + b) b,
Da ((a + b) b) = (a + b) b,
Da ((a+b) b+) = (a+b) b,

Db (a(a + b) b) = .

Db ((a + b) b) = (a + b) b + .
Db ((a+b) b+) = (a+b) b+.

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Ejemplo

Relacionemos todas las variables con las expresiones


regulares:
q0 = a(a + b) b, q1 = (a + b) b, q2 = (a + b) b + .
Estas son las producciones
q0
q1
q2

7 aq1 ,
7 aq1 |bq2 |b,
7 aq1 |bq2 .

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Ejemplo

Relacionemos todas las variables con las expresiones


regulares:
q0 = a(a + b) b, q1 = (a + b) b, q2 = (a + b) b + .
Estas son las producciones
q0
q1
q2

7 aq1 ,
7 aq1 |bq2 |b,
7 aq1 |bq2 .

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Resultados Adicionales

Usando las propiedades adicionales de las expresiones


regulares podemos suponer = 1 + . . . + n ( Forma
Disyuntiva Normal).

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Resultados Adicionales
Lemma
Sea L1 y L2 dos lenguajes (regulares) sobre el alfabeto
generados respectivamente por gramticas G1 = (V1 , , q1 , P1 )
y G2 = (V2 , , q2 , P2 ), entonces L1 L2 es tambin un lenguaje
(regular) generado por una gramtica. La gramtica que
genera la unin es una nueva gramtica G = (V , , q0 , P) dada
por las reglas siguientes:
1

q0 6 V1 V2 , es decir es una nueva variable.

V := V1 V2 {q0 }.

P := P1 P2 {q0 7 q1 | q2 }.

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Resultados Adicionales

En el caso de unin finita L = L1 Lm , el Lema anterior se


puede extender de la forma obvia. Por tanto, la unin finita de
lenguajes generados por gramticas (resp. regulares) es un
lenguaje generado por una gramtica (resp. regulares).

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Ejemplo

El lenguaje a + b tiene una gramtica que se puede hallar


utilizando ese lema:
q0
q1
q2

7 q1 |q2 ,
7 aq1 |,
7 bq2 |.

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Ejemplo

La gramtica que se obtiene aplicando el algoritmo es:


q0
q1
q2

7 aq1 |bq2 |,
7 aq1 |a,
7 bq2 |b.

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Posibles Transformaciones

La primera gramtica puede ser transformada, simplemente


sustituyendo las producciones de q1 en q0 , lo que quiere decir
que el nmero de gramticas que generan el mismo lenguaje
es infinito.

Expresiones Regulares

Motivacin
Algoritmo
Resultados Adicionales

Conclusiones

Las gramticas que estamos buscando no son nicas. Para


utilizar el lema que se ha presentado es necesario tener la
expresin regular en Forma Disyuntiva Normal.

Expresiones Regulares

También podría gustarte