Está en la página 1de 17

Unidad II Expresiones

Regulares
Tecnológico Nacional de México
2020

M.A.S.C. Arturo Iván Grajales


Vázquez.
Competencia a desarrollar.

Crear y reconocer ER mediante un lenguaje de


programación o un analizador léxico.
Subtemas.

2.1. Definición formal de una ER.


2.2. Operaciones.
2.3. Aplicaciones en problemas reales.
Criterios de evaluación
Actividades 25%
Investigación 25%
Avance proyecto 50%
100%

Duración : 3 semanas
2.1. Definición formal de una ER.
Las Expresiones regulares permiten especificar la
construcción de analizadores léxico que son las primera
etapas en la construcción de un lenguaje de programación
implementado como compilador o interprete.
2.2.- Operaciones.
Por convenio de notación, las expresiones regulares se define
con las siguientes propiedades.

Propiedad Representación Significado


formal
Unión L∪M {x|x esta en L o x esta en M}
Concatenación LM {xy|x esta en L y y esta en M}
Cerradura de Kleene L*

L*= U
i=0
Li
L* significa “ cero o mas
Cerradura positiva L+ concatenacion de L”

L =U
+
i=1
Li
L+ significa “ una o mas
concatenaciones de L”
Precedencia en las expresiones regulares.

Para simplificar la notación de una expresión regular, las reglas en


el convenio de precedencia queda como sigue:

1. Cerradura *, +
2. Concatenación
3. Unión
Alfabeto Expresión Expresión 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,c,d} {a} +
∪ {b}
({a}{b} ∪{c}{d})* a+
|b
(ab|cd)* a,b,aa,aaa,aaaa,….
ε,ab,cb,abcdcdab,cdcdcdab,.
({a}{b}+ ∪{c}* {d})* (ab+|c*d)* ε,ab,d,abbbcccd,abdabd,abb
bbdabd,...
Ejemplo:

Expresión 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,aaa…b,ccd,cccd,ccc…d,….
Algebra de expresiones regulares.
Si se extiende los conceptos de la teoría de conjunto a los
lenguajes que son reconocidos por las expresiones
regulares, se obtiene las siguientes propiedades:

Axioma Descripción
a|b=b|a | es conmutativo.
a|(b|c)=(a|b)|c | es asociativo.
(ab)c=a(bc) La concatenación es asociativa
a(b|c)=ab|ac La concatenación distribuye sobre |
(a|b)c=ac|bc
εr=r ε es el elemento de identidad para la
rε=r concatenación.
r*=(r|ε)+ La relación entre * y ε
r**=r* * Es idempotente
Ejemplos:

Expresión regular redundante Expresión 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.
Diseño de expresiones regulares.

Para definir de manera rápida o directa un lenguaje, se recurre a un


diagrama arbitrario que representa el patrón de comportamiento de
un lenguaje; tal diagrama se conoce como diagrama sintáctico. Este
diagrama, en este momento, sirve para definir un lenguaje de
manera directa.

Primitivas.

Las primitivas pretende definir la técnica inicial para diseñar la


expresión regular con relación al lenguaje propuesto por el
diagrama sintáctico, sin embargo, esta definición es una
recomendación. No existe ningún formalidad para realizar la
conversión, literalmente el diseño de la expresión regular es “ a
ojo de buen cubero “.
Diagramas.
Unión
Concatenación
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)*

También podría gustarte