• Nenhum resultado encontrado

O Meta-c´alculo e as Meta-gram´aticas de Jackson

1.5 Gram´aticas que identificam a classe RE

1.5.3 O Meta-c´alculo e as Meta-gram´aticas de Jackson

Desenvolvido por Quinn Tyler Jackson[12], o c´alculo-§4 ´e outra infraestrutura para um formalismo gramatical, com poder de m´aquina de Turing[40]. O c´alculo-§ ´e o c´alculo das transforma¸c˜oes de uma gram´atica durante um ou v´arios reconhecimen- tos. Uma gram´atica-§ ´e um conjunto de fun¸c˜oes, produ¸c˜oes e predicados que agem em alto n´ıvel manipulando estruturas sint´aticas em lugar de manipular s´ımbolos de baixo n´ıvel. As gram´aticas-§ agem como reconhecedores, consumindo texto de entrada e efetuando redu¸c˜oes at´e chegar ao s´ımbolo inicial (raiz da gram´atica).

Enquadrando seu trabalho no contexto do discurso de Shutt[11], Jackson define que as gram´aticas que podem alterar suas produ¸c˜oes de acordo com os dados de en- trada s˜ao adaptativas (“adaptive” no original). Essa caracter´ıstica das gram´aticas-§ pode ser explorada, por exemplo, na remo¸c˜ao da ambig¨uidade (opera¸c˜ao comu- mente denominada, em inglˆes, “disambiguation”), que age como uma modifica¸c˜ao local nas gram´aticas-§ , efetuada durante o reconhecimento de uma senten¸ca. As gram´aticas-§ podem tamb´em realizar mudan¸cas globais e, deste modo, esse formal- ismo representa uma unifica¸c˜ao da taxonomia proposta por Shutt, que dividia as gram´aticas “adapt´aveis” (“adaptable” no original) em “declarativas”, que podiam fazer mudan¸cas locais, e “imperativas”, que podiam operar mudan¸cas globais.

O modelo das gram´aticas-§ tem evolu´ıdo no decorrer do tempo: em Jackson[12], era usado um autˆomato auto-modific´avel[7], para responsabilizar-se pelas mudan¸cas locais; em Jackson[23], ´e apresentado um autˆomato de pilha “estendido”, que possui uma ´arvore de busca de tipo trie5, para armazenar os terminais coletados; nesse trie a gram´atica-§ pode efetuar mudan¸cas locais ou globais, que mudam a interpreta¸c˜ao semˆantica de um dado terminal.

´

E conveniente ressaltar que o trabalho de Jackson sobre gram´aticas-§ e o trabalho de Iwai[1] foram desenvolvidos como pesquisas independentes, sem comu- nica¸c˜ao entre os autores, mas possuem alguns paralelos de nomenclatura e nota¸c˜ao; por exemplo, ambos autores denominaram seus modelos de gram´aticas adaptativas

e usaram o s´ımbolo ←, embora com significados diferentes, sendo que Jackson re- tirou posteriormente esse s´ımbolo da descri¸c˜ao de seu modelo. Por outro lado as gram´aticas adaptativas de Iwai s˜ao dispositivos geradores enquanto as gram´aticas-§ operam como reconhecedores.

Todos esses desenvovimentos te´oricos tˆem dado origem a v´arias implementa¸c˜oes, a ´ultima das quais ´e o Analisador Adaptativo Meta-S (em inglˆes: Adaptive Parser),

4 O s´ımbolo § se lˆe “Meta-S”; traduzimos §-calculus e §-grammar por “Meta-c´alculo” e “Meta-

gram´aticas” e os denotamos c´alculo-§ e gram´atica-§.

5Uma ´arvore para armazenar palavras em que h´a um n´o para cada prefixo comum. As palavras

1.5. GRAM ´ATICAS QUE IDENTIFICAM A CLASSE RE 25 um ambiente de desenvolvimento para gram´aticas-§ ; o Meta-S foi desenvolvido em C-Builder da Borland, e tem a capacidade de operar como um ambiente de execu¸c˜ao para as gram´aticas-§ nele desenvolvidas, podendo ainda gerar (no estilo yacc, por´em com produto muito mais complexo e completo) o analisador correspondente a uma gram´atica-§ como um conjunto de classes C++ que podem ser incorporadas em qualquer projeto, em qualquer plataforma que possua um compilador C++6.

A seguir definimos os conceitos b´asicos e introduzimos alguns exemplos, ex- tra´ıdos de Jackson[23] e [24], para esclarecer a nota¸c˜ao.

Defini¸c˜ao 1.5.6 Uma gram´atica-§ ´e uma s´eptupla G = (N, T, C, S, Q, P, Φ) onde: - N ´e o conjunto finito de n˜ao-terminais,

- T ´e o conjunto finito de terminais,

- C ´e um conjunto de conjuntos (chamados “classes”), potencialmente infinito, - S ∈ N ´e o s´ımbolo inicial da gram´atica-§

- Q ⊂ (N ∪C) ´e um conjunto distinguido, potencialmente infinito, de predicados (denominados tamb´em “qualificadores de terminais”)

- P ´e um conjunto de produ¸c˜oes da forma X → Y tal que:

X ∈ (N ∪ C) e Y ∈ (N ∪ T ∪ C ∪ Q ∪ Φ)

e Y pode, atrav´es de express˜oes φ da forma < α >β com α ∈ (N ∪ T ∪ C ∪ Φ)∗, adicionar ou retirar elementos no conjunto C; essas opera¸c˜oes podem ser

globais ou locais.

- Φ ´e um conjunto finito de express˜oes φ.

As express˜oes φ adicionam ou eliminam elementos do conjunto C, e s˜ao re- spons´aveis pelas mudan¸cas na gram´atica.

Defini¸c˜ao 1.5.7 (Express˜oes φ) Uma express˜ao φ ´e da forma < α >−b!ou φ(∆)−b!

onde

- α ´e um padr˜ao de busca, dado por uma express˜ao regular, por exemplo [a − z]+

6Uma vers˜ao de avalia¸c˜ao do Meta-S pode ser obtida para prop´ositos de pesquisa no endere¸co

- ∆ ∈ N ∪T ∪{β}, tal como “(” β“)” onde β´e o elemento mais recentemente adicionado ao trie β

- β ´e um “named trie”, tal que β ∈ C, no qual ´e depositado o resultado da pesquisa de α.

- Os s´ımbolos − e ! s˜ao opcionais e significam “retirar” e “local” respectiva- mente. O comportamento-padr˜ao ´e adicionar β globalmente.

Defini¸c˜ao 1.5.8 (Express˜oes Ψ) As express˜oes Ψ comportam-se como predicados e permitem interse¸c˜ao de subgram´aticas durante o reconhecimento. Uma express˜ao

Ψ ´e da forma Ψ(α)θ onde

- α ´e um ou v´arios elementos de C, ou ent˜ao um ou mais terminais - θ ∈ Q

o reconhecimento continua se e somente se θ ´e satisfeito, aceitando α.

Exemplo 1.5.3 Consideremos a gram´atica-§ G:

S → < A >N !Ψ(“(” N“)”)W; A → w, onde w ∈ T;

W → “(” ’[a − z]+’ “)”;

A segunda produ¸c˜ao aceita uma cadeia arbitr´aria de carateres; essa cadeia ent˜ao ´e testada com o predicado W que somente aceita cadeias de letras min´usculas entre parˆentesis. A id´eia ´e que o terminal aceito por A seja posteriormente qualificado por W ; ´e por isso que os predicados s˜ao chamados tamb´em de qualificadores de terminais.

1.5. GRAM ´ATICAS QUE IDENTIFICAM A CLASSE RE 27 Exemplo 1.5.4 (Mudan¸cas globais e locais) Consideremos as produ¸c˜oes

A1 → < expr >x! /* mudan¸ca local */ A2 → < expr >x /* mudan¸ca global*/

No caso de A1, qualquer coisa que seja coletada em expr ´e vinculada “localmente”(no espa¸co da entrada) ao trie x e esse v´ınculo dura enquanto a produ¸c˜ao A1 est´a ativa; no caso de A2 qualquer coisa coletada em expr ´e vinculada “globalmente”(em tempo de parsing) ao trie x e pode ser acessado fora de A2. Como exemplo de mudan¸ca local, consideremos

B → A1 “ : ” A1 A1 → <′ [a − Z]+>

x!Ψ(x)C “, ”A1.x C →′ [a − z]+

com texto-fonte “a,a:b,b”. A primeira vez que a produ¸c˜ao A1 ´e utilizada, a express˜ao

A1.x ´e vinculada `a “a”; na segunda vez que A1 ´e utilizada, ap´os a leitura do s´ımbolo “:”, A1.x ´e vinculada `a “b”, sendo que o v´ınculo anterior ´e esquecido. Em outras palavras A1.x ´e “local” `a A1, na nomenclatura das gram´aticas-§ , diz-se que A1.x “varia no espa¸co da entrada”, pois as mudan¸cas acontecem `a medida que o texto- fonte ´e examinado.

Como exemplo de mudan¸ca global, consideremos

B → A1 “ : ” A2 A1 →<′ [a − Z]+>

x Ψ(x)C “, ”A1.x A2 → A1.x

C →′ [a − z]+

neste caso, o texto-fonte “a,a:b,b”´e rejeitado, pois na primeia vez que a produ¸c˜ao A1 ´e utilizada, a express˜ao A1.x ´e vinculada globalmente a “a”, isto quer dizer que a terceira produ¸c˜ao, em qualquer momento posterior do parsing, ´e interpretada como

Exemplo 1.5.5 Gram´atica adaptativa do c´alculo-§ que gera a linguagem L = {anbncn: n ≥ 0}. Consideremos a gram´atica-§ G = (N, T, C, S, Q, P, Φ):

- N = {S, A, B}, - T = {“a”, “b”, “c”}, - C = {S.W !, S.X!, S.Y !},

- S, o s´ımbolo inicial da gram´atica - Q = {S.Ψ(W X)A, S.Ψ(XY )B}, - P = {S →< a+ > W !< b+ >X!< c+ >Y ! Ψ(W Y )AΨ(XY )B, A → a[A]b, B → b[B]c}, - Φ = {< a+ >< S.W ! >, < b+ > S.X!, < c+>S.Y !}. onde a produ¸c˜ao S →< a+> W !< b+ >X!< c+ >Y ! Ψ(W X)AΨ(XY )B, significa

1. Coletar todas as letras “a” e colocar o resultado em S.W !, 2. Coletar todas as letras “b” e colocar o resultado em S.X!, 3. Coletar todas as letras “c” e colocar o resultado em S.Y !, 4. Concatenar S.W ! e S.X! e comparar o resultado com A,

5. Se o passo anterior deu igualdade, concatenar S.X! e S.Y ! e comparar o re- sultado com B,

6. Se o passo anterior deu igualdade ent˜ao foi reconhecido o s´ımbolo inicial S. Analisemos a cadeia aaabbbccc usando a gram´atica-§ G:

1. S.W ! = aaa 2. S.X! = bbb 3. S.Y ! = ccc

1.6. PODER COMPUTACIONAL VS N ´UCLEO M´INIMO 29

4. Concatenando S.W ! com S.X! obtemos S.W !S.X! = aaabbb que satisfaz o predicado A.

5. Concatenando S.X! com S.Y ! obtemos S.X!S.Y ! = bbbccc que satisfaz o predi- cado B.

e portanto a gram´atica-§ G aceita aaabbbccc. O n´umero de passos conceituais per- manece constante em 6, enquanto com as gram´aticas dependentes de contexto tradi- cionais, `a medida que n cresce tamb´em cresce o n´umero de passos nas deriva¸c˜oes.

Nesta se¸c˜ao estudamos trˆes modelos gramaticais com poder de m´aquina de Tu- ring: gram´aticas-W, gram´aticas adapt´aveis recursivas, e gram´atica-§; os trˆes modelos

podem incrementar, sem limite, durante sua opera¸c˜ao, a quantidade de produ¸c˜oes e s´ımbolos n˜ao-terminais que os definem. Os dois primeiros modelos s˜ao dispositivos geradores enquanto o terceiro, opera como dispositivo reconhecedor. Na seguinte se¸c˜ao comparamos esses modelos gramaticais com os modelos de m´aquinas de es- tado, estudados na se¸c˜ao anterior, para situar o modelo proposto nesta tese face `as caracteristicas m´ınimas que objetivamos para obter poder de m´aquina de Turing.