Backus-Naur Form: differenze tra le versioni

→‎Esempio: Evidenza sintassi
m (Bot: accenti)
(→‎Esempio: Evidenza sintassi)
Si vuole descrivere in modo formale, preciso e non ambiguo le regole da seguire per scrivere un indirizzo su una lettera. Anche un "micro-linguaggio" come questo richiede una specifica BNF piuttosto articolata quindi l'esempio ha subito alcune semplificazioni. Questo primo esempio contiene solo simboli non terminali e la sua specifica BNF potrebbe essere:
 
<syntaxhighlight lang="bnf">
:<nowiki><indirizzo postale> ::= <destinatario> <indirizzo> <località></nowiki>
 
 
:<nowiki><località> ::= [<CAP>] <comune> <provincia></nowiki>
</syntaxhighlight>
 
Questo frammento di specifica può essere tradotto in italiano come segue:
Come esempio:
 
<syntaxhighlight lang="bnf">
:<nowiki><indirizzo postale></nowiki>
</syntaxhighlight>
:<nowiki>(applicando la regola 1 diventa)</nowiki>
<syntaxhighlight lang="bnf">
:<nowiki><destinatario> <indirizzo> <località></nowiki>
</syntaxhighlight>
:<nowiki>(applicando la regola 2 diventa)</nowiki>
<syntaxhighlight lang="bnf">
:<nowiki>[<titolo>] [<nome>|<iniziale>] <cognome> <a capo> <indirizzo> <località></nowiki>
</syntaxhighlight>
:<nowiki>(applicando la regola 3 diventa)</nowiki>
<syntaxhighlight lang="bnf">
:<nowiki>[<titolo>] [<nome>|<iniziale>] <cognome> <a capo> <via> <numero civico> <a capo> <località></nowiki>
</syntaxhighlight>
 
eccetera. Il procedimento termina quando il testo è composto solo da terminali e quindi rappresenta un indirizzo postale ''sintatticamente corretto''. Per mostrare una regola che includa dei terminali, si consideri l'esempio del CAP:
 
<syntaxhighlight lang="bnf">
:<nowiki><CAP> ::= <cifra><cifra><cifra><cifra><cifra></nowiki>
 
:<nowiki><cifra> ::= 0|1|2|3|4|5|6|7|8|9</nowiki>
</syntaxhighlight>
 
Questo frammento dice che un CAP è composto da cinque cifre, e che le cifre sono '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'. Nella regola di derivazione per ''cifra'' non compaiono le [[parentesi angolari]] "<" e ">"; infatti i simboli a destra sono terminali, ovvero rappresentano proprio i simboli concreti che devono apparire nel testo finale di un indirizzo.
365

contributi