Backus-Naur Form: differenze tra le versioni

→‎Introduzione: Chiarimenti su metalinguaggi che non sono BNF
m (Bot: Aggiungo template {{interprogetto}} (FAQ))
(→‎Introduzione: Chiarimenti su metalinguaggi che non sono BNF)
:<nowiki><simbolo> → __espressione__</nowiki>
 
Le due forme sono assolutamente equivalenti ma la seconda è sbagliata perché non fa parte della BNF. E' un'invenzione di chi l'ha scritto. La prima forma, che verrà utilizzata nel seguito, utilizza caratteri ASCII standard ed è quella più utilizzata per scrivere grammatiche che devono essere utilizzate dai calcolatori e lette in file di testo. La seconda forma è meno utilizzabile nella pratica, ma è comune nei testi e negli articoli di informatica teorica in quanto meglio esprime l'operazione di derivazione delle stringhe di un linguaggio a causa dell'applicazione delle regole di derivazione. Oltre a queste due forme se ne possono trovare altre decine, l'importante è capire che la BNF è un metalinguaggio formale e non prevede altri simboli se non ::=. Altri metalinguaggi che utilizzano altri simboli non sono la BNF.
Nelle regole di derivazione <simbolo> (i caratteri < e > sono obbligatori) viene detto un '''simbolo nonterminale''' e __espressione__ è costituita da una o più sequenze di simboli '''terminali''' (descritti più avanti) o nonterminali, identificabili perché racchiusi tra < >; se le sequenze sono più di una esse sono separate dalla barra verticale '|'. La regola esprime il fatto che il nonterminale a sinistra della regola può essere ''sostituito'' da una qualsiasi delle sequenze indicate sulla destra. Inoltre in una sequenza alcuni simboli o sottosequenze possono essere indicati come opzionali racchiudendoli fra parentesi quadre.
Utente anonimo