Backus-Naur Form: differenze tra le versioni

m
Bot: inserimento template categorie qualità; modifiche estetiche
m (→‎Voci correlate: Bot, replaced: Categoria:Linguaggi formali → Categoria:Teoria dei linguaggi formali)
m (Bot: inserimento template categorie qualità; modifiche estetiche)
In termini formali, la BNF può essere vista come un formalismo per descrivere [[grammatica libera dal contesto|grammatiche libere dal contesto]].
 
La BNF fu proposta da [[John Backus]] nel corpo della definizione del linguaggio di programmazione [[ALGOL]]. L'acronimo BNF era inizialmente inteso come '''Backus Normal Form''' ("forma normale di Backus"); su suggerimento di [[Donald Knuth]], fu in seguito riletto come '''Backus-Naur Form''', in onore di Peter Naur, un altro membro del comitato ALGOL e pioniere dei [[linguaggio di programmazione|linguaggi di programmazione]] (e più in particolare della realizzazione di [[compilatore|compilatori]]).
 
== Introduzione ==
 
== Varianti ==
Sono state proposte, in letteratura, molte varianti ed estensioni della BNF. In effetti alcune strutture nell'esempio riportato sopra non erano previste dalla BNF originale, ma sono state introdotte in seguito dai progettisti della [[IBM]] per descrivere la sintassi del linguaggio [[PL/1]]. Infatti nella definizione originale della BNF non era previsto né l'uso di più sequenze alternative di simboli separate dal carattere |, né l'uso delle parentesi quadre per identificare simboli opzionali.
Per rappresentare queste situazioni era quindi necessario definire differenti regole di produzione per lo stesso simbolo nonterminale a sinistra, una per ciascuna delle sequenze possibili. Comunque queste estensioni (il cui scopo è quello di avere una rappresentazione più chiara e compatta della grammatica) sono riconosciute ormai universalmente come parte integrante della BNF. per rendersi conto del notevole vantaggio, sia di codice che di chiarezza, che si ottiene utilizzando questi costrutti notiamo che una delle regole di produzione viste sopra:
 
 
== Voci correlate ==
* [[EBNF]] Extended Backus-Naur form
* [[ABNF]] Augmented Backus-Naur form
 
[[Categoria:Teoria dei linguaggi formali]]
 
{{Linkcategorie VdQ|dequalità}}
495 233

contributi