BNF - Significado

 

    A forma de Backus-Naur (também conhecido como BNF, formalismo de Backus-Naur, forma normal de Backus, ou forma de Panini-Backus) é uma meta-sintaxe usada para expressar gramáticas livres de contexto: isto é, um modo formal de descrever linguagens formais.
    A BNF é amplamente usada como uma notação para as gramáticas de linguagens de programação, conjuntos de instruções e protocolos de comunicação, e também como notação para representar partes de gramáticas de linguagens naturais. A maioria dos livros-texto para teoria de linguagem de programação e/ou semântica documenta a linguagem de programação em BNF.

    Uma especificação BNF é um conjunto de regras de derivação, escritas como: 

    Onde é um não-terminal, e a expressão consiste em sequências de símbolos e/ou sequências separadas pela barra vertical, '|', indicando uma escolha. Esta notação indica as possibilidades de substituição para símbolo da esquerda. Símbolos que nunca aparecem no lado esquerdo são ditos terminais.

    A notação BNF também introduz um conjunto de operadores destinados a simplificar a representação das regras da gramática que envolvam alternativas, repetições e combinações. Esses operadores são descritos na seqüência.

    O operador | (ou) permite expressar em uma mesma regra produções alternativas. Por exemplo, a regra:

equivale às duas regras:

    O operador [ ] (Opcional) permite expressar zero ou uma ocorrência do símbolo especificado. Por exemplo, a regra:

equivale a

onde ε representa a string vazia.

    O operador ( | ) (fatoração) permite expressar a combinação de símbolos alternativos, como em:

que equivale a

    

O operador * (repetição), assim como para expressões regulares, expressa 0 ou mais ocorrências do símbolo. Por exemplo, a regra:

 

equivale a

 

Assim, a ocorrência do padrão no lado direito de uma produção equivale a 

    

    O operador { | | }* (Concatenação)  permite expressar a repetição múltipla de símbolos concatenados. Por exemplo, a regra:

equivale a

 

Fontes:

www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node44.html

pt.wikipedia.org/wiki/Formalismo_de_Backus-Naur