Professional Documents
Culture Documents
Uma expressão regular é definida a partir de conjuntos (lingua- A omissão de parênteses em uma ER é usual, respeitando as
gens) básicos e operações de concatenação e união e oferece um convenções citadas no slide acima.
modo declarativo de expressar as cadeias que queremos aceitar.
As expressões regulares são consideradas adequadas para a comu-
nicação homem × homem e, principalmente, para a comunicação
homem × máquina.
Exemplos de ER
Autômatos Finitos
ER Linguagem Representada
aa somente a palavra aa • recebe como entrada uma string
ba∗ iniciam com b seguido por 0 ou mais a • não produz saı́da
(a+b)∗ todas as palavras sobre { a, b } • indica se a entrada é aceita ou não
Qual a linguagem correspondente as ER abaixo?
• memória fixa e limitada
qi qf
Controle
A unidade de controle possui um número finito e pré-definido Um autômato finito pode ser representado através de um grafo
de estados. A unidade de leitura lê o sı́mbolo de uma célula a (diagrama de estados) como mostra o slide acima. Note na re-
cada vez. Após a leitura, a cabeça da fita move-se uma célula presentação dos estados iniciais e finais.
para a direita. Inicialmente a cabeça da fita está posicionada na
célula mais a esquerda.
O programa é uma função que dependendo do estado corrente
e do sı́mbolo lido, determina o novo estado do autômato.
Exemplo 2
Um autômato finito determinı́stico (AFD), ou simplesmente
autômato finito M , é determinado pela quı́ntupla: L = {w | w possui a+ como subpalavra}
M = (Σ, Q, δ, q0 , F )
Σ = {a}
M = (Σ, Q, δ, q0 , F )
Q = {q0 , qf }
a
F = {qf }
δ a
q0 qf
q0 qf a
qf qf
Exercı́cio 4
Exercı́cio 1
L = (a ∪ b)∗ L = (a.b)+ δ a b
M = (Σ, Q, δ, q0 , F ) M = (Σ, Q, δ, q0 , F )
q0 q1 -
Σ = {a, b} Σ = { a, b}
a, b Q = {q0 , q1 , qf } q1 - qf
Q = {q0 }
F = {q0 } F = {q0 } qf q1 -
δ a b q0
a
q0 q0 q0
q0 q1 qf
a b
Exercı́cio 2
L = (a ∪ b)+
M = (Σ, Q, δ, q0 , F )
Σ = { a, b}
Q = {q0 , qf } a,b
F = {qf }
δ a b
q0 qf
q0 qf qf a
qf qf qf b
Condições de Parada em AFD
Exercı́cio 3 • após processar o último sı́mbolo da fita,
assume um estado final: o autômato pára e a
L = (a.b)∗
entrada é aceita.
M = (Σ, Q, δ, q0 , F )
Σ = { a, b} • após processar o último sı́mbolo da fita,
Q = {q0 , qf } assume um estado não final: o autômato pára
F = {q0 } e a entrada é rejeitada
b
δ a b • a função programa é indefinida para o
q0 qf argumento (estado corrente e sı́mbolo lido): o
q0 qf -
autômato pára e a entrada é rejeitada
qf - q0 a
A linguagem aceita por um autômato finito Construa um autômato finito determinı́stico dada as lingua-
M = (Σ, Q, δ, q0 , F ) denotada por ACEITA(M), ou L(M) gens acima. Defina o formalismo do autômato, sua tabela de
é o conjunto de todas as palavras pertencentes a Σ∗ que são transição e verifique se uma cadeia que pertença a linguagem é
aceitas por M . reconhecida pelo autômato. Em todas as linguagens o alfabeto
Analogamente, REJEITA(M) é o conjunto de todas as é {a,b}.
palavras pertencentes a Σ∗ que são rejeitadas por M. 1. M1 = (Σ, Q, δ, q0 , F )
Σ = {a, b}
• a intersecção dos conjunto ACEITA(M) e REJEITA(M) é Q = {q0 , q1 , q2 }
vazio F = {q2 }
• a união dos conjuntos ACEITA(M) e REJEITA(M) é Σ∗
δ a b
q0 q1 -
q1 q2 -
q2 q2 q2
a,b
Exercı́cio
Dado o diagrama de estado do AFD, monte-o e
verifique se aceita a cadeia aabba. q0
a
q1
a
q2
Solução:
0 0
1
q0 q1
1
q0 →
−a q0 →−a q0 → −b q1 → −b q0 → a q0
−
A cadeia aabba é aceita pois é esgotada no estado final do
autômato.
2. M2 = (Σ, Q, δ, q0 , F )
Σ = {a, b} b b
Q = {q0 , q1 , q2 , q3 }
F = {q3 } a
q0 q1
δ a b a
q0 q1 q2
q1 q3 q2 Cadeia: abbabab → aceita:
q2 q1 q3
q3 q3 q3 q0 →
a q1 →
− −b q1 →
−b q1 →
a q0 →
− −b q0 →
a q1 →
− −b q1
q0
Exercı́cios
a b
δ a b δ a b
b
q1 q2 q0 q0 q1 q0 q2 q1
a q1 q0 q2 q1 q1 q0
a b q2 q0 q3 q2 q4 q5
q3 q3 q3 q3 q3 q5 q4
a,b
q4 q3 q2
δ a b
q0 q2 q1
q1 q3 q0
q2 q0 q3
q3 q1 q2
b
q0 q1
b
a a a a
b
q2 q3
b
4. M4 = (Σ, Q, δ, q0 , F )
Σ = {a, b}
Q = {q0 , q1 }
F = {q1 }
δ a b
q0 q1 q0
q1 q0 q1