Sei sulla pagina 1di 21

Expresses Regulares

Definies Equivalncia para Autmatos Finitos

Traduo dos slides do Prof. Jeffrey D. Ullman (Stanford University)

REs: Introduo
algbrica de descrever linguagens. As REs descrevem exatamente as RE s mesmas linguagens que as diversas formas de autmatos: as linguagens regulares. Se E uma expresso regular, ento L(E) a linguagem que ela define.

Expresses Regulares so um maneira

Operadores de REs
M, M ou em ambas. b Concatenao (L.M): conjunto de strings que podem ser formados tomando-se qualquer string em L e concatenando-se esse string com qualquer string em M. Fechamento (L*): conjunto de strings que podem ser ( ) j g q p formados tomando-se qualquer nmero de strings de L e concatenando-se todos eles.
3

Unio (LM): conjunto de strings que esto em L ou

REs: Definio
Podemos descrever as expresses regulares recursivamente. No s descrevemos quais as REs vlidas mas, para cada RE E, lid d E g g q descrevemos a linguagem que ela representa (L(E)).
4

REs: Definio (2)


Base 1: Se a qualquer smbolo, ento a uma RE, e L(a) = {a}.
Note: {a} a linguagem contendo uma string, e esta string de comprimento 1.

Base 2: uma RE, e L() = {}. RE {} Base 3:

uma RE, e L() =

REs: Definio (3)


Induo 1: Se E1 e E2 so expresses regulares, ento E1+E2 uma expresso g , ( ( ) ( ) regular, e L(E1+E2) = L(E1)L(E2). Induo 2: Se E1 e E2 so expresses regulares, regulares ento E1E2 uma expresso regular, e L(E1E2) = L(E1)L(E2).
Concatenao : o conjunto de strings wx tal que w
est em L(E1) e x est em L(E2) t t ).
6

REs: Definio (3)


Induo 3: Se E uma RE, ento E* uma RE, e L(E*) = (L(E))*.
Fechamento, or fechamento de Kleene = conjunto j

de strings w1w2wn, para algum n > 0, onde cada wi est em L(E). Note: quando n=0, a string n 0 .

Precedncia de Operadores
A ordem de precedncia : * (mais alta) . concatenao + (mais baixa). Parnteses podem ser usados com a finalidade de agrupar operandos exatamente como pretendemos.

Exemplos: REs
L(01) = {01}. L(01+0) = {01, 0}. L(0(1+0)) = {01, 00}. {01 00}
Note a ordem de precedncia dos operadores.

L(0*) = {, 0, 00, 000, }. L((0+10) (+1)) L((0+10)*(+1)) = todos strings de 0s e 0s 1s sem dois 1s consecutivos.
9

Exerccios: REs
Crie expresses regulares = {0,1}: 1. 1 {w | w contm um nico 1} 2. {w | w contm pelo menos um 1} 3. 3 {w | w contm a string 001 como substring} 4. {w | |w| par} 5. 5 {w | |w| um mltiplo de 3} 6. {w | 6o smbolo direita/esquerda 1}

10

Equivalncia de RE s e REs Autmatos


Devemos mostrar que: Toda linguagem definida por uma expresso regular t b d fi id l tambm definida por um autmato. Toda linguagem definida por um autmato tambm definida por uma expresso regular.
11

Converso de RE em -NFA
Prova uma induo sobre o nmero de operadores (+, concatenao, *) no RE.

12

RE para -NFA: Base


Smbolo a: :
: a

13

RE para -NFA: Induo 1 Unio


E1

E2

E1

E2

14

RE para -NFA: Induo 2 NFA: Concatenao

E1

E2

E1E2

15

RE para -NFA: Induo 3 Fechamento


E*
16

DFA-para-RE
Calcular os caminhos de um DFA. ou Eliminao de estados. estados
(Sees 3.2.1 e 3.2.2 do livro do Hopcroft).

17

Resumo
Cada tipo de autmato estudado (DFA, NFA, -NFA), e as expresses regulares, ) l definem exatamente o mesmo conjunto j de linguagens: linguagens regulares.

18

Leis Algbricas para REs


Unio e concatenao so semelhantes a adio e multiplicao, respectivamente.
+ comutativa and associativa; concatenao associativa. Concatenao distribui sobre +. + Exceo: Concatenao no comutativa.

19

Identidades e Aniquiladores

a identidade para +.
R+

= R.

a identidade para concatenao concatenao.


R = R = R. = R =

o aniquilador para a concatenao.


.

20

Exerccios: REs
Escreva expresses regulares correspondentes s seguintes linguagens: g g g 1. Conjunto de strings sobre o alfabeto {a,b,c} que contm pelo menos um a e pelo menos um b. 2. Conjunto de todos os strings de 0s e 1s tais que todo par de 0s adjacentes aparece antes de qualquer par de 1s adjacentes. 3. O conjunto de todos strings que no contm o substring 101. b t i 101 4. O conjunto de todos os strings que tm no mximo um par de 0s consecutivos ou um par de 1s consecutivos 0s 1 s consecutivos.
21

Potrebbero piacerti anche