Vous êtes sur la page 1sur 16

Instituto Tecnolgico Superior

De Coatzacoalcos
2017

M.A.S.C. Arturo Ivn Grajales Vzquez.


Competencia a desarrollar.

Crear y reconocer ER mediante un lenguaje de


programacin o un analizador lxico.
Subtemas.

2.1. Definicin formal de una ER.


2.2. Operaciones.
2.3. Aplicaciones en problemas reales.
2.1. Definicin formal de una ER.
Las Expresiones regulares permiten especificar la
construccin de analizadores lxico que son las primera
etapas en la construccin de un lenguaje de programacin
implementado como compilador o interprete.
2.2.- Operaciones.
Por convenio de notacin, las expresiones regulares se define
con las siguientes propiedades.

Propiedad Representacin Significado


formal
Unin LM {x|x esta en L o x esta en M}

Concatenacin LM {xy|x esta en L y y esta en M}

Cerradura de Kleene L*
L*= U Li
i=0
L* significa cero o mas
concatenacion de L
Cerradura positiva L+
L+= U
i=1
Li
L+ significa una o mas
concatenaciones de L
Precedencia en las expresiones regulares.

Para simplificar la notacin de una expresin regular, las reglas en


el convenio de precedencia queda como sigue:

1. Cerradura *, +
2. Concatenacin
3. Unin
Alfabeto Expresin Expresin cadena
simplificada
={a} {a} a a
{a}* a* ,a,aa,aaa,aaaa,
={a,b} {a} {b} a|b a,b
{a} {b} ab ab
({a} {b})* (a|b)* ,a,b,ab,ba,abaab,.
{a} {b}* a|b* ,a,b,bb,bbb,bbbb,.
{a}+ {b} a+|b a,b,aa,aaa,aaaa,.
={a,b,c,d} ({a}{b} {c}{d})* (ab|cd)* ,ab,cb,abcdcdab,cdcdcdab,.
({a}{b}+ {c}* {d})* (ab+|c*d)* ,ab,d,abbbcccd,abdabd,abb
bbdabd,...
Ejemplo:

Expresin Cadenas
L=a*b*c+d+e cde,abcde,acde,bcde,aaabbccddde,
L=(ab)*c(de)+ cde,adcde,ababababcdedede,ababcdededede,.
L=01|0 01,0
L=(01|0)* ,0,01,00101000101000,01010101,
L=(ab)*|(cd)* ,ab,cd,abababab.,cdcdcdcd,.
L=a+b|c+d ab,cd,aab,aaab,aaab,ccd,cccd,cccd,.
Algebra de expresiones regulares.
Si se extiende los conceptos de la teora de conjunto a los
lenguajes que son reconocidos por las expresiones
regulares, se obtiene las siguientes propiedades:

Axioma Descripcin
a|b=b|a | es conmutativo.
a|(b|c)=(a|b)|c | es asociativo.
(ab)c=a(bc) La concatenacin es asociativa
a(b|c)=ab|ac La concatenacin distribuye sobre |
(a|b)c=ac|bc
r=r es el elemento de identidad para la
r=r concatenacin.
r*=(r|)+ La relacin entre * y
r**=r* * Es idempotente
Ejemplos:

Expresin regular redundante Expresin regular simplificada


1 1
(abc) abc
aa* a+
(ab)** (ab)*
(001)*(001)* (001)*
(001)(001)* (001)+
(a|)+|(bcd|)+ a*|(bcd)*
2.3.- Aplicaciones en problemas
reales.
Diseo de expresiones regulares.

Para definir de manera rpida o directa un lenguaje, se recurre a un


diagrama arbitrario que representa el patrn de comportamiento de
un lenguaje; tal diagrama se conoce como diagrama sintctico. Este
diagrama, en este momento, sirve para definir un lenguaje de
manera directa.

Primitivas.

Las primitivas pretende definir la tcnica inicial para disear la


expresin regular con relacin al lenguaje propuesto por el
diagrama sintctico, sin embargo, esta definicin es una
recomendacin. No existe ningn formalidad para realizar la
conversin, literalmente el diseo de la expresin regular es a
ojo de buen cubero .
Diagramas.
Unin
Concatenacin
a
a b

b L=ab

L=a|b

Cerradura ( * ) Cerradura ( + )

L=a* L=a+
Ejemplo:

a b c d

L=(ab)+cd(ecd)*

a b d

c e

L=abc*d(ed)*
Ejemplo:

a d

c b

b a

L=a(ba|ca)* c
L=a((b|c)a)*
L=a((ba)*(ca)*)*
e

L=a(b(db)*a|c(ec)*a)*

Vous aimerez peut-être aussi