Está en la página 1de 17

Expresiones Regulares

Clase 8
Expresiones Regulares
Un Autmata finito (AFD o AFN o AFN-c) es
un dispositivo para construir una mquina
que reconoce un lenguaje regular.

Una expresin regular es un forma
declarativa de describir un lenguaje regular.

Ejemplo: 01* + 10*
Expresiones Regulares
Las expresiones regulares se utilizan
en:
El comando UNIX de grep
La herramienta LEX y FLEX de UNIX.

Operaciones en lenguajes
Union
L M={w|w e L w e M}
Concatenacin
L.M={w|w=xy, x e L, y e M}
Potencia
L
0
={c}, L
1
=L, L
k+1
=L.L
k
Cerradura de Klenne:
L* =
i=0
inf
L
i


Construccin de
Expresiones Regulares
(expreg)
Definicin inductiva de regexps:

Base: c es una expreg y C es una
expreg. L(c)={c}, y L(C)= C.

Si a e E, entonces a es una expreg.
L(a)= {a}
Construccin de
Expresiones Regulares
(expreg)
Induccin
Si E es una expreg, entonces (E) es una expreg.
L((E))=L(E).

Si E y F son expreg, entonces E+F es una
expreg. L(E+F)=L(E) L(F).

Si E y F son expreg, entonces E.F es una
expreg. L(E.F)=L(E).L(F)

Construccin de
Expresiones Regulares
(expreg)
Si E es una expreg, entonces E* es una expreg.
L(E*)=(L(E))*

Ejemplo: Expresin regular para:
L={w e {0,1}* | 0 y 1 alternan en w}
(01)*+(10)*+0(10)*+1(01)*
Equivalente
(c+1)(01)*(c+0)

Orden de precedencia de
los operadores
1. Asterisco
2. Punto
3. Suma

Ejemplo: 01* + 1 se agrupa como
(0(1)*) + 1
Reglas de Simplificacin
(c + R)* = R*

R + RS* = RS*

CR = RC = C (aniquilacin)

C + R = R + C = R (Identidad)
Equivalencia entre AF s y
Expreg s.
Ya hemos demostrado que AFDs, AFNs y
AFN-c son equivalentes
Equivalencia entre AF s y
Expreg s.
Para demostrar que los AFs son
equivalentes a las expreg,
necesitamos:
1. Para cada AFD A podemos encontrar
(construir en este caso) una expreg R, tal
que L(R)=L(A).
2. Para toda expreg R existe una AFN-c A
tal que L(A) = L(R).
Equivalencia entre AF s y
Expreg s.
Teorema. Para cada AFD A=(Q,E,o,q
0
,F)
existe una expreg R tal que L(R)=L(A).

Prueba. Sean Q={1,2,,n}, donde el
estado inicial es 1.
Sea R
ij
(k)
una expreg que describe el
conjunto de etiquetas de todos los caminos
de A desde el estado i hasta el estado j
pasando nicamente a travs de estados
intermedios {1,2,,k}
Equivalencia entre AF s y
Expreg s.
Equivalencia entre AF s y
Expreg s.
R
ij
(k)
se define de forma inductiva.

Base: k=0, es decir, no hay estados
intermedios
Caso 1. i = j
R
ij
(0)
=
{aeE,o(i,a)=j}
a
Caso 2. i = j
R
ii
(0)
= (
{aeE,o(i,a)=j}
a) + c
Equivalencia entre AF s y
Expreg s.
Induccin
R
ij
(k)

=
R
ij
(k-1)
+
R
ik
(k-1)
(R
kk
(k-1)
)*R
kj
(k-1)

Expresin Final
Note que:
L(
jeF
R
1j
(n)
) = L(A)

Ejemplo
Encontrar R para A, donde
L(A)= {x0y,xe{1}* e y e{0,1}* }

También podría gustarte