Anda di halaman 1dari 65

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

SCC-5832 - Captulo 2 Linguagens Livres de Contexto e Autmatos de Pilha


Joo Lus Garcia Rosa1
1 Instituto

de Cincias Matemticas e de Computao Universidade de So Paulo - So Carlos joaoluis@icmc.usp.br

2009
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Sumrio
1

Linguagens Livres de Contexto Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto Autmatos de Pilha A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia Programas, Linguagens e Parsing Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Sumrio
1

Linguagens Livres de Contexto Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto Autmatos de Pilha A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia Programas, Linguagens e Parsing Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Denio

Denio: Uma gramtica G livre de contexto (GLC) se v apenas um smbolo no terminal para toda produo v w em P (v V e w ( V ) ). Uma linguagem L sobre algum alfabeto terminal livre de contexto (LLC) se pode ser gerada por uma GLC. Ento a linguagem dos palndromos, a linguagem dos parnteses casados e a linguagem construda de cadeias de nmeros iguais de as e bs so todas livres de contexto, porque em todas foi mostrada uma GLC.

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Exemplo
Exemplo: A seguinte GLC gera todas as cadeias sobre o alfabeto terminal = {0, 1} com um nmero igual de 0s e 1s. = {0, 1} V = {S , A, B } P compreende as seguintes produes: S 0B |1A A 0|0S |1AA B 1|1S |0BB As derivaes livres de contexto tm uma representao em rvore muito til e elegante. Por exemplo, a derivao das cadeias 0011 e 000111 usando a gramtica do Exemplo acima mostrada na prxima gura.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

rvore de derivao

A Figura (a) representa as derivaes:


S 0B 00BB 001B 0011: derivao mais a esquerda S 0B 00BB 00B 1 0011: derivao mais a direita.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

rvore de derivao
Se uma cadeia pode ser derivada legalmente por uma GLC, ento pode-se descrever esta derivao por uma rvore T com as seguintes propriedades:
1 2

A raiz rotulada com o smbolo inicial S ; Todo n que no uma folha rotulado com uma varivel um smbolo de V ; Todo n que uma folha rotulado com um terminal - um smbolo de (ou possivelmente com ); Se o n N rotulado com um A, e N tem k descendentes diretos N1 , ..., Nk , rotulados com smbolos A1 , ..., Ak , respectivamente, ento existe uma produo da gramtica da forma A A1 A2 ...Ak ; Uma expresso derivada por alguma derivao pode ser obtida pela leitura das folhas da rvore associada com esta derivao, da esquerda para a direita.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

rvore de derivao
Dada uma rvore para uma derivao livre de contexto, dene-se o comprimento de um caminho da raiz folha como sendo o nmero de no terminais neste caminho. A altura de uma rvore o comprimento de seu caminho mais longo. (Logo, na Figura 4 (a), a altura da rvore 3.) Considere a sub-rvore assinalada na Figura 4 (b). uma rvore-B legal; isto , uma rvore de derivao legal usando a gramtica do Exemplo 3 exceto que a raiz um B e no um S . Agora se for considerada qualquer rvore de derivao legal para uma cadeia nesta linguagem e substituda qualquer sub-rvore-B nela com a sub-rvore assinalada, obtm-se uma outra rvore de derivao legal. Este o signicado de livre de contexto do ponto de vista de representaes de rvore.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

rvore de derivao
Vai-se mostrar agora como a aplicao sistemtica deste princpio de substituio de sub-rvores pode ser usado para estabelecer um resultado chave sobre a estrutura das linguagens livres de contexto. Suponha que haja uma rvore de derivao T para uma cadeia z de terminais gerada por alguma gramtica G, e suponha depois que o smbolo no terminal A aparece duas vezes em algum caminho, como mostrado na Figura 8, onde z = uvwxy . Aqui a rvore-A inferior deriva a cadeia terminal w , e a rvore-A superior deriva a cadeia vwx . Como a gramtica livre de contexto, a substituio da rvore-A superior pela rvore-A inferior no afeta a legalidade da derivao. A nova rvore deriva a cadeia uwy .
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

rvore de derivao

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

rvore de derivao

Por outro lado, se for substituda a rvore-A inferior pela rvore-A superior obtem-se uma rvore de derivao legal para a cadeia uvvwxxy , que pode-se escrever como uv 2 wx 2 y . Esta substituio superior-para-inferior pode ser repetida qualquer nmero nito de vezes, obtendo-se o conjunto de cadeias {uv n wx n y |n 0}. Toda LLC innita deve conter innitos subconjuntos de cadeias desta forma geral.

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Sumrio
1

Linguagens Livres de Contexto Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto Autmatos de Pilha A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia Programas, Linguagens e Parsing Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Lema do Bombeamento para LLC


Lema do Bombeamento para Linguagens Livres de Contexto. (Tambm conhecido como Teorema uvwxy ). Seja L uma LLC. Ento existem constantes p e q dependentes de L apenas, tal que se z L com |z | > p, ento z pode ser escrito como uvwxy de tal forma que
1 2 3

|vwx | q ; no mximo um (v ou x ) est vazio; e para todo i 0, as cadeias uv i wx i y L. Dada uma linguagem gerada por uma gramtica que no livre de contexto, no se pode deduzir imediatamente que ela tambm no gerada por uma GLC. Mas se uma linguagem innita no obedece o lema do bombeamento para linguagens livres de contexto, ela no pode ser gerada por uma GLC.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Note o seguinte:
1

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Sumrio
1

Linguagens Livres de Contexto Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto Autmatos de Pilha A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia Programas, Linguagens e Parsing Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Forma Normal de Chomsky


Na matemtica, uma forma normal uma forma padro de 1 ver alguns objetos matemticos. Ou seja, a frao 2 100 5 3 uma forma normal para 10 , 6 e 200 . Formas normais desempenham um papel importante na teoria da linguagem, e nesta seo sero discutidos muitos resultados importantes de forma normal para gramticas livres de contexto. Denio: Diz-se que uma GLC G = (, V , S , P ) est na forma normal de Chomsky (FNC) se cada produo de P estiver em uma das seguintes formas:
1 2 3

S , A BC , onde A, B , C V , A a, onde A V e a .

Alm disso, se S estiver em P , ento B , C V {S } na forma (2).


Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Forma Normal de Chomsky


Teorema: Seja G uma GLC arbitrria. Ento, existe uma gramtica equivalente G na forma normal de Chomsky. Exemplo: Dada a gramtica
S ABC C BaB |c B b|bb Aa

Converte-se para a forma normal de Chomsky primeiro convertendo terminais do lado direito para variveis e adicionando produes apropriadas:
S ABC C BA1 B |c A1 a B b|B1 B1 B1 b Aa
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Forma Normal de Chomsky

Finalmente separam-se os lados direitos com mais de duas variveis:


S AD D BC C BE |c E A1 B A1 a B b|B1 B1 B1 b Aa

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Forma Normal de Greibach

Denio: Diz-se que uma GLC est na forma normal de Greibach (FNG) se toda produo for da forma A bW onde A V , b e W V . Lema: Seja G uma GLC. Ento existe uma gramtica equivalente G , L(G) = L(G ), que no tem produes recursivas a esquerda, isto , nenhuma produo da forma A Av , onde A V e v ( V ) (Forma Normal sem Recurso Esquerda).

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Forma Normal sem Recurso Esquerda


As gramticas livres de contexto (GLC) podem ter produes recursivas esquerda, como em: A Av |w Estas produes derivam a cadeia wv , que tambm derivada por: A wB |w B vB |v sem recurses esquerda. Para eliminar recurses esquerda em geral, substitua A Av1 |Av2 |...|Avn |w1 |...|wm que gera a expresso regular (w1 + ... + wm )(v1 + ... + vn ) , por: A w1 |...|wm |w1 B |...|wm B B v1 |...|vn |v1 B |...|vn B
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Forma Normal de Greibach

Teorema: Seja G qualquer GLC. Ento existe uma gramtica equivalente G , isto , L(G) = L(G ), na forma normal de Greibach.

PROVA: Fixa-se a ordem das variveis na gramtica G : V = {A1 , A2 , ..., An }. G crescente se toda produo de G for da forma
1 2

Aj Ak v , com j < k ; ou Aj av , com a .

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Forma Normal de Greibach


Considerando que G tem produes ou da forma A Ai 1 ...Ain , com Ai s V ou A b, com b .
Se todas as produes de A1 so crescentes, continua-se em A2 . De outra forma, h uma regra A1 recursiva esquerda que substituda como estabelecido em 6. Da vai-se para as produes A2 , substituindo por A1 quando encontrada uma produo da forma A2 A1 x , e ento eliminam-se recurses esquerda em A2 , se houver. E assim por diante at An . Ento faz-se a substituio de volta de cima para baixo pondo G na FNG. Finalmente, aplica-se a substituio de novo, s novas variveis introduzidas quando a recurso esquerda foi eliminada.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Forma Normal de Greibach: Um Exemplo


Exemplo:
A1 A2 A2 |0: crescente A2 A1 A2 |1: no crescente

Como as produes A1 so crescentes, no se mexe nelas. Deve-se mexer nas produes A2 , substituindo A1 pelas suas produes:
A1 A2 A2 |0 A2 A2 A2 A2 |0A2 |1

Observe que agora, a primeira produo A2 tem recurso esquerda. Seja v = A2 A2 , w1 = 0A2 e w2 = 1, j que A Av |w deve ser transformado em A wB |w e B vB |v (conforme procedimento de eliminao em 6), vem:
A1 A2 A2 |0 A2 0A2 |1|0A2 B |1B B A2 A2 |A2 A2 B
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto

Forma Normal de Greibach: Um Exemplo


Agora tanto as produes A1 quanto as produes A2 so crescentes. Deve-se colocar as produes na FNG, fazendo aparecer um smbolo terminal esquerda do lado direito de cada produo:
A1 0A2 A2 |0A2 BA2 |1A2 |1BA2 |0 A2 0A2 |0A2 B |1|1B

E em B deve-se eliminar variveis na posio mais esquerda do lado direito:


A1 0A2 A2 |0A2 BA2 |1A2 |1BA2 |0 A2 0A2 |0A2 B |1|1B B 0A2 A2 |0A2 BA2 |1A2 |1BA2 |0A2 A2 B |0A2 BA2 B |1A2 B |1BA2 B

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

Sumrio
1

Linguagens Livres de Contexto Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto Autmatos de Pilha A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia Programas, Linguagens e Parsing Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

A Pilha como Processador de Linguagem


Nesta seo vai-se estabelecer uma das equivalncias mais importantes na cincia da computao terica: prova-se que uma linguagem livre de contexto se e somente se algum autmato de pilha possa aceitar a linguagem de uma forma precisa. Este resultado tem importncia prtica e terica, porque um armazm de pilha a base para muitos algoritmos usados no parsing de linguagens livres de contexto. Uma pilha, familiar em cincia de computao, uma estrutura last-in rst-out com uma operao push que adiciona pilha e uma operao pop que remove o elemento do topo da pilha, se existir.

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

A Pilha como Processador de Linguagem


A noo pura de uma pilha, descrita informalmente acima, aumentada pela noo de transio de estado no determinstico, prov um modelo de autmato completo para linguagens livres de contexto. Entretanto, certa estrutura adicional tambm conveniente, e os prximos trs exemplos mostram porque isto assim. Exemplo: Considere a linguagem {w |w (a + b) , w tem um nmero igual de a s e b s}. Esta linguagem informalmente aceitvel por uma pilha usando o seguinte algoritmo. Inicialmente, a pilha est vazia. Percorra a cadeia w da esquerda para a direita, e realize as seguintes operaes, baseado no smbolo corrente no topo da pilha.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

A Pilha como Processador de Linguagem


Algoritmo:
1

se a pilha estiver vazia e o smbolo corrente de w for um a, ponha A na pilha; se a pilha estiver vazia e o smbolo corrente de w for um b, ponha B na pilha; se o smbolo no topo da pilha for um A e o smbolo corrente de w for um a, coloque (push) um outro A na pilha; se o smbolo no topo da pilha for um B e o smbolo corrente de w for um b, coloque (push) um B na pilha; se o smbolo no topo da pilha for um A e o smbolo corrente de w for um b, retire (pop) da pilha; se o smbolo no topo da pilha for um B e o smbolo corrente de w for um a, retire (pop) da pilha.

Uma cadeia w tem um nmero igual de a s e b s se e somente se, depois de processar w , a pilha estiver vazia.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

A Pilha como Processador de Linguagem


Segue um programa de pilha para o algoritmo anterior. Z0 denota o fundo da pilha. A notao x , D , v signica se x o prximo smbolo da cadeia de entrada w e D o smbolo no topo da pilha, ento substitua D pela cadeia v . Pilha = cadeia, topo da pilha o smbolo mais a esquerda. Ento a descrio informal precedente pode ser rescrita como se segue:
1 2 3 4 5 6 7

a, Z0 , AZ0 b, Z0 , BZ0 a, A, AA b, B , BB a, B , b, A, , Z0 , : regra-: quando no houver entrada, apaga Z0


Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

Sumrio
1

Linguagens Livres de Contexto Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto Autmatos de Pilha A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia Programas, Linguagens e Parsing Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

O Autmato de Pilha
Exemplo. Considere a linguagem {wcw R |w (a + b) }. Esta linguagem reconhecvel por um autmato do tipo do ltimo exemplo, mas um jeito mais conveniente de reconhec-la aumentar a maquinaria da pilha com uma estrutura de estados nitos consistindo de dois estados, um chamado push para processar a primeira metade da cadeia, o outro, chamado pop, para a segunda metade. A entrada c engatilha a transio de push para pop. Vai-se usar agora a notao q , x , D , q , v para signicar se a mquina de estados estiver no estado q , x for o prximo smbolo da cadeia de entrada e D for o smbolo no topo da pilha, ento a mquina de estados pode mudar para o estado q e substituir D pela cadeia v .
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

O Autmato de Pilha
Deve-se usar o smbolo Z para um smbolo de pilha arbitrrio. Ento a instruo push, a, Z , push, AZ o resumo para as trs instrues:
push, a, Z0 , push, AZ0 push, a, A, push, AA push, a, B , push, AB

Usando esta notao aumentada, pode-se descrever o autmato de pilha (APN) como:
1 2 3 4 5 6

push, a, Z , push, AZ push, b, Z , push, BZ push, c , Z , pop, Z pop, a, A, pop, pop, b, B , pop, pop, , Z0 , pop,
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

O Autmato de Pilha
Note que o APN ir parar (no ter instrues para seguir) se ele ler um a enquanto B estiver no topo da pilha, no estado pop. A seguinte tabela mostra as conguraes de pilha sucessivas nos segmentos de cadeia sucessivos para entrada abbcbba: cadeia pilha abbcbba Z0 bbcbba AZ0 bcbba BAZ0 cbba BBAZ0 BBAZ0 bba ba BAZ0 a AZ0 Z0
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

O Autmato de Pilha
Denio: Um autmato de pilha (APN) (no determinstico) uma sptupla M = (Q , , , , q0 , Z0 , F ), onde:
1 2 3 4

5 6 7

Q um conjunto nito de estados; um conjunto nito de smbolos de entrada; um conjunto nito de smbolos de pilha; o conjunto de transies q , x , Z , q , que tambm se escreve na notao (q , ) (q , x , Z ) tal que se possa considerar como uma funo de transio: : Q ( {}) subconjuntos nitos de Q q0 o estado inicial; Z0 o smbolo de pilha inicial; F Q um conjunto de estados de aceitao.

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

Descrio Instantnea
Dada esta maquinaria, pode-se falar sobre uma descrio instantnea (DI) de um APN M :
Uma DI para um APN uma tripla (q , w , ) onde q um estado, w = x1 x2 ...xn uma cadeia de smbolos de entrada ainda a ser lidos com o APN correntemente lendo x1 , e = Z1 Z2 ...Zm a cadeia de smbolos na pilha com Z1 no topo e Zm no fundo.

As transies entre DIs mapeiam DIs para DIs no-deterministicamente de duas formas: Se M estiver no estado q com o smbolo de entrada corrente x e elemento de pilha corrente A, ento
1

Se q , x , A, q , A1 ...Ak para x uma quntupla do APN, ento M pode (no determinismo!) causar a seguinte transio entre DIs: (q , xw , A ) (q , w , A1 ...Ak ); Se q , , A, q , A1 ...Ak uma quntupla do APN, ento sua execuo pode causar a transio entre DIs: (q , xw , A ) (q , xw , A1 ...Ak ).
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

Aceitao pela Pilha Vazia e pelo Estado Final

Denio: Dene-se a linguagem aceita pela pilha vazia por um APN M como T (M ) = {w |(q0 , w , Z0 ) (q , , ), para qualquer q Q }. Denio: Seja M um APN. Dene-se o conjunto de cadeias aceitas pelo estado nal por M como F (M ) = {w |(q0 , w , Z0 ) (qa , , ), para algum qa F e }. Teorema: Uma linguagem L APN aceitvel pelo estado nal se e somente se ela for APN aceitvel pela pilha vazia.

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

Autmato de Pilha Generalizado

Denio: Um autmato de pilha generalizado um APN que se comporta de acordo com a descrio de mquina da Denio 5 exceto que podem existir transies em as quais lem uma cadeia de smbolos de pilha (ao invs de exatamente um smbolo). Ento, podem existir nitamente muitas quntuplas da forma q , a, B1 ...Bk , q , C1 ...Cn Proposio: Se uma linguagem L aceita por um APN generalizado, ento L aceita por um APN.

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

Autmato de Pilha

Provar-se- que as linguagens livres de contexto so exatamente as linguagens aceitas por autmatos de pilha. Metade deste resultado, que mostra que toda linguagem livre de contexto aceita por um autmato de pilha, baseada na forma normal de Greibach para uma gramtica livre de contexto. Para motivar esta simulao de gramticas livres de contexto por autmatos de pilha, primeiro mostra-se como o AFN derivado de uma gramtica linear a direita pode ser visto como um APN de um estado.

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

Autmato de Pilha
Observao: Dado um AFN M = (Q , , , Q0 , F ), forme o APN de um estado M . Usa-se o smbolo para denotar o estado nico de M . Os smbolos da pilha de M so os estados, Q , de M . Ento pode-se escrever M como: M = ({ }, , Q , , , q0 , { })
As transies de M imitam de acordo com a frmula trate o smbolo no topo da pilha de M como o estado de M , tal que ( , q ) ( , x , q ) sse q (q , x ). ento claro que ( , w , q0 ) ( , , q ) sse q (q0 , w ). Se adicionar-se a as regras ( , ) ( , x , q ) sse (q , x ) F deduz-se que ( , w , q0 ) ( , , ) sse (q0 , w ) F . Ento T (M ) = T (M ).
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

Autmato de Pilha
Em termos de gramtica linear a direita, isto diz que a regra A bB fornece a quntupla , b, A, , B (que agora ser abreviada para b, A, B como no Exemplo 5), enquanto a regra A b fornece a quntupla , b, A, , . Em outras palavras, agora usando S no lugar de q0 , a derivao S w1 A w1 bB w1 bw2 = w imitada pelo APN passando atravs das DIs ( , w , S ) ( , bw2 , A) ( , w2 , B ) ( , , ) Informalmente, isto diz que a cadeia de entrada processada parcialmente contm a poro da cadeia original w que no lida e o total da cadeia aceita sse a varivel na pilha pode derivar esta cadeia.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

Autmato de Pilha
Exemplo: Considere a gramtica para {an bn |n 1} na forma normal de Greibach usando produes P = {S aSB |aB , B b} Dene-se um APN M no determinstico de um estado com as transies a, S , SB , a, S , B , b, B , Claramente, na leitura da cadeia de entrada an bn tem-se os resultados intermedirios possveis
1 2 3

( , an bn , S ) ( , anj bn , SB j ) ( , an bn , S ) ( , ank bn , B k ) (k > 1) ( , a n b n , S ) ( , b n , B n ) A derivao (1) um estgio intermedirio para derivar uma DI da forma (2) ou (3). Mas (2) um dead end nenhuma transio aplicvel - se n > k , enquanto (3) est no caminho da derivao completa
( , an bn , S ) ( , , ).
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

Sumrio
1

Linguagens Livres de Contexto Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto Autmatos de Pilha A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia Programas, Linguagens e Parsing Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

O Teorema da Equivalncia
O teorema da equivalncia estabelece que as linguagens aceitas por APNs so precisamente as linguagens livres de contexto. Teorema: Seja L = L(G) para alguma GLC G. Ento L aceita por algum APN (em geral, no determinstico). Ou seja, L = T (M ) para algum APN.
Sem perda de generalidade, assuma que G est na forma normal de Greibach. Deve-se fornecer um autmato para L(G) na forma de um APN de um estado M . Como M tem apenas um estado pode-se novamente abreviar quntuplas , x , z , , w para a forma x , z , w . Ento associe qualquer regra da forma A bCDE com a instruo APN b, A, CDE . Qualquer regra da forma A b leva transio b, A, . Regras-lambda tornam-se movimentos com nenhuma entrada: A corresponde a , A, .
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

O Teorema da Equivalncia
Exemplo: Considere as seguintes produes de uma gramtica na forma normal de Greibach para a linguagem dos parnteses casados: S (L|, L (LL|) O seguinte uma derivao mais a esquerda da cadeia (()()) nesta gramtica. S (L ((LL (()L (()(LL (()()L (()()) D-se o APN associado (de um estado) a seguir, com o smbolo S designando o fundo da pilha. (, S , L , , S , , (, L, LL , ), L, Para APNs de um estado pode-se reverter o mtodo do resultado prvio para achar uma gramtica livre de contexto que gere a linguagem aceita pelo APN.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

O Teorema da Equivalncia
Exemplo: Considere o Exemplo 5, um APN de um estado que aceita a linguagem de nmeros iguais de a s e b s. As produes da gramtica associada (substituindo Z0 por Z ) so: Z aAZ |bBZ |, A aAA|b, B bBB |a Vai-se resumir este processo estabelecendo o seguinte resultado: Teorema: Seja M um APN de um estado. Ento existe uma GLC G tal que L(G) = T (M ).
Para formar a gramtica, converta triplas da forma a, B , para em produes da forma B a . Converta triplas da forma , B , em produes da forma B .

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia

O Teorema da Equivalncia
Por causa do Teorema 4, precisa-se apenas provar que qualquer APN pode ser simulado por um APN de um estado a m de estabelecer a equivalncia completa de linguagens livres de contexto e a classe de linguagens aceitas pelos APNs. O prximo teorema estabelece este resultado. Teorema: Seja M um APN. Ento existe um APN de um estado M tal que T (M ) = T (M ). Mostrou-se no captulo 1 que todo autmato nito no determinstico (AFN) M equivalente a um determinstico (AFD), M , isto , T (M ) = T (M ). No caso dos APNs, esta equivalncia tambm verdadeira? A resposta no: existem LLCs que no podem ser aceitas por APNs determinsticos.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Sumrio
1

Linguagens Livres de Contexto Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto Autmatos de Pilha A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia Programas, Linguagens e Parsing Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Linguagens de Programao
Como j foi visto, as linguagens livres de contexto so importantes para a cincia da computao porque elas representam um mecanismo razoavelmente adequado para especicar a sintaxe das linguagens de programao. Seja o seguinte exemplo, as construes de programao if-then e if-then-else esto presentes em muitas linguagens de programao. Como uma primeira aproximao, considere as seguintes produes de uma gramtica:
S if C then S else S | if C then S | a | b Cp|q

Aqui, S um (comando) no terminal, C um (condicional) no terminal, a e b so (comandos) terminais, p e q so (condies) terminais e if , then e else so (palavras reservadas) terminais.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Linguagens de Programao
Existem problemas com esta gramtica. Ela gera a linguagem pretendida, mas de forma ambgua. Em particular, if p then if q then a else b pode ser gerado de duas formas (vide gura 4 a e b), correspondendo s duas interpretaes diferentes do comando: if p then (if q then a else b) e if p then (if q then a) else b. Do ponto de vista da programao, um jeito padro de interpretar tais construes associar cada comando else com o if mais prximo.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Linguagens de Programao

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Gramtica Ambgua
As gramticas no ambguas so essenciais para uma especicao sinttica bem denida, de outra forma, um compilador poderia traduzir um programa de formas diferentes gerando resultados completamente diferentes. Logo, o estudo da ambiguidade um aspecto prtico e terico importante da teoria das linguagens formais. Denio: Uma GLC G ambgua se alguma cadeia w L(G) tem duas rvores de derivao distintas. Alternativamente, G ambgua se alguma cadeia em L(G) tem duas derivaes mais a esquerda (ou mais a direita) distintas. Uma gramtica no ambgua se ela no for ambgua e uma linguagem L inerentemente ambgua se toda gramtica para L for ambgua.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Sumrio
1

Linguagens Livres de Contexto Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto Autmatos de Pilha A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia Programas, Linguagens e Parsing Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Parsing
O exemplo do if-then-else ilustra como as gramticas podem ser usadas para gerar construes de linguagens de programao. Dada uma cadeia (um texto de programa) e uma linguagem (de programao) especicada por alguma gramtica, deve ser possvel construir uma rvore de derivao para a cadeia rapidamente e facilmente se a cadeia pertencer linguagem, ou relatar um erro se a cadeia no for bem formada. O problema de fazer derivao de cadeia backward - dada uma cadeia, recuperar sua derivao - conhecido como o problema do parsing para LLCs. Sua soluo satisfatria um dos pontos mais importantes no desenvolvimento da cincia da computao.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Parsing bottom-up e top-down


No momento, interessa uma viso simplicada do parsing: dada uma cadeia w , como se pode dizer se w legalmente gervel por uma determinada GLC G? Existem duas estratgias bsicas para resolver este problema. Uma estratgia, o parsing bottom-up, considera a construo de uma rvore de parse para w , tomando por hiptese uma rvore de derivao para w comeando com o fundo (bottom) - as folhas da rvore - e trabalhando para cima na rvore at a raiz. A segunda estratgia bsica, o parsing top-down, trabalha de outra forma, tomando por hiptese o topo de uma rvore de derivao, comeando primeiro com a raiz.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Parsing bottom-up

Exemplo: Fazer o parsing de expresses aritmticas de baixo para cima. Neste exemplo mostra-se uma gramtica para um fragmento da linguagem de expresses aritmticas (Gbu ) e explica-se um algoritmo simples para fazer o parsing destas expresses bottom-up. O smbolo inicial para a gramtica Gbu E .
1 2 3 4 5 6

E E T T F F

E +T T T F F (E ) 2

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Parsing bottom-up
Agora suponha que se deseja decidir se a cadeia 2+22 gerada pela gramtica Gbu . A abordagem rodar a derivao backward, simulando uma derivao mais a direita como se processa a cadeia da esquerda para a direita. Os primeiros cinco passos do processo:
1 2 3 4 5

2 + 2 2 F + 2 2 (reverso 6) T + 2 2 (reverso 4) E + 2 2 (reverso 2) E + F 2 (reverso 6) E + T 2 (reverso 4)

E agora est-se num ponto crucial no parsing. Trs caminhos so possveis:


1 2 3

converter E + T em E , deixando E 2; converter T em E , deixando E + E 2; converter 2 em F , deixando E + T F .


Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Parsing bottom-up
As primeiras duas escolhas no so viveis - elas levam a dead ends, a partir das quais no h parsing bem sucedido possvel. Escolha (3) que levar a um parsing bem sucedido, atravs de
1 2

converter T F a T ; converter E + T a E , o smbolo inicial da gramtica.

Este exemplo ilustra o no determinismo possvel no processo de parsing. O projeto de parsers ecientes parsers que limitam, ou eliminam completamente, o tipo de no determinismo que se viu neste exemplo - o maior componente da rea da cincia da computao conhecido como anlise sinttica.

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Parsing top-down
Exemplo: o parsing top-down. Linguagem de programas-while (fragmento do C):
{ y = 0; while (x != y) y++; }

Este programa estabelece a valor de y igual ao de x , isto , o programa realiza o comando de atribuio y = x . Vai-se agora mostrar uma gramtica simples (Gtd ) para a sintaxe desta linguagem:
= {{, }, , ++, =, ! =, while, ; , (, ), 0, x , y } V = {C , S , S1 , S2 , A, W , U , T , N } Smbolo Inicial = C
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Parsing top-down
Gtd :
Produes =
1 2 3 4 5 6 7 8 9

C {S1 } (C para comando composto) S1 S S2 S 2 S 1 | SA|W |C A U = N ; |U T ; (A para comando de atribuio) T | ++ W while (U ! = U ) S (W para comando while) Ux |y N0

O parsing top-down completamente determinstico: nenhum backtracking necessrio, e em todo estgio pode-se predizer sem diculdade qual produo apropriada, dado o smbolo do texto corrente. A tcnica top-down chamada de parsing LL.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

Sumrio
1

Linguagens Livres de Contexto Linguagens Livres de Contexto Lema do Bombeamento para Linguagens Livres de Contexto Formas Normais para Gramticas Livres de Contexto Autmatos de Pilha A Pilha como Processador de Linguagem O Autmato de Pilha O Teorema da Equivalncia Programas, Linguagens e Parsing Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

GLC e a Lngua Natural


J foi dito que a teoria moderna das gramticas formais segue em parte das teorias da lngua natural que foram desenvolvidas pelo linguista Noam Chomsky. Vai-se descrever agora brevemente como as gramticas formais podem ser usadas para descrever lngua natural.
As categorias da lngua natural so associadas a smbolos no terminais de uma gramtica:
S : Sentena SN : Sintagma Nominal SV : Sintagma Verbal Adj : Adjetivo Det : Determinante V : Verbo N : Substantivo Prep: Preposio SA: Sintagma Adjetival SP : Sintagma Preposicional
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

GLC e a Lngua Natural


Pode-se escrever agora uma GLC que descreve a estrutura sinttica de um pequeno subconjunto do Portugus:
S SN SV SN Det N | Det SA N | Det N SA | Det SA N SA SA Adj SA | Adj SV Vlig SP SP Prep SN

claro que as palavras do Portugus constituem os smbolos terminais desta gramtica, e portanto deve-se adicionar produes da forma:
Vlig | est Det o | a | os | as | um Prep em | sobre | para

etc. Dada esta gramtica pode-se derivar sentenas como A grande bola vermelha est sobre a mesa (gura 4).
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

GLC e a Lngua Natural


Figure: rvore de derivao para A grande bola vermelha est sobre a mesa.

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Linguagens Livres de Contexto Autmatos de Pilha Programas, Linguagens e Parsing

Linguagens de Programao Parsing Gramticas Livres de Contexto e a Lngua Natural

GLC e a Lngua Natural


Um problema imediato com esta gramtica a concordncia de caso. A gramtica gera sentenas do tipo As grande bola vermelhas esto sobre as mesa. Deve-se portanto, incluir as concordncias de gnero e nmero. Vrios problemas lingusticos surgiro a partir desta gramtica simples. Distores no livres de contexto. Chomsky argumenta que uma lngua natural no pode ser gerada por uma GLC. H a necessidade de algo mais complexo.
Joo Lus Garcia Rosa, 2009 SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Apndice

Bibliograa

Bibliograa I
[1] Hopcroft, J. E., Ullman, J. D. Formal Languages and Their Relation to Automata. Addison-Wesley Publishing Company, 1969. [2] Hopcroft, J. E., Ullman, J. D. e Motwani, R. Introduo Teoria de Autmatos, Linguagens e Computao. Traduo da segunda edio americana. Editora Campus, 2003. [3] JFLAP Version 6.0. Ferramenta para Diagrama de Estados. www.jflap.org.

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Apndice

Bibliograa

Bibliograa II

[4] Moll, R. N., Arbib, M. A., and Kfoury, A. J. An Introduction to Formal Language Theory. Springer-Verlag, 1988. [5] Rosa, J. L. G. SCE-0185 - Teoria da Computao e Linguagens Formais. Slides. Cincias de Computao. Instituto de Cincias Matemticas e de Computao. Universidade de So Paulo, 2008.

Joo Lus Garcia Rosa, 2009

SCC-5832: II. Ling. Livres de Contexto e Autmatos de Pilha

Anda mungkin juga menyukai