• Nenhum resultado encontrado

2.4

Forma Estendida de Backus-Naur

A Forma Estendida de Backus-Naur (EBNF) est´a na categoria das metalinguagens sint´aticas, as quais podem ser definidas como notac¸˜oes para a descric¸˜ao formal da sintaxe de outras linguagens atrav´es de regras [36]. Um ˆambito comum de aplicac¸˜ao ´e a definic¸˜ao de linguagens de programac¸˜ao, a exemplo da linguagem Algol 60, descrita pela Forma de

Backus-Naur(BNF).

2.4.1

Metalinguagem Sint´atica

Cada regra de uma metalinguagem sint´atica (MS) ´e composta por s´ımbolos n˜ao-terminais e terminais. Os s´ımbolos n˜ao-terminais s˜ao conceitos que podem ser particionados em outros elementos, enquanto os terminais s˜ao atˆomicos, constituindo a menor parte da MS.

Segundo a norma ISO/IEC 14977:1996 [36], ´e recomendada a utilizac¸˜ao de uma metalin- guagem sint´atica quando houver a necessidade de uma descric¸˜ao ou definic¸˜ao formal clara. Ainda segundo a norma ISO/IEC 14977, ´e desej´avel que uma MS seja:

1. Concisa: para que as linguagens sejam descritas de forma breve; 2. Precisa: para que as regras n˜ao contenham ambiguidade;

3. Formal: para que seja poss´ıvel o processamento das regras por um computador; 4. Natural: para que seja simples o suficiente de ser entendida por pessoas que n˜ao pro-

jetaram a linguagem;

5. Geral: para que a notac¸˜ao possa ser aplicada na descric¸˜ao de v´arias linguagens; 6. Simples: para que o conjunto de caracteres utilizados estejam presentes nos teclados

comuns e possam ser entendidos por outros softwares;

7. Auto-descritiva: para que a notac¸˜ao seja capaz de se auto-descrever;

8. Linear: para que a sintaxe possa ser representada por um ´unico fluxo de caracteres, facilitando o processamento dos computadores.

A Forma de Backus-Naur ´e atualmente uma das metalinguagens sint´aticas mais utilizadas na comunidade cient´ıfica, tanto em sua forma original quanto atrav´es de suas variac¸˜oes, a

2.4 Forma Estendida de Backus-Naur 25

exemplo de Extended BNF (EBNF) e Augmented BNF (ABNF). Essas variac¸˜oes surgiram devido a limitac¸˜oes do BNF, como a descric¸˜ao dos seus s´ımbolos reservados na linguagem a ser definida e a complexidade em descrever algumas construc¸˜oes, a exemplo da repetic¸˜ao [36].

Devido aos problemas supracitados do BNF, a MS escolhida para a descric¸˜ao formal das fontes do Direito foi a Forma Estendida de Backus-Naur, pois esta atende a todos os requi- sitos enumerados pela ISO/IEC 14977 e as fontes podem ser descritas em uma linguagem linear.

2.4.2

Sintaxe

A especificac¸˜ao BNF ´e composta por regras, tornando poss´ıvel especificar completamente a sintaxe v´alida de uma fonte textual. Essas regras possuem a seguinte forma:

<s´ımbolo n˜ao-terminal> ::= express˜ao

Cada regra representa uma substituic¸˜ao v´alida de um s´ımbolo n˜ao-terminal por uma ex- press˜ao, formada por s´ımbolos terminais e/ou n˜ao-terminais. Para escrever uma regra s˜ao usados meta-s´ımbolos (como “::=” e “|”) que n˜ao devem ser confundidos com os s´ımbolos da metalinguagem representada. Assim como em outras variac¸˜oes do BNF, o EBNF cont´em algumas modificac¸˜oes para facilitar a representac¸˜ao de uma linguagem [36]:

• Os s´ımbolos reservados da metalinguagem podem ser citados atrav´es de aspas, assim n˜ao h´a restric¸˜oes na utilizac¸˜ao deles na linguagem a ser descrita;

• [ e ] expressa que um s´ımbolo ou express˜ao ´e opcional;

• { e } tamb´em expressam repetic¸˜ao, al´em do s´ımbolo * (asterisco) advindo do BNF; • O fim de cada regra ´e indicado pelo s´ımbolo ; (ponto-e-v´ırgula), assim n˜ao h´a ambi-

guidade quanto ao in´ıcio e fim das regras;

• ( e ) agrupam os s´ımbolos, assim como na representac¸˜ao matem´atica.

2.4 Forma Estendida de Backus-Naur 26

1. Especificac¸˜ao da quantidade de itens, caso o projetista de uma linguagem queira ex- pressar que determinado s´ımbolo possui valor fixo;

2. Definic¸˜ao atrav´es de casos, a exemplo de um coment´ario na linguagem Algol, que pode terminar com o primeiro end, else ou ponto-e-v´ırgula;

3. Introduc¸˜ao de coment´arios nas regras, facilitando o entendimento de regras complexas sem a necessidade de documentac¸˜ao anexa;

4. Meta-identificadores, permitindo que os s´ımbolos n˜ao-terminais possuam mais de um nome sem deixar a regra amb´ıgua. Isso ´e poss´ıvel atrav´es da introduc¸˜ao de um s´ımbolo expl´ıcito de concatenac¸˜ao: , (v´ırgula);

5. Possibilidade de extens˜oes, atrav´es do s´ımbolo especial ? (interrogac¸˜ao).

A Tabela 2.4 exibe a descric¸˜ao dos s´ımbolos do EBNF, adaptada da norma ISO/IEC 14977 [36]:

S´ımbolo Representac¸˜ao Inicial Representac¸˜ao Final

Concatenac¸˜ao , Definic¸˜ao = Excec¸˜ao - Repetic¸˜ao * Sequˆencia Especial ? Separador-definic¸˜oes | Fim-regra ; Coment´ario (* *) Agrupamento ( ) Opc¸˜ao [ ] Repetic¸˜ao (express˜ao) { } Citac¸˜ao (aspas) “ ”

Citac¸˜ao (aspas simples) ‘ ’

Tabela 2.4: S´ımbolos do EBNF (adap. de ISO/IEC 14977:1996 [36])

2.4.3

Exemplos

Exemplo 1, com os s´ımbolos de concatenac¸˜ao, definic¸˜ao, separador-definic¸˜oes e fim-regra: redac¸˜ao = introduc¸˜ao , desenvolvimento , conclus˜ao ;

2.4 Forma Estendida de Backus-Naur 27

No primeiro exemplo, foi descrito que uma redac¸˜ao ´e composta por introduc¸˜ao, desen- volvimento e conclus˜ao, dispostos nessa ordem. A letra a ser utilizada pode ser tanto cursiva quanto de forma.

Exemplo 2, retirado da ISO/IEC 14977 [36], o qual ilustra como s˜ao representadas as repetic¸˜oes:

aa = “A”;

bb = 3 * aa, “B”; cc = 3 * [aa], “C”; dd ={aa}, “D”; ee = aa,{aa}, “E”; ff = 3 * aa, 3 * [aa], “F”;

Sa´ıda:

aa: A bb: AAAB

cc: C AC AAC AAAC

dd: D AD AAD AAAD AAAAD etc. ee: AE AAE AAAE AAAAE AAAAAE etc. ff: AAAF AAAAF AAAAAF AAAAAAF

Para indicar que uma repetic¸˜ao ´e realizada pelo menos uma vez, ´e utilizado o s´ımbolo de excec¸˜ao ap´os os s´ımbolos de repetic¸˜ao: {s´ımbolo}-. Caso a regra dd fosse {aa}-, “D”, a sa´ıda D n˜ao seria v´alida.

O objetivo da descric¸˜ao formal das fontes do Direito na Forma Estendida de Backus-Naur ´e servir como padr˜ao para a extrac¸˜ao autom´atica de partes dos documentos, tornando poss´ıvel o armazenamento estruturado destes. Essa descric¸˜ao ser´a utilizada na fase de casamento de padr˜oes, supracitada na Sec¸˜ao2.3.1.