SlideShare a Scribd company logo
1 of 13
Download to read offline
01/12/1964
Traduzione de “Backus Normal Form vs. Backus Naur Form”
di Donald E. Knuth
Pubblicato su Communications of the ACM, Volume 7, Issue 12, Dec.
1964, pp 735–736
Traduzione effettuata da Google Traduttore
Adattamento di Salvatore Giglio
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
Introduzione
Nel 1964, una beautiful mind decide di scrivere una lettera all'editore del Communications of ACM per
proporre un cambio di nome alla notazione di Backus che, all’epoca, era comunemente chiamata Backus
Normal Form; si trattava di un giovanissimo matematico: Donald Knuth, che in quel periodo era alle prese
col suo dottorato di ricerca presso il California Institute of Technology, dove successivamente lavorò come
professore associato. La sua lettera fu pubblicata e, vista la logica ferrea del suo ragionamento, si decise di
cambiar nome alla notazione in Backus Naur Form. Peter Naur, come si avrà modo di leggere, aveva
apportato dei miglioramenti alla notazione, rendendola così maggiormente compatibile con i dispositivi di
scrittura e stampa dell’epoca e l’aveva messa in risalto nel Revised report on the algorithmic language
ALGOL 60, di cui era editore.
Ho deciso di tradurre e riportare la lettera di Knuth come piccolo contributo personale sulla storia iniziale di
ALGOL e della BNF sperando che sia di aiuto a quanti sono impegnati negli studi o, più semplicemente,
sono in cerca di qualche notizia in più su quelle vicende così lontane ma, al contempo, tanto ricche di
passione per la nascente scienza informatica.
S. G.
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
1. Testo in lingua
originale
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
Backus Normal Form vs. Backus Naur Form
Dear Editor:
In recent years it has become customary to refer to syntax presented in the manner of the ALGOL 60 reported
as "Backus Normal Form." I am not sure where this terminology originated; personally, I first recall reading it
in a survey article by S. Gorn [1]. Several of us working in the field have never cared for the name Backus
Normal Form because it isn't a "Normal Form" in the conventional sense. A normal form usually refers to
some sort of special representation which is not necessarily a canonical form; for example, it is not hard to
transform any Backus Normal Form syntax so that all definitions except the definition of <empty> have one
of the three forms:
(A syntax in which all definitions have such a form may be said to be in "Floyd Normal Form" since this point
was first raised in a note by R. W. Floyd [2]. But I hasten to withdraw such a term from further use since
doubtless many people have independently used this simple fact in their own work, and the point is only
incidental to the main considerations of Floyd's note). Many people have objected to the term Backus Normal
Form because it is just a new name for an old concept in linguistics: an equivalent type of syntax has been used
under various other names (Chomsky type 2 grammar, simple phase structure grammar, context free grammar,
etc.). There is still a reason for distinguishing between these, however, since linguists present the syntax in the
form of productions while the Backus version has a quite different form. (It is a Form for a syntax. not a
Normal Form.) The five principal things which distinguish Backus form from production form are:
(i). Nonterminal symbols are distinguished from terminal letters by enclosing them in special brackets.
(ii). All alternatives for a definition are grouped together (i.e., in a production system "A → BC, A → d,
A → C" would all be written instead of
(iii). The symbol ":: =" is used to separate left from right.
(iv). The symbol "|" is used to separate alternatives.
(v). Full names indicating the meaning of the strings' being defined are used for nonterminal symbols.
Of these five items, (iii) is clearly irrelevant and the peculiar symbol ":: =" can be replaced by anything desired;
"→" is perhaps better, to correspond more closely with productions. But (i), (ii), (iv), (v) are each important
for the explanatory power of a syntax. It is quite difficult to fathom the significance of a language defined by
productions, compared to the documentation afforded by a syntax incorporating (i), (ii), (iv), (v). (On the other
hand, it is much easier to do theoretical manipulations using production systems and systematically avoiding
(i), (ii), (iv), (v).) For this reason, Backus's form deserves a special distinguishing name. Actually, however,
only (i) and (ii) were really used by John Backus when he proposed his notation; (iii), (iv), (v) are due to Peter
Naur who incorporated these changes when drafting the ALGOL 60 report. Naur's additions (particularly (v))
are quite important. Furthermore, if it had not been: for Naur's work in recognizing the potential of Backus's
ideas and popularizing them with the ALGOL committee, Backus's work would have become virtually lost;
and much of the knowledge we have today about languages and compilers would not have been acquired.
Therefore, I propose that henceforth we always say "Backus Naur Form" instead of Backus Normal Form,
when referring to such a syntax. This terminology has several advantages:
(1). It gives the proper credit to both Backus and Naur;
(2). It preserves the oft-used abbreviation “BNF";
(3). It does not call a Form a Normal Form.
I have been saying Backus Naur Form for about two months now and I am still quite pleased with it, so I think
perhaps everyone else will enjoy this term also.
REFERENCES:
1. GORN, S. Specification languages for mechanical languages and their processors - a baker's dozen.
Comm. ACM 4 (Dec. 1961), 532-542.
2. FLOYD, R. W. Note on mathematical induction in phrase structure grammars. Inform. Contr. 4
(1961), 353-358.
DONALD E. KNUTH
California Institute of Technology
Pasadena, California
- 1 -
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
2.Testo tradotto
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
Forma Normale Backus contro Forma Backus Naur
Caro editore:
Negli ultimi anni è diventata consuetudine fare riferimento alla sintassi presentata alla maniera dell'ALGOL
60 riportata come "Backus Normal Form".
Non sono sicuro di dove abbia avuto origine questa terminologia; personalmente ricordo di averlo letto per la
prima volta in un articolo di indagine di S. Gorn [1].
Molti di noi che lavorano nel campo non si sono mai preoccupati del nome Backus Normal Form perché non
è una "forma normale" nel senso convenzionale.
Una forma normale di solito si riferisce a una sorta di rappresentazione speciale che non è necessariamente
una forma canonica; ad esempio, non è difficile trasformare qualsiasi sintassi “Backus Normal” Form in modo
che tutte le definizioni tranne la definizione di <vuoto> abbiano una delle tre forme:
(i) <A> ::= <B> | <C>
(ii) <A> :: = <B> <C>
(iii) <A> ::= a.
(Si può dire che una sintassi in cui tutte le definizioni hanno una tale forma sia in "Floyd Normal Form" poiché
questo punto è stato sollevato per la prima volta in una nota da Robert W. Floyd [2]. Ma mi affretto a ritirare
tale termine da un ulteriore uso poiché senza dubbio molte persone hanno utilizzato indipendentemente questo
semplice fatto nel proprio lavoro, e il punto è solo incidentale rispetto alle considerazioni principali della nota
di Floyd.).
Molte persone si sono opposte al termine Backus Normal Form perché è solo un nuovo nome per un vecchio
concetto in linguistica: un tipo equivalente di sintassi è stato utilizzato sotto vari altri nomi (grammatica
Chomsky di tipo 2, grammatica della struttura delle fasi semplice, grammatica libera dal contesto, ecc.).
C'è ancora una ragione per distinguere tra questi, tuttavia, poiché i linguisti presentano la sintassi sotto forma
di produzioni mentre la versione Backus ha una forma completamente diversa. (È un modello per una sintassi,
non un modello normale.)
Le cinque cose principali che distinguono la forma di Backus dalla forma di produzione sono:
(i). I simboli non terminali si distinguono dalle lettere terminali racchiudendoli tra parentesi speciali.
(ii). Tutte le alternative per una definizione sono raggruppate insieme (cioè, in un sistema di produzione
"A → BC, A → d, A → C" verrebbero scritte tutte invece di "<A> :: = <B> <C> | d | <C>)").
(iii). Il simbolo ":: =" è usato per separare sinistra da destra.
(iv). Il simbolo "|" è utilizzato per separare le alternative.
(v). I nomi completi che indicano il significato delle stringhe in fase di definizione sono usati per i simboli
non terminali.
Di questi cinque elementi, (iii) è chiaramente irrilevante e il simbolo peculiare ":: =" può essere sostituito da
qualsiasi cosa desiderata; "→" è forse meglio, per corrispondere più strettamente alle produzioni.
Ma (i), (ii), (iv), (v) sono tutte importanti per il potere esplicativo di una sintassi. È abbastanza difficile sondare
il significato di un linguaggio definito dalle produzioni, rispetto alla documentazione fornita da una sintassi
che incorpora (i), (ii), (iv), (v). (D'altra parte, è molto più facile fare manipolazioni teoriche usando sistemi di
produzione ed evitando sistematicamente (i), (ii), (iv), (v).)
Per questo motivo, la forma di Backus merita un nome distintivo speciale. In realtà, tuttavia, solo (i) e (ii)
furono realmente usati da John Backus quando propose la sua notazione; (iii), (iv), (v) sono dovuti a Peter
Naur che ha incorporato queste modifiche durante la stesura del rapporto ALGOL 60. Le aggiunte di Naur (in
particolare (v)) sono piuttosto importanti.
- 4 -
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
Inoltre, se non fosse stato per il lavoro di Naur nel riconoscere il potenziale delle idee di Backus e nel renderle
popolari con il comitato ALGOL, il lavoro di Backus sarebbe andato praticamente perso e gran parte della
conoscenza che abbiamo oggi di linguaggi e compilatori non sarebbe stata acquisita.
Pertanto, propongo che d'ora in poi si dica sempre "Backus Naur Form" invece di “Backus Normal Form”,
quando ci si riferisce a tale sintassi. Questa dicitura ha diversi vantaggi:
(1). Dà il giusto credito sia a Backus che a Naur;
(2). Conserva l'abbreviazione "BNF" usata frequentemente;
(3). Non chiama Forma Normale una Forma.
Dico Backus Naur Form da circa due mesi e, ormai, ne sono ancora abbastanza soddisfatto, quindi penso che
forse anche tutti gli altri apprezzeranno questo termine.
RIFERIMENTI:
1. GORN, S. Specification languages for mechanical languages and their processors - a baker's dozen.
Comm. ACM 4 (Dec. 1961), 532-542.
2. FLOYD, R. W. Note on mathematical induction in phrase structure grammars. Inform. Contr. 4 (1961),
353-358.
DONALD E. KNUTH
California Institute of Technology
Pasadena, California
Traduzione effettuata con Google Traduttore, adattamento di S. Giglio
- 5 -
Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth

More Related Content

More from CADZINE

Sommari delle pubblicazioni del 2015
Sommari delle pubblicazioni del 2015Sommari delle pubblicazioni del 2015
Sommari delle pubblicazioni del 2015CADZINE
 
Principi di funzionamento delle stampanti 3D, ottobre 2015
Principi di funzionamento delle stampanti 3D, ottobre 2015Principi di funzionamento delle stampanti 3D, ottobre 2015
Principi di funzionamento delle stampanti 3D, ottobre 2015CADZINE
 
CADZINE n° 7, luglio 2015, ANNO III
CADZINE n° 7, luglio 2015, ANNO IIICADZINE n° 7, luglio 2015, ANNO III
CADZINE n° 7, luglio 2015, ANNO IIICADZINE
 
CADZINE n° 5, maggio 2015, ANNO II
CADZINE n° 5, maggio 2015, ANNO IICADZINE n° 5, maggio 2015, ANNO II
CADZINE n° 5, maggio 2015, ANNO IICADZINE
 
CADZINE n° 6, giugno 2015, ANNO II
CADZINE n° 6, giugno 2015, ANNO IICADZINE n° 6, giugno 2015, ANNO II
CADZINE n° 6, giugno 2015, ANNO IICADZINE
 
CADZINE n° 4, aprile 2015, ANNO II
CADZINE n° 4, aprile 2015, ANNO IICADZINE n° 4, aprile 2015, ANNO II
CADZINE n° 4, aprile 2015, ANNO IICADZINE
 
CADZINE n° 3, marzo 2015, ANNO II
CADZINE n° 3, marzo 2015, ANNO IICADZINE n° 3, marzo 2015, ANNO II
CADZINE n° 3, marzo 2015, ANNO IICADZINE
 
CADZINE n° 2, febbraio 2015, ANNO II
CADZINE n° 2, febbraio 2015, ANNO IICADZINE n° 2, febbraio 2015, ANNO II
CADZINE n° 2, febbraio 2015, ANNO IICADZINE
 
CADZINE n° 1, gennaio 2015, ANNO II
CADZINE n° 1, gennaio 2015, ANNO IICADZINE n° 1, gennaio 2015, ANNO II
CADZINE n° 1, gennaio 2015, ANNO IICADZINE
 
Raccolta sommari delle pubblicazioni 2014 anno i
Raccolta sommari delle pubblicazioni 2014   anno iRaccolta sommari delle pubblicazioni 2014   anno i
Raccolta sommari delle pubblicazioni 2014 anno iCADZINE
 
CADZINE n° 7, dicembre 2014, ANNO I
CADZINE n° 7, dicembre 2014, ANNO ICADZINE n° 7, dicembre 2014, ANNO I
CADZINE n° 7, dicembre 2014, ANNO ICADZINE
 
Il bromografo inserto speciale allegato al numero di novembre 2014 di cadzine
Il bromografo inserto speciale allegato al numero di novembre 2014 di cadzineIl bromografo inserto speciale allegato al numero di novembre 2014 di cadzine
Il bromografo inserto speciale allegato al numero di novembre 2014 di cadzineCADZINE
 
CADZINE n° 6, novembre 2014, ANNO I
CADZINE n° 6, novembre 2014, ANNO ICADZINE n° 6, novembre 2014, ANNO I
CADZINE n° 6, novembre 2014, ANNO ICADZINE
 
CADZINE n° 5, ottobre 2014, ANNO I
CADZINE n° 5, ottobre 2014, ANNO ICADZINE n° 5, ottobre 2014, ANNO I
CADZINE n° 5, ottobre 2014, ANNO ICADZINE
 
CADZINE n° 4, settembre 2014, ANNO I
CADZINE n° 4, settembre 2014, ANNO ICADZINE n° 4, settembre 2014, ANNO I
CADZINE n° 4, settembre 2014, ANNO ICADZINE
 
CADZINE n° 3, agosto 2014, ANNO III
CADZINE n° 3, agosto 2014, ANNO IIICADZINE n° 3, agosto 2014, ANNO III
CADZINE n° 3, agosto 2014, ANNO IIICADZINE
 
CADZINE n° 2, luglio 2014, ANNO I
CADZINE n° 2, luglio 2014, ANNO ICADZINE n° 2, luglio 2014, ANNO I
CADZINE n° 2, luglio 2014, ANNO ICADZINE
 
CADZINE n° 1, giugno 2014, ANNO I
CADZINE n° 1, giugno 2014, ANNO ICADZINE n° 1, giugno 2014, ANNO I
CADZINE n° 1, giugno 2014, ANNO ICADZINE
 
CADZINE n° 0, maggio 2014, ANNO I
CADZINE n° 0, maggio 2014, ANNO ICADZINE n° 0, maggio 2014, ANNO I
CADZINE n° 0, maggio 2014, ANNO ICADZINE
 

More from CADZINE (19)

Sommari delle pubblicazioni del 2015
Sommari delle pubblicazioni del 2015Sommari delle pubblicazioni del 2015
Sommari delle pubblicazioni del 2015
 
Principi di funzionamento delle stampanti 3D, ottobre 2015
Principi di funzionamento delle stampanti 3D, ottobre 2015Principi di funzionamento delle stampanti 3D, ottobre 2015
Principi di funzionamento delle stampanti 3D, ottobre 2015
 
CADZINE n° 7, luglio 2015, ANNO III
CADZINE n° 7, luglio 2015, ANNO IIICADZINE n° 7, luglio 2015, ANNO III
CADZINE n° 7, luglio 2015, ANNO III
 
CADZINE n° 5, maggio 2015, ANNO II
CADZINE n° 5, maggio 2015, ANNO IICADZINE n° 5, maggio 2015, ANNO II
CADZINE n° 5, maggio 2015, ANNO II
 
CADZINE n° 6, giugno 2015, ANNO II
CADZINE n° 6, giugno 2015, ANNO IICADZINE n° 6, giugno 2015, ANNO II
CADZINE n° 6, giugno 2015, ANNO II
 
CADZINE n° 4, aprile 2015, ANNO II
CADZINE n° 4, aprile 2015, ANNO IICADZINE n° 4, aprile 2015, ANNO II
CADZINE n° 4, aprile 2015, ANNO II
 
CADZINE n° 3, marzo 2015, ANNO II
CADZINE n° 3, marzo 2015, ANNO IICADZINE n° 3, marzo 2015, ANNO II
CADZINE n° 3, marzo 2015, ANNO II
 
CADZINE n° 2, febbraio 2015, ANNO II
CADZINE n° 2, febbraio 2015, ANNO IICADZINE n° 2, febbraio 2015, ANNO II
CADZINE n° 2, febbraio 2015, ANNO II
 
CADZINE n° 1, gennaio 2015, ANNO II
CADZINE n° 1, gennaio 2015, ANNO IICADZINE n° 1, gennaio 2015, ANNO II
CADZINE n° 1, gennaio 2015, ANNO II
 
Raccolta sommari delle pubblicazioni 2014 anno i
Raccolta sommari delle pubblicazioni 2014   anno iRaccolta sommari delle pubblicazioni 2014   anno i
Raccolta sommari delle pubblicazioni 2014 anno i
 
CADZINE n° 7, dicembre 2014, ANNO I
CADZINE n° 7, dicembre 2014, ANNO ICADZINE n° 7, dicembre 2014, ANNO I
CADZINE n° 7, dicembre 2014, ANNO I
 
Il bromografo inserto speciale allegato al numero di novembre 2014 di cadzine
Il bromografo inserto speciale allegato al numero di novembre 2014 di cadzineIl bromografo inserto speciale allegato al numero di novembre 2014 di cadzine
Il bromografo inserto speciale allegato al numero di novembre 2014 di cadzine
 
CADZINE n° 6, novembre 2014, ANNO I
CADZINE n° 6, novembre 2014, ANNO ICADZINE n° 6, novembre 2014, ANNO I
CADZINE n° 6, novembre 2014, ANNO I
 
CADZINE n° 5, ottobre 2014, ANNO I
CADZINE n° 5, ottobre 2014, ANNO ICADZINE n° 5, ottobre 2014, ANNO I
CADZINE n° 5, ottobre 2014, ANNO I
 
CADZINE n° 4, settembre 2014, ANNO I
CADZINE n° 4, settembre 2014, ANNO ICADZINE n° 4, settembre 2014, ANNO I
CADZINE n° 4, settembre 2014, ANNO I
 
CADZINE n° 3, agosto 2014, ANNO III
CADZINE n° 3, agosto 2014, ANNO IIICADZINE n° 3, agosto 2014, ANNO III
CADZINE n° 3, agosto 2014, ANNO III
 
CADZINE n° 2, luglio 2014, ANNO I
CADZINE n° 2, luglio 2014, ANNO ICADZINE n° 2, luglio 2014, ANNO I
CADZINE n° 2, luglio 2014, ANNO I
 
CADZINE n° 1, giugno 2014, ANNO I
CADZINE n° 1, giugno 2014, ANNO ICADZINE n° 1, giugno 2014, ANNO I
CADZINE n° 1, giugno 2014, ANNO I
 
CADZINE n° 0, maggio 2014, ANNO I
CADZINE n° 0, maggio 2014, ANNO ICADZINE n° 0, maggio 2014, ANNO I
CADZINE n° 0, maggio 2014, ANNO I
 

Traduzione lettera Knuth a CACM.pdf

  • 1. 01/12/1964 Traduzione de “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth Pubblicato su Communications of the ACM, Volume 7, Issue 12, Dec. 1964, pp 735–736 Traduzione effettuata da Google Traduttore Adattamento di Salvatore Giglio
  • 2. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
  • 3. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth Introduzione Nel 1964, una beautiful mind decide di scrivere una lettera all'editore del Communications of ACM per proporre un cambio di nome alla notazione di Backus che, all’epoca, era comunemente chiamata Backus Normal Form; si trattava di un giovanissimo matematico: Donald Knuth, che in quel periodo era alle prese col suo dottorato di ricerca presso il California Institute of Technology, dove successivamente lavorò come professore associato. La sua lettera fu pubblicata e, vista la logica ferrea del suo ragionamento, si decise di cambiar nome alla notazione in Backus Naur Form. Peter Naur, come si avrà modo di leggere, aveva apportato dei miglioramenti alla notazione, rendendola così maggiormente compatibile con i dispositivi di scrittura e stampa dell’epoca e l’aveva messa in risalto nel Revised report on the algorithmic language ALGOL 60, di cui era editore. Ho deciso di tradurre e riportare la lettera di Knuth come piccolo contributo personale sulla storia iniziale di ALGOL e della BNF sperando che sia di aiuto a quanti sono impegnati negli studi o, più semplicemente, sono in cerca di qualche notizia in più su quelle vicende così lontane ma, al contempo, tanto ricche di passione per la nascente scienza informatica. S. G.
  • 4. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
  • 5. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth 1. Testo in lingua originale
  • 6. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
  • 7. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth Backus Normal Form vs. Backus Naur Form Dear Editor: In recent years it has become customary to refer to syntax presented in the manner of the ALGOL 60 reported as "Backus Normal Form." I am not sure where this terminology originated; personally, I first recall reading it in a survey article by S. Gorn [1]. Several of us working in the field have never cared for the name Backus Normal Form because it isn't a "Normal Form" in the conventional sense. A normal form usually refers to some sort of special representation which is not necessarily a canonical form; for example, it is not hard to transform any Backus Normal Form syntax so that all definitions except the definition of <empty> have one of the three forms: (A syntax in which all definitions have such a form may be said to be in "Floyd Normal Form" since this point was first raised in a note by R. W. Floyd [2]. But I hasten to withdraw such a term from further use since doubtless many people have independently used this simple fact in their own work, and the point is only incidental to the main considerations of Floyd's note). Many people have objected to the term Backus Normal Form because it is just a new name for an old concept in linguistics: an equivalent type of syntax has been used under various other names (Chomsky type 2 grammar, simple phase structure grammar, context free grammar, etc.). There is still a reason for distinguishing between these, however, since linguists present the syntax in the form of productions while the Backus version has a quite different form. (It is a Form for a syntax. not a Normal Form.) The five principal things which distinguish Backus form from production form are: (i). Nonterminal symbols are distinguished from terminal letters by enclosing them in special brackets. (ii). All alternatives for a definition are grouped together (i.e., in a production system "A → BC, A → d, A → C" would all be written instead of (iii). The symbol ":: =" is used to separate left from right. (iv). The symbol "|" is used to separate alternatives. (v). Full names indicating the meaning of the strings' being defined are used for nonterminal symbols. Of these five items, (iii) is clearly irrelevant and the peculiar symbol ":: =" can be replaced by anything desired; "→" is perhaps better, to correspond more closely with productions. But (i), (ii), (iv), (v) are each important for the explanatory power of a syntax. It is quite difficult to fathom the significance of a language defined by productions, compared to the documentation afforded by a syntax incorporating (i), (ii), (iv), (v). (On the other hand, it is much easier to do theoretical manipulations using production systems and systematically avoiding (i), (ii), (iv), (v).) For this reason, Backus's form deserves a special distinguishing name. Actually, however, only (i) and (ii) were really used by John Backus when he proposed his notation; (iii), (iv), (v) are due to Peter Naur who incorporated these changes when drafting the ALGOL 60 report. Naur's additions (particularly (v)) are quite important. Furthermore, if it had not been: for Naur's work in recognizing the potential of Backus's ideas and popularizing them with the ALGOL committee, Backus's work would have become virtually lost; and much of the knowledge we have today about languages and compilers would not have been acquired. Therefore, I propose that henceforth we always say "Backus Naur Form" instead of Backus Normal Form, when referring to such a syntax. This terminology has several advantages: (1). It gives the proper credit to both Backus and Naur; (2). It preserves the oft-used abbreviation “BNF"; (3). It does not call a Form a Normal Form. I have been saying Backus Naur Form for about two months now and I am still quite pleased with it, so I think perhaps everyone else will enjoy this term also. REFERENCES: 1. GORN, S. Specification languages for mechanical languages and their processors - a baker's dozen. Comm. ACM 4 (Dec. 1961), 532-542. 2. FLOYD, R. W. Note on mathematical induction in phrase structure grammars. Inform. Contr. 4 (1961), 353-358. DONALD E. KNUTH California Institute of Technology Pasadena, California - 1 -
  • 8. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
  • 9. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth 2.Testo tradotto
  • 10. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth
  • 11. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth Forma Normale Backus contro Forma Backus Naur Caro editore: Negli ultimi anni è diventata consuetudine fare riferimento alla sintassi presentata alla maniera dell'ALGOL 60 riportata come "Backus Normal Form". Non sono sicuro di dove abbia avuto origine questa terminologia; personalmente ricordo di averlo letto per la prima volta in un articolo di indagine di S. Gorn [1]. Molti di noi che lavorano nel campo non si sono mai preoccupati del nome Backus Normal Form perché non è una "forma normale" nel senso convenzionale. Una forma normale di solito si riferisce a una sorta di rappresentazione speciale che non è necessariamente una forma canonica; ad esempio, non è difficile trasformare qualsiasi sintassi “Backus Normal” Form in modo che tutte le definizioni tranne la definizione di <vuoto> abbiano una delle tre forme: (i) <A> ::= <B> | <C> (ii) <A> :: = <B> <C> (iii) <A> ::= a. (Si può dire che una sintassi in cui tutte le definizioni hanno una tale forma sia in "Floyd Normal Form" poiché questo punto è stato sollevato per la prima volta in una nota da Robert W. Floyd [2]. Ma mi affretto a ritirare tale termine da un ulteriore uso poiché senza dubbio molte persone hanno utilizzato indipendentemente questo semplice fatto nel proprio lavoro, e il punto è solo incidentale rispetto alle considerazioni principali della nota di Floyd.). Molte persone si sono opposte al termine Backus Normal Form perché è solo un nuovo nome per un vecchio concetto in linguistica: un tipo equivalente di sintassi è stato utilizzato sotto vari altri nomi (grammatica Chomsky di tipo 2, grammatica della struttura delle fasi semplice, grammatica libera dal contesto, ecc.). C'è ancora una ragione per distinguere tra questi, tuttavia, poiché i linguisti presentano la sintassi sotto forma di produzioni mentre la versione Backus ha una forma completamente diversa. (È un modello per una sintassi, non un modello normale.) Le cinque cose principali che distinguono la forma di Backus dalla forma di produzione sono: (i). I simboli non terminali si distinguono dalle lettere terminali racchiudendoli tra parentesi speciali. (ii). Tutte le alternative per una definizione sono raggruppate insieme (cioè, in un sistema di produzione "A → BC, A → d, A → C" verrebbero scritte tutte invece di "<A> :: = <B> <C> | d | <C>)"). (iii). Il simbolo ":: =" è usato per separare sinistra da destra. (iv). Il simbolo "|" è utilizzato per separare le alternative. (v). I nomi completi che indicano il significato delle stringhe in fase di definizione sono usati per i simboli non terminali. Di questi cinque elementi, (iii) è chiaramente irrilevante e il simbolo peculiare ":: =" può essere sostituito da qualsiasi cosa desiderata; "→" è forse meglio, per corrispondere più strettamente alle produzioni. Ma (i), (ii), (iv), (v) sono tutte importanti per il potere esplicativo di una sintassi. È abbastanza difficile sondare il significato di un linguaggio definito dalle produzioni, rispetto alla documentazione fornita da una sintassi che incorpora (i), (ii), (iv), (v). (D'altra parte, è molto più facile fare manipolazioni teoriche usando sistemi di produzione ed evitando sistematicamente (i), (ii), (iv), (v).) Per questo motivo, la forma di Backus merita un nome distintivo speciale. In realtà, tuttavia, solo (i) e (ii) furono realmente usati da John Backus quando propose la sua notazione; (iii), (iv), (v) sono dovuti a Peter Naur che ha incorporato queste modifiche durante la stesura del rapporto ALGOL 60. Le aggiunte di Naur (in particolare (v)) sono piuttosto importanti. - 4 -
  • 12. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth Inoltre, se non fosse stato per il lavoro di Naur nel riconoscere il potenziale delle idee di Backus e nel renderle popolari con il comitato ALGOL, il lavoro di Backus sarebbe andato praticamente perso e gran parte della conoscenza che abbiamo oggi di linguaggi e compilatori non sarebbe stata acquisita. Pertanto, propongo che d'ora in poi si dica sempre "Backus Naur Form" invece di “Backus Normal Form”, quando ci si riferisce a tale sintassi. Questa dicitura ha diversi vantaggi: (1). Dà il giusto credito sia a Backus che a Naur; (2). Conserva l'abbreviazione "BNF" usata frequentemente; (3). Non chiama Forma Normale una Forma. Dico Backus Naur Form da circa due mesi e, ormai, ne sono ancora abbastanza soddisfatto, quindi penso che forse anche tutti gli altri apprezzeranno questo termine. RIFERIMENTI: 1. GORN, S. Specification languages for mechanical languages and their processors - a baker's dozen. Comm. ACM 4 (Dec. 1961), 532-542. 2. FLOYD, R. W. Note on mathematical induction in phrase structure grammars. Inform. Contr. 4 (1961), 353-358. DONALD E. KNUTH California Institute of Technology Pasadena, California Traduzione effettuata con Google Traduttore, adattamento di S. Giglio - 5 -
  • 13. Traduzione de: “Backus Normal Form vs. Backus Naur Form” di Donald E. Knuth