Buscar

AspectosTeoricos_Aula02

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aspectos Teóricos da Computação 
1º semestre 2019 1/4 
 
Curso: Ciência da Computação 
Disciplina: Aspectos Teóricos da Computação 
Profª Luciana Ap. Oliveira Betetto 
 
Aula 02 
1. Expressões Regulares 
As linguagens aceitas por uma MEF podem ser descritas por expressões chamadas 
regulares. A Expressão Regular é uma maneira de descrever os conjuntos regulares. Usa-
se a expressão regular em construção de compiladores, editores, sistemas operacionais, 
protocolos, etc. 
Toda Linguagem Regular pode ser descrita por uma expressão simples denominada 
Expressão Regular. Trata-se de um formalismo denotacional, também considerado gerador, 
pois se pode inferir como construir (“gerar”) as palavras de uma linguagem. 
Uma expressão regular é definida a partir de conjuntos básicos e operações de 
concatenação (rs), união (r + s) e fecho (r*). 
 
Definição: Uma Expressão Regular (ER) sobre um alfabeto Σ (sigma) é definida como: 
a) Ø (lê-se phi) é uma ER e denota uma linguagem vazia. 
b) ξ é uma ER e denota a linguagem contendo exclusivamente a palavra vazia, ou 
seja { ξ }. 
c) x (símbolo do alfabeto Σ) é uma ER e denota a linguagem contendo a palavra {x}. 
d) se r e s são ER e denotam as linguagens R e S, respectivamente, então 
d.1) (r) é uma ER 
d.2) (r + s) é uma ER e denota a linguagem R  S 
d.3) (r . s) é uma ER e denota a linguagem RS = {uv | u Є R e v Є S} 
d.4) (r*) é uma ER e denota a linguagem R* 
Obs: A omissão de parênteses em uma ER é usual, respeitando as seguintes convenções: 
1. a concatenação sucessiva (*) tem precedência sobre a concatenação (.) e a união (+) 
2. a concatenação tem precedência sobre a união. 
 
Se r e s são ER e denotam as Linguagens R e S, respectivamente, então: 
a) L(r + s) = L(r)  L(s) 
b) L(r . s) = L(r) . L(s) ou L (r s) = L(r) L(s) 
c) L((r)) = L(r) 
d) L(r*) = (L(r))* 
Aspectos Teóricos da Computação 
1º semestre 2019 2/4 
Na tabela abaixo são apresentadas as Expressões Regulares e as correspondentes 
linguagens: 
 
Expressão Regular Linguagem representada 
aa Somente a cadeia aa 
ba* Cadeias que iniciam com b, seguida por zero ou mais a 
(a+b)* Todas as cadeias sobre {a, b} 
(a+b)*aa(a+b)* Todas as cadeias contendo aa como subcadeia 
a*ba*ba* Todas as cadeias contendo exatamente dois b 
(a+b)*(aa+bb) Todas as cadeias que terminam com aa ou bb 
(a+ ξ)(b+ba)* Todas as cadeias que não possuem dois a consecutivos 
 
Exercício: Defina as Linguagens, a partir das Expressões Regulares abaixo: 
(0+1)* : 
 
(0+1)*00(0+1)* : 
 
(0+1)*011 : 
 
 
Teorema: Se r é uma Expressão Regular (ER), então L(r) é uma Linguagem Regular. 
Prova: Por definição, uma linguagem é Regular se, e somente se, é possível construir um 
Autômato Finito (determinístico ou não), que reconheça a linguagem. 
a) Base da indução (Figura 1): seja r uma ER com zero operador. Então se tem: 
r =  (linguagem vazia) 
r = ξ (linguagem contendo exclusivamente a palavra vazia, ou seja, { ξ } ) 
r = x (x ϵ Ʃ) 
Os Autômatos Finitos: M1 = ( {q0}, , δ1, q0,  ) 
 M2 = ( {qf}, , δ2, qf, { qf } ) 
 M3 = ( {q0 ,qf}, {x}, δ3, q0, { qf } ) 
 
 
 
 
Figura 1. Base da Indução 
 
 
Aspectos Teóricos da Computação 
1º semestre 2019 3/4 
b) Hipótese da indução: seja r uma ER com até n (n>0) operadores. Suponha que é 
possível definir um AF que aceita a linguagem gerada por r; 
c) Passo da indução: seja r uma ER com (n+1) operadores. Então r pode ser representada 
por um dos seguintes casos, onde r1 e r2 possuem conjuntamente no máximo n operadores: 
 r = r1 + r2 
 r = r1 r2 
 r = r1* 
Portanto, por hipótese de indução é possível construir os autômatos: 
M1 = ( Q1, Ʃ1, δ1, q01, { qf1 } ) e M2 = ( Q2, Ʃ2, δ2, q02, { qf2 } ) 
tais que L(M1) e L(M2) = L(r2). 
 
Os Autômatos Finitos, que aceitam a linguagem L(r), para cada caso, são como segue: 
c.1) r = r1 + r2 M = ( Q1  Q2, Ʃ1  Ʃ2, δ, q0, { qf } ) 
c.2) r = r1 r2 M = ( Q1  Q2, Ʃ1  Ʃ2, δ, q01, { qf2 } ) 
c.3) r = r1* M = ( Q1  {q0 ,qf}, Ʃ1, δ, q0, { qf } ) 
 
Expressão Regular AF correspondente 
r = r1 + r2 
 
Adição de Expressões Regulares 
r = r1 r2 
 
 
Multiplicação de Expressões Regulares 
r = r1* 
 
Concatenações Sucessivas de Expressões Regulares 
 
ξ 
ξ ξ 
ξ 
ξ 
ξ 
ξ 
ξ 
ξ 
Aspectos Teóricos da Computação 
1º semestre 2019 4/4 
Exercícios: 
1) Dados os autômatos M1 e M2 como definidos abaixo, encontre M3 = M1 . M2. Assim, M3 
será o resultado da concatenação de M1 com M2. 
M1 reconhece a Linguagem L1 = {w | w possui aa como prefixo}, então 
M1 = {{q0, q1, q2, q3, q4}, {a,b}, δ1, q0, {q2}} 
 
M2 reconhece a Linguagem L2 = {w | w possui aa ou bb como subcadeia}, então 
M2 = {{q5, q6, q7, q8}, {a,b}, δ2, q5, {q8}} 
 
δ1 a b 
q0 q1 q3 
q1 q2 q4 
q2 q2 q2 
q3 q3 q3 
q4 q4 q4 
 
δ2 a b 
q5 q6 q7 
q6 q8 q7 
q7 q6 q8 
q8 q8 q8 
 
 
 
2) Construir um AFN que aceita a linguagem associada às seguintes ER: 
a) r = a* (aa + bb) 
b) r = (a + b)* (a + bb) 
c) r = (aa)* (bb)* b 
 
 
 
 
 
 
 
 
 
 
 
Referência: 
Menezes, Paulo Blauth. Linguagens Formais e Autômatos. 4ª Edição. Editora Sagra Luzzatto. Porto 
Alegre, 2001. 
 
Hopcroft, John E.; Ullman, Jeffrei D.; Motwani, Rajeev; Introdução À Teoria de Autômatos, 
Linguagens e Computação; 2ª edição; 2002; Ed Campus.

Continue navegando