Escolar Documentos
Profissional Documentos
Cultura Documentos
Linguagens Formais
e Autómatos alfabeto – conjunto finito de sı́mbolos (Σ, T )
(elementos a, b, c, d, e)
Exemplos:
• {a, b, c, . . . , x, y, z}
• {0, 1, . . . , 9, +, −, ÷, ×, (, )}
• {InsereCartão, 0, 1, . . . , 9, Confirmar,
Vasco Pedro Corrigir, Anular, . . . }
1. se |u| = 0, então u = λ e uR = λ
linguagem sobre o alfabeto Σ – conjunto de 2. se |u| = n > 0, então u = wa, para al-
palavras sobre Σ (L ⊆ Σ∗) guma palavra w com |w| = n − 1 e algum
a ∈ Σ, e uR = a.wR
Vasco Pedro, LFA, UE, 2008/2009 2 Vasco Pedro, LFA, UE, 2008/2009 3
Subpalavra Caracterização Finita de
Linguagens
u é subpalavra de v se existem x, y t.q.
v = xuy
• definição recursiva
– concatenação de linguagens
• se x = λ então u é prefixo de v se X e Y forem linguagens
XY = X · Y = {xy | x ∈ X e y ∈ Y }
– exemplo
Sufixo
{1, 2, 3} · {1, 00, λ} =
{ 11, 21, 31,
• se y = λ então u é sufixo de v 100, 200, 300,
1, 2, 3 }
(u, v, x, y ∈ Σ∗)
Vasco Pedro, LFA, UE, 2008/2009 4 Vasco Pedro, LFA, UE, 2008/2009 5
Vasco Pedro, LFA, UE, 2008/2009 6 Vasco Pedro, LFA, UE, 2008/2009 7
Expressões Regulares (1) Expressões Regulares (2)
Linguagem Representada
• as expressões regulares sobre o alfabeto
Σ são definidas como
L(∅) = ∅
(base) ∅, λ e a, para todo a ∈ Σ, são ex-
pressões regulares sobre Σ L(λ) = {λ}
Vasco Pedro, LFA, UE, 2008/2009 8 Vasco Pedro, LFA, UE, 2008/2009 9
u∪u=u u∗ = (u∗)∗
• Σ é um conjunto finito de sı́mbolos (al-
u(v ∪ w) = uv ∪ uw u∗ = λ ∪ uu∗ fabeto);
(u ∪ v)w = uw ∪ vw
• δ é a função de transição, uma função
(uv)∗u = u(vu)∗ total de Q × Σ em Q;
(u ∪ v)∗ = (u∗ ∪ v)∗
• q0 ∈ Q é o estado inicial do autómato; e
= u∗(u ∪ v)∗ = (u ∪ vu∗)∗
= (u∗v ∗)∗
• F ⊆ Q é o conjunto dos estados de
= (u∗v)∗u∗ = u∗(vu∗)∗ aceitação.
Vasco Pedro, LFA, UE, 2008/2009 10 Vasco Pedro, LFA, UE, 2008/2009 11
Configuração e Linguagem Reconhecida
Computação Seja M = (Q, Σ, δ, q0, F ) um AFD.
• qi ∈ λ-fecho(qi)
• Q é um conjunto finito de estados;
• se qj ∈ λ-fecho(qi) e qk ∈ δ(qj , λ), então
• Σ é um conjunto finito de sı́mbolos (al- qk ∈ λ-fecho(qi)
fabeto);
• mais nenhum estado está em λ-fecho(qi)
Vasco Pedro, LFA, UE, 2008/2009 16 Vasco Pedro, LFA, UE, 2008/2009 17
2. Enquanto existirem
Seja M = (Q, Σ, δ, q0, F ) um autómato finito
determinista. Dois estados qi e qj são equi- p, p′ ∈ P a∈Σ qi , qj ∈ p
valentes se
tais que δ(qi, a) ∈ p′ e δ(qj , a) ∈
6 p′, fazer
Vasco Pedro, LFA, UE, 2008/2009 18 Vasco Pedro, LFA, UE, 2008/2009 19
Construção do AFD Composição de
Mı́nimo Autómatos
1. Calcular os estados equivalentes; seja P a Seja M = (Q, Σ, δ, q0, F ) um AFND. Existe
partição determinada. um AFND
3. O AFD mı́nimo (ou reduzido) equiva- • não há transições a partir do estado qf
lente a M é
A função de transição de M ′ é obtida acres-
M ′ = (P, Σ, δ ′, q0′ , F ′) centando a δ
onde
• (q0′ , λ, {q0} )
• q0′ é o elemento de P que contém q0; • uma transição λ de cada q ∈ F para qf
Vasco Pedro, LFA, UE, 2008/2009 20 Vasco Pedro, LFA, UE, 2008/2009 21
Vasco Pedro, LFA, UE, 2008/2009 26 Vasco Pedro, LFA, UE, 2008/2009 27
k
X
3. ti = n.
i=1
(u, v, w ∈ (V ∪ Σ)∗)
Vasco Pedro, LFA, UE, 2008/2009 28 Vasco Pedro, LFA, UE, 2008/2009 29
Derivação Esquerda e Árvore de Derivação
Direita Seja G = (V, Σ, P, S) uma GIC.
E→E+T |E−T |T
{aibj ck | i = j ou j = k}
T →T ×F |T ÷F |F
F →n
Vasco Pedro, LFA, UE, 2008/2009 32 Vasco Pedro, LFA, UE, 2008/2009 32-1
Gramáticas Regulares Autómatos de Pilha (1)
Vasco Pedro, LFA, UE, 2008/2009 33 Vasco Pedro, LFA, UE, 2008/2009 34
Vasco Pedro, LFA, UE, 2008/2009 35 Vasco Pedro, LFA, UE, 2008/2009 36
Variantes Pumping Lemma (2)
Um autómato de pilha estendido pode con- u v w x y, com |vwx| ≤ k e |v| + |x| > 0
ter transições em que são empilhados mais
do que um sı́mbolo, como tal que
Vasco Pedro, LFA, UE, 2008/2009 37 Vasco Pedro, LFA, UE, 2008/2009 38
G é uma gramática
• independente do contexto (ou tipo 2); O grafo de uma gramática não ambı́gua é
ou uma árvore.
Vasco Pedro, LFA, UE, 2008/2009 39 Vasco Pedro, LFA, UE, 2008/2009 40
Análise Sintáctica Análise Sintáctica
Descendente em Largura
Sentido entrada: GIC G = (V, Σ, P, S) e p ∈ Σ∗
cria T com raiz S % árvore de pesquisa
Q ← {S} % fila
• descendente (parte de S) repete
q ← remove(Q) % q = uAv, u ∈ Σ∗, A ∈ V
i←0
• ascendente (parte da palavra) done ← f alse
repete
se não há uma produção para A com
Estratégia número maior que i então
done ← true
senão
• em largura seja A → w a primeira produção para
A com número j > i
se uwv ∈6 Σ∗ e o prefixo terminal de
• em profundidade uwv é um prefixo de p então
insere(uwv, Q)
acrescenta o nó uvw a T
i←j
Se w = uAv, u ∈ Σ∗ e A ∈ V , u é o prefixo até done ou p = uwv
terminal de w até vazia(Q) ou p = uwv
se p = uwv então ACEITA senão REJEITA
Vasco Pedro, LFA, UE, 2008/2009 41 Vasco Pedro, LFA, UE, 2008/2009 42
Gramática original:
Seja G = (V, Σ, P, S) uma GIC.
Vasco Pedro, LFA, UE, 2008/2009 46-1 Vasco Pedro, LFA, UE, 2008/2009 47
Eliminação das 2. Eliminar Produções-λ
Produções-λ
G′ = ({L′, L, M, N, O}, {a, b, c, d}, P ′, L′)
P ′ : L′ → L
L → M b | aLb | λ
Seja G = (V, Σ, P, S) uma GIC com S não M → Lb | M LN | λ
recursivo. N → N aN | N bO
O → cO | λ
A gramática GL = (V, Σ, PL, S), equivalente
a G, é uma gramática essencialmente não Sı́mbolos que geram λ:
contraı́vel cujas produções PL são:
Λ = {L′, L, M, O}
Vasco Pedro, LFA, UE, 2008/2009 48 Vasco Pedro, LFA, UE, 2008/2009 48-1
CHAIN
Seja G = (V, Σ, P, S) uma GIC essencialmen- L′ {L′, L}
te não contraı́vel. L {L}
M {M, N }
N {N }
Para cada A ∈ V , seja CHAIN(A) o conjunto
O {O}
∗
{B ∈ V | A ⇒G B}
Gramática sem produções unitárias, equiva-
A gramática GC = (V, Σ, PC , S) é uma gra- lente a GL:
mática equivalente a G onde PC consiste nas
produções A → w que satisfazem, para algum GC = ({L′, L, M, N, O}, {a, b, c, d}, PC , L′)
B ∈V:
PC : L′ → λ | M b | aLb | b | ab
1. B ∈ CHAIN(A) L → M b | aLb | b | ab
2. B → w ∈ P M → Lb | M LN | b | LN | M N | N aN |
N bO | N b
3. w ∈
6 V N → N aN | N bO | N b
O → cO | c
Vasco Pedro, LFA, UE, 2008/2009 49 Vasco Pedro, LFA, UE, 2008/2009 49-1
Sı́mbolos Inúteis 4. Eliminar os Sı́mbolos
Um sı́mbolo x ∈ V ∪ Σ é útil se existe uma Inúteis
derivação
∗ ∗ 1. PRODUTIVOS = {L′, L, M, O}
S ⇒ uxv ⇒ w
onde u, v ∈ (V ∪ Σ)∗ e w ∈ Σ∗. Produções sem sı́mbolos improdutivos:
Um sı́mbolo não terminal que não é acessı́vel GU = ({L′, L, M }, {a, b}, PU , L′)
é inacessı́vel. PU : L′ → λ | M b | aLb | b | ab
L → M b | aLb | b | ab
M → Lb | b
Um sı́mbolo é útil se for produtivo e acessı́vel.
Vasco Pedro, LFA, UE, 2008/2009 50 Vasco Pedro, LFA, UE, 2008/2009 50-1
Vasco Pedro, LFA, UE, 2008/2009 51 Vasco Pedro, LFA, UE, 2008/2009 51-1
Forma Normal de Greibach 6. Construir a Forma
Normal de Greibach (1)
Uma GIC G = (V, Σ, P, S) está na forma nor- 1. Ordem dos não terminais: L′ X B A L M
mal de Greibach se todas as suas produções
têm uma das formas 2. Todas as produções da forma A1 → A2w
satisfazem A1 < A2.
• A → aA1A2 . . . An
L′ → λ | M B | AX | b | AB
X → LB
• A→a B→b
A→a
L → M B | aX | b | aB
• S→λ (M → M BB | aXB | bB | aBB | b)
M → aXBZ | bBZ | aBBZ | bZ |
aXB | bB | aBB | b
onde a ∈ Σ e Ai ∈ V −{S}, para i = 1, 2, . . . , n.
Z → BBZ | BB
(A1, A2, ∈ V e w ∈ V ∗)
Vasco Pedro, LFA, UE, 2008/2009 52 Vasco Pedro, LFA, UE, 2008/2009 52-1