Você está na página 1de 15

Linguagens Formais e Autmatos - Captulo 3 - P.

Blauth Menezes

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

3.7 Autmato com Pilha


Classe das LLC
pode ser associada a um formalismo do tipo autmato denominado Autmato com Pilha

pilha memria auxiliar independente da fita de entrada no possui limite mximo de tamanho ("infinita") estrutura de uma pilha: ltimo smbolo gravado o primeiro a ser lido base: fixa e define o seu incio topo: varivel e define a posio do ltimo smbolo gravado
gravao leitura

Autmato com Pilha (AP)


anlogo ao Autmato Finito incluindo no-determinismo estrutura de pilha no-determinismo AP importante e necessria aumenta o poder computacional exemplo: o reconhecimento da linguagem {wwr w palavra sobre {a, b}} s possvel por um AP no-determinstico

topo sentido de crescimento base

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

Poder computacional do AP
muito superior ao do Autmato Finito mas ainda restrito exemplo: no reconhece {ww w palavra sobre {a, b}} {anbncn n 0}

Definio do Autmato com Pilha


AP
duas definies universalmente aceitas diferem no critrio de parada do autmato

Estados Finais
valor inicial da pilha vazio AP pra aceitando ao atingir um estado final

AP Nmero de estados
qq LLC pode ser reconhecida por um AP com somente um estado ou trs estados dependendo da definio a pilha suficiente como nica memria os estados no so necessrios para "memorizar" informaes passadas poderiam ser excludos sem reduzir o poder computacional

Pilha Vazia
pilha contm, inicialmente, um smbolo especial denominado smbolo inicial da pilha no existem estados finais AP pra aceitando quando a pilha estiver vazia

As duas definies so equivalentes


possuem o mesmo poder computacional fcil modificar um AP para satisfazer a outra definio adotamos o modelo com estados finais

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

AP ou AP No-Determinstico
Fita Pilha Unidade de controle Cabea de fita Cabea da pilha Programa ou Funo de Transio

Pilha
memria auxiliar pode ser usada livremente para leitura e gravao dividida em clulas cada cdula um smbolo de um alfabeto auxiliar pode ser igual ao alfabeto de entrada leitura ou gravao sempre na mesma extremidade topo no possui tamanho fixo e nem mximo tamanho corrrente tamanho da palavra armazenada valor inicial: vazio

Fita
Anloga do Autmato Finito

Unidade de Controle
reflete o estado corrente da mquina possui cabea de fita cabea de pilha

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

Cabea de Fita
unidade de leitura acessa uma clula da fita de cada vez movimenta-se exclusivamente para a direita pode-se testar se leu toda a entrada

Programa ou Funo de Transio


programa comanda a leitura da fita comanda a leitura e gravao da pilha define o estado da mquina dependendo estado corrente smbolo lido da fita smbolo lido da pilha determina novo estado palavra a ser gravada movimento vazio anlogamente ao Autmato Finito pode mudar de estado sem ler da fita ou da pilha

Cabea da Pilha
unidade de leitura e gravao leitura move para a direita ( "para baixo") acessa um smbolo de cada vez: topo exclui o smbolo lido possvel testar se a pilha est vazia gravao move para a esquerda ("para cima") possvel armazenar uma palavra composta por mais de um smbolo neste caso, o smbolo do topo o mais esquerda da palavra gravada

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

10

Definio: Autmato com Pilha


Autmato com Pilha No-Determinstico (APN) ou simplesmente Autmato com Pilha (AP) M = (, Q, , q0, F, V) Q alfabeto de smbolos de entrada conjunto finito de estados funo programa ou funo de transio : Q ( {, ?}) (V {, ?}) 2QV* funo parcial estado inicial do autmato tq q0 Q conjunto de estados finais tq F Q alfabeto auxiliar ou alfabeto da pilha

Caractersticas da Funo Programa


a funo pode no ser total "?" indica teste de toda palavra de entrada lida pilha vazia "" leitura: movimento vazio da fita ou da pilha gravao: nenhuma gravao realizada na pilha Exemplo: (p, ?, ) = {(q, )} no estado p se a entrada foi completamente lida no l da pilha assume o estado q no grava na pilha

q0 F V

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

11

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

12

representao como um grafo direto


(a, A, )

Parada de um AP
pra aceitando um dos caminhos alternativos assume um estado final pra rejeitando todos os caminhos alternativos rejeitam

estado anterior smbolo lido da fita

novo estado palavra gravada na pilha

smbolo lido da pilha

Processamento de um AP, para uma palavra de entrada


sucessiva aplicao da funo programa at ocorrer uma condio de parada possvel que um AP nunca atinja uma condio de parada ciclo ou "loop" infinito exemplo: empilha e desempilha um mesmo smbolo indefinidamente, sem ler da fita

loop infinito pelo menos um caminho alternativo est em "loop" os demais rejeitam ou tambm esto em "loop" infinito

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

13

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

14

Notaes
ACEITA(M) ou L(M) conj das palavras de * aceitas por M REJEITA(M) conj das palavras de * rejeitadas por M LOOP(M) conj das palavras de * para as quais M fica processando indefinidamente

Exemplo: {anbn n 0}
um AP determinstico M1 = ({a, b}, {q0, q1, qf}, 1, q0, {qf}, {B}) 1 (q0, a, ) = {(q0, B)} 1 (q0, b, B) = {(q1, )} 1 (q0, ?, ?) = {(qf, )} 1 (q1, b, B) = {(q1, )} 1 (q1, ?, ?) = {(qf, )}

As seguintes afirmaes so verdadeiras


ACEITA(M) REJEITA(M) LOOP(M) = ACEITA(M) REJEITA(M) LOOP(M) = * o complemento de ACEITA(M) REJEITA(M) LOOP(M) REJEITA(M) ACEITA(M) LOOP(M) LOOP(M) ACEITA(M) REJEITA(M)
(a, , B) q0

(b, B, )

q1

(b, B, )

(?, ?, ) qf

(?, ?, )

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

15

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

16

Exemplo: {wwr w {a, b}*}


um AP no-determinstico
(, , ) (?, ?, )

AP LLC
A classe das linguagens reconhecidas pelos AP igual classe das LLC
qf

q0

q1

Outras concluses
para qualquer GLC, existe um AP que reconhece a linguagem gerada e sempre pra construo de um AP a partir de uma GLC simples e imediata qualquer LLC pode ser reconhecida por um AP

(a, , a) (b, , b)

(a, a, ) (b, b, )

Exemplo: {anbman+m n 0, m 0}
q0 (, , ) q1 (, , ) q2 (?, ?, ) qf

com somente um estado de controle lgico a facilidade de memorizao de informaes atravs de estados (como nos autmatos finitos) no aumenta o poder computacional

(a, , X)

(b, , X)

(a, X, )

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

17

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

18

Teorema. Se L uma LLC, ento existe M, AP tq ACEITA(M) = L Prova


suponha que a palavra vazia no pertence L AP a partir de uma gramtica na FNG produes da forma A a, palavra de variveis o AP simula a derivao mais esquerda l o smbolo a da fita l o smbolo A da pilha empilha a palavra de variveis

AP M a partir da gramtica G = (V, T, P, S) G' = (V', T', P',S), G na FNG M = (T', {q0, q1, qf}, , q0, {qf}, V') (q0, , ) = {(q1, S)} {(q1, ) A a P'} (q1, ?, ?) = {(qf, )}
(, , S) (?, ?, )

q0

q1

qf

(a1, A1, 1) ... (an, An, n)

demonstrao de ACEITA(M) = GERA(G') induo no nmero de movimentos de M (ou derivaes de G') sugerida como exerccio como o autmato pode ser modificado para tratar a palavra vazia?

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

19

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

20

Exemplo L = {anbn n 1}
FNG G = ({S, B}, {a, b}, P, S), onde P = {S aB aSB, B b} AP M = ({a, b}, {q0, q, qf}, , q0, {qf}, {S, B})
(, , S) (?, ?, )

os 2 teoremas que seguem so corolrios do anterior Teorema. Se L uma LLC, ento:


a) existe M, AP que aceita por estado final, com somente 3 estados tq ACEITA(M) = L b) existe M, AP que aceita por pilha vazia, com somente um estado tq ACEITA(M) = L
qf

q0

q1

Portanto
o uso dos estados como "memria" no aumenta o poder de reconhecimento dos AP relativamente s LLC

(a, S, B) (a, S, SB) (b, B, )

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

21

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

22

Teorema. Se L uma LLC, ento existe M, AP tal que


ACEITA(M) = L REJEITA(M) = * - L LOOP(M) = .

Ou seja
para qualquer LLC existe um AP que sempre pra para qualquer entrada (por que?)

Teorema. Se L aceita por um AP, ento L LLC


no ser demonstrado

# de Pilhas Poder Computacional

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

23

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

24

# de Pilhas Poder Computacional


Autmato com Pilha
modelo adequado para estudos aplicados formais estrutura de pilha adequada para implementao em computadores poucas modificaes sobre a definio do AP determinam significativas alteraes no seu poder computacional assim, os principais estudos de linguagens e computabilidade podem ser desenvolvidos usando exclusivamente o AP variando o nmero de pilhas com ou sem a facilidade de no-determinismo

Principais variaes
Autmato com Pilha, sem usar a estrutura de pilha Autmato com Pilha Determinstico Autmato com Pilha No-Determinstico Autmato com Duas Pilhas Autmato com Mais de Duas Pilhas

Autmato com Pilha, sem usar a estrutura de pilha


estados nica forma de memorizar informaes passadas AP sem usar a pilha muito semelhante ao Autmato Finito Classe das Linguagens aceitas por AP sem pilha com ou sem no-determinismo igual a Classe das Linguagens Regulares exerccio

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

25

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

26

AP Determinstico - APD
aceita um subconjunto prprio das LLC Linguagens Livres do Contexto Determinsticas - LLCD LLCD inclui muitas das linguagens aplicadas em informtica, com destaque para as de programao a implementao de um APD simples e eficiente facilita o desenvolvimento de processadores de linguagens possvel definir um tipo de gramtica que gera exatamente a Classe das LLCD no so restries simples sobre a definio geral de gramtica fechada para a operao de complemento no fechada para as operaes de unio interseco concatenao

AP (No-Determinstico)
a classe das linguagens reconhecida pelo AP exatamente a Livre do Contexto

Autmato com Duas Pilhas - A2P


equivalente, em termos de poder computacional, Mquina de Turing assim, se existe um algoritmo para resolver um problema (por exemplo, reconhecer uma determinada linguagem), ento este algoritmo pode ser expresso como um A2P a facilidade de no-determinismo no aumenta o poder computacional do A2P

Aut. com Mais de Duas Pilhas - AnP


o poder computacional equivalente ao do ou seja se um problema solucionado por um AnP ento o mesmo problema pode ser solucionado por um A2P

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

27

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

28

3.8 Propriedades das LLC


As LLC so mais gerais que as LR
mas ainda so relativamente restritas fcil definir linguagens que no so LLC {ww w pertence a {a, b}*} {anbncn n 0}.

Investigao se LLC
Prova de que uma linguagem LLC
suficiente express-la usando os formalismos Gramtica Livre do Contexto Autmato com Pilha

Prova de que uma linguagem no LLC


necessita ser realizada caso a caso "lema do bombeamento" para as LLC

Assim
como determinar se uma linguagem LLC? a Classe das LLC fechada para operaes como unio? interseco? concatenao? complemento ? como verificar se uma LLC infinita? finita (ou at mesmo vazia)?

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

29

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

30

Lema. Bombeamento das LLC


Se L uma LLC, ento: existe uma constante n tal que, para qq w L onde w n, w pode ser definida como w = uxvyz onde xvy n, xy 1 e, para todo i 0, uxivyiz L.

Exemplo. L = {anbncn n 0}
prova usa o bombeamento por absurdo Suponha que L LLC ento existe uma GLC na FNC com s variveis que gera L sejam r = 2s e w = arbrcr pelo bombeamento w pode ser definida como w = uxvyz xvy r xy 1 para qq i 0, uxivyiz L absurdo!!!, pois como xvy r xy no possui smbolos a e c qq ocorrncias de a e c esto separadas por, pelo menos, r ocorrncias de b aplicao do bombeamento: desbalanceamento!

Para w = uxvyz, tem-se que


ou x ou y pode ser a palavra vazia mas no ambas

Prova
uma forma de demonstrar o lema usando gramticas na Forma Normal de Chomsky se a gramtica possui s variveis pode-se assumir que n = 2s o lema no ser demonstrado

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

31

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

32

Operaes sobre LLC


Teorema: As LLC so fechadas p/
unio concatenao

Prova: Concatenao
demonstrao baseada em GLC (AP: exerccio) suponha L1 e L2, LLC. Ento, existem G1 = (V1, T1, P1, S1) e G2 = (V2, T2, P2, S2) tq GERA(G1) = L1 e GERA(G2) = L2 seja G3 = (V1 V2 {S}, T1 T2, P1 P2 {S S1S2}, S) a nica produo de S S S1S2 qq palavra ter, como prefixo, uma palavra de L1 sufixo, uma palavra de L2

Prova: Unio
demonstrao baseada em AP (GLC: exerccio) suponha L1 e L2, LLC. Ento, existem M1 = (1, Q1, 1, q01, F1, V1) e M2 = (2, Q2, 2, q02, F2, V2) tq ACEITA(M1) = L1 e ACEITA(M2) = L2 seja M3 = (1 2, Q1 Q2 {q0}, 3, q0, F1 F2, V1 V2)
( , , )

q01

M1

q0
q02

( , , )

M2

claramente, M3 reconhece L1 L2

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

33

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

34

O prximo teorema mostra que a Classe das LLC no fechada para


interseco complemento

Uma explicao intuitiva


um AP no-determinista aceita se pelo menos um dos caminhos alternativos aceita
aceita rejeita

Aparentemente, uma contradio


j foi verificado que se L LLC, ento existe M, AP tal que ACEITA(M) = L e REJEITA(M) = L' ou seja, M capaz de rejeitar qualquer palavra que no pertena L o prximo teorema mostra que se L LLC, no implica que L' tambm LLC ou seja, no se pode afirmar que existe um AP que aceite L'

...
rejeita

invero de aceita por rejeita e vice-versa a condio continua sendo de aceitao


rejeita aceita

Assim
perfeitamente possvel rejeitar o complemento de uma LLC embora nem sempre seja possvel aceitar o complemento

...
aceita

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

35

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

36

Portanto
considerando a facilidade de no-determinismo o fato de existir um AP capaz de rejeitar o complemento de uma linguagem no implica que existe um AP capaz de aceitar o mesmo complemento

Prova: Complemento
considerando que no fechada para a interseco interseco pode ser representada em termos de unio e complemento fechada para a unio no pode-se afirmar que fechada para o complemento

Teorema: A Classe das LLC no fechada para as operaes


interseco complemento

Prova: Interseco
contra- exemplo sejam L1 = {anbncm n 0 e m 0} e L2 = {ambncn n 0 e m 0} fcil mostrar que L1 e L2 so LLC entretanto L1 L2 = {anbncn n 0} no LLC

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

37

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

38

Investigao se uma LLC Vazia, Finita ou Infinita


Teorema. Se L LLC, ento possvel determinar se L
vazia finita infinita

Prova: Finita e Infinita


seja G = (V, T, P, S) uma GLC tq GERA(G) = L seja G' = (V', T', P', S) equivalente a G Forma Normal de Chomsky (A a ou A BC) considere somente as produes da forma A BC se existe A tq A BC (A no lado esquerdo) X YA ou X AY (A no lado direito) e se existe um ciclo em A do tipo A + A ento A capaz de gerar palavras de qq tamanho a linguagem infinita caso no exista tal A, ento a linguagem e finita

Prova: Vazia
seja G = (V, T, P, S), GLC tq GERA(G) = L seja G'= (V', T', P', S) equivalente a G, eliminando os smbolos inteis se P' for vazio, ento L vazia

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

39

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

40

3.9 Algoritmos de Reconhecimento


Uma palavra pertence ou no a uma linguagem?
uma das principais questes relacionadas com o estudo de Linguagens Formais

Algoritmos de reconhecimento
construdos a partir de uma GLC reconhecedores que usam Autmato com Pilha muito simples em geral, ineficientes tempo de processamento proporcional a kw (w - entrada; k depende do autmato) no so recomendveis para entradas de tamanhos considerveis existe uma srie de algoritmos bem mais eficientes tempo de processamento proporcional a w3 ou at um pouco menos no provado se o tempo proporcional a w3 efetivamente necessrio para que um algoritmo genrico reconhea LLC

Dispositivo de reconhecimento
pode ser especificado como um modelo de autmato ou algoritmo implementvel em computador em qualquer caso, importante determinar "quantidade de recursos" necessrios por exemplo: tempo e espao objetivo gerar dispositivos de reconhecimento vlidos para qualquer linguagem dentro de uma classe algoritmos apresentados: especficos para LLC

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

41

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

42

Tipos de reconhecedores
Top-Down ou Preditivo Bottom-Up

AP como Reconhecedor
Construo de reconhecedores usando AP
relativamente simples e imediata existe uma relao quase direta entre produes da gramtica transies do AP algoritmos tipo Top-Down simulam a derivao mais esquerda da palavra a ser reconhecida no-determinismo testa as diversas produes alternativas da gramtica para gerar os smbolos terminais

Top-Down ou Preditivo
constri uma rvore de derivao para a entrada a partir da raiz (smbolo inicial da gramtica) gera os ramos em direo s folhas (smbolos terminais que compem a palavra

Bottom-Up
basicamente, o oposto do Top-Down parte das folhas e constri a rvore de derivao em direo raiz

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

43

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

44

AP a Partir de uma GLC na FNG


Foi visto que
qualquer LLC pode ser especificada como um AP existe um algoritmo que define um AP a partir de uma Gramtica na FNG

AP Descendente
Forma alternativa de construir um AP a partir de uma GLC
algoritmo igualmente simples mesmo nvel de eficincia construo: gramtica sem recurso esquerda simula a derivao mais esquerda

Cada produo na FNG gera exatamente um terminal


w gerada em w etapas de derivao entretanto cada varivel pode ter mais de uma produo necessrio testar as diversas alternativas nmero de passos para reconhecer w proporcional a kw onde k depende do AP aproximao para k: metade do nmero mdio de produes associadas s diversas variveis portanto tempo: proporcional ao expoente em w pode ser muito ineficiente para entradas longas

Algoritmo
inicialmente, empilha o smbolo inicial sempre que existir uma varivel no topo da pilha, substitui (de forma no-determinstica) por todas as produes da varivel se o topo da pilha for um terminal, verifica se igual ao prximo smbolo da entrada

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

45

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

46

Construo de um Autmato com Pilha Descendente


seja G =(V, T, P, S) GLC sem recurso esquerda M = (T, {q0, q1, qf}, , q0, {qf}, V T), onde (q0, , ) = {(q1, S)} (q1, , A) = {(q1, ) A P} (q1, a, a) = {(q1, )} (q1, ?, ?) = {(qf, )}
(, , S) (?, ?, )

Exemplo. L = {anbn n 1}
G = ({S}, {a, b}, P, S), onde P = {S aSb ab} (sem recurso esquerda) M = ({a, b}, {q0,q1, qf}, , q0, {qf}, {S})
(, , S) (?, ?, )

q0

q1

qf

(, S, aSb), (, S, ab) (a, a, ), (b, b, )

q0

q1

qf

(, A1, 1) ... (, Au, u) (a1, a1, ) ... (av, av, )

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

47

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

48

Algoritmo de Cocke-Younger-Kasami
Cocke-Younger-Kasami (CYK)
desenvolvido independentemente por Cocke, Younger e Kasami em 1965 construdo sobre uma gramtica na FNC tipo bottom-up gera todas as rvores de derivao da entrada tempo de processamento proporcional a w3

Algoritmo de CYK
G = (V, T, P, S) na FNC onde T = {a1, a2, ..., at} Vrs representa as clulas da tabela triangular de derivao (suponha w = a1a2...an)

conjunto de razes para as rvores de derivao da subpalavra a2...an

Algoritmo
construo de uma tabela triangular de derivao cada clula representa o conjunto de razes que pode gerar a correspondente sub-rvore

a1

a2

...
r

an

a)Variveis q. geram terminais diretamente A a para r variando de 1 at n faa Vr1 = {A A ar P}

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

49

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

50

b)Produo que gera duas variveis A BC para s variando de 2 at n faa para r variando de 1 at n - s + 1 faa Vrs = para k variando de 1 at s 1 faa Vrs = Vrs {A A BC P, B Vrk e C V(r+k)(s-k)} Note-se que: limite de iterao para r n - s + 1, pois a tabela de derivao triangular os vrtices Vrk e V(r+k)(r-k) so as razes das subrvores de Vrs se uma clula for vazia, significa que esta clula no gera qualquer sub-rvore c)Condio de aceitao da entrada se o smbolo inicial pertence ao vrtice V1n (raiz da rvore de derivao de toda palavra), ento a entrada aceita

Exemplo.
G = ({S, A}, {a, b}, P, S), onde P = {S AA AS b, A SA AS a} tabela triangular de derivao para abaab
Como S raiz da rvore de derivao, a entrada aceita S,A S A S b S,A S A a S,A A a S b

S,A S,A S,A S,A A a

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

51

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

52

Algoritmo de Early
Early
desenvolvido em 1968 considerado o mais rpido algoritmo de reconhecimento conhecido para GLC tempo de processamento proporcional a w3 para gramticas no-ambguas, pode ser proporcional a w2 para muitas gramticas de interesse prtico, o tempo proporcional a w

Algoritmo de Early
G = (V, T, P, S) uma GLC qualquer w = a1a2...an palavra a ser reconhecida smbolo "." usado como um marcador em cada produo antecede a posio que ser analisada na tentativa de gerar o prximo terminal sufixo "/u" adicionado a cada produo indica o u-simo ciclo em que esta produo passou a ser considerada

Algoritmo
tipo top-down a partir de uma GLC qualquer executa sempre a derivao mais esquerda cada ciclo gera um terminal comparado com o smbolo da entrada comparao com sucesso construo de um conjunto de produes que pode gerar o prximo smbolo

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

53

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

54

a)Construo do primeiro conjunto de produes produes que partem de S produes que podem ser aplicadas em sucessivas derivaes mais esquerda a partir de S D0 = para toda produo S P faa D0 = D0 {S ./0}

b)Construo dos demais conjuntos de produo n = w conjuntos de produo a partir de D0 ao gerar o smbolo ar de w constri Dr: produes que podem gerar o smbolo ar+1 para r variando de 1 at n faa Dr = ; para toda A .ar/s Dr-1 faa Dr = Dr {A ar./s}; repita (1) (2)

(1)

repita (2) para toda produo A .B/0 D0 faa para toda produo B P at faa D0 = D0 {B ./0} no ocorrerem mais incluses

para toda A .B/s Dr (3) faa para toda B P faa Dr = Dr {B ./r} para toda A ./s de Dr (4) faa para toda B .A/k Ds faa Dr = Dr {B A./k} at no ocorrerem mais incluses (1) cada ciclo gera um conjunto de produes Dr (2) gera o smbolo ar (3) produes que podem derivar o prximo smbolo (4) uma subpalavra de w foi reduzida varivel A inclui em Dr produes de que referenciaram .A

(1) produes que partem de S (2) as produes que podem ser aplicadas em derivao mais esquerda a partir de S

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

55

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

56

c)Condio de aceitao da entrada se uma produo S ./0 pertence a Dn, ento a palavra w de entrada foi aceita S ./0 uma produo que parte do smbolo inicial S foi includa em D0 ("/0") todo o lado direito da produo foi analisado com sucesso ("." est no final de )

Exemplo. Gramtica anloga definio de "expresso simples" do PASCAL


G = ({E, T, F}, {+, , [, ], x}, P, E), onde P = {E T E+T, T F TF, F (E) x} reconhecimento da palavra xx

D0:
E .T/0 E .E+T/0 T .F/0 T .TF/0 F .(E)/0 F .x/0 produes que partem do smbolo inicial produes que podem ser aplicadas em derivao mais esquerda a partir do smbolo inicial

Otimizao das etapas a) e b)


ciclos repita-at restritos exclusivamente s produes recentemente includas em Dr ou em D0 ainda no-analisadas

D1: reconhecimento de "x" em xx


F x./0 T F./0 T T.F/0 E T./0 E E.+T/0 x foi reduzido F inclui as produes de D0 (F x./0) que referenciaram .F direta ou indiretamente, movendo "." um smbolo para a direita

Linguagens Formais e Autmatos - Captulo 3 - P. Blauth Menezes

57

D2: reconhecimento de "" em xx


T T.F/0 F .(E)/2 F .x/2 gerou ; o prximo ser gerado por F inclui as produes de P que podem gerar o prximo terminal a partir de F

D3: reconhecimento de "x" em xx


F x./2 T TF./0 E T./0 T T.F/0 E E.+T/0 x foi reduzido F includo de D2 (F x./2); a entrada foi reduzida T; includo de D0 (T TF./0); a entrada foi reduzida E; includo de D0 (T TF./0); includo de D0 (E T./0).

w = xx foi reduzida ao smbolo inicial E


E T./0 pertence a D3 a entrada foi aceita