La EBNF (Extended Backus-Naur form) è una delle varianti più conosciute della BNF (Backus-Naur form). Essa è la sua forma estesa (il termine può trarre in inganno, in quanto la descrizione di un dato linguaggio redatta utilizzando la EBNF sarà tipicamente meno estesa della descrizione dello stesso utilizzando solo la BNF).
La EBNF è definita come standard internazionale da ISO-14977., ma ad esempio il W3C utilizza una EBNF differente per definire la sintassi XML: sebbene le espansioni rispetto alla BNF siano più o meno le stesse, i caratteri utilizzati per individuarle non sono universalmente condivisi.
Sintassi
La seguente tabella riassume le principali innovazioni rispetto alla BNF, evidenziando il fatto che l'EBNF è migliore dal punto di vista della leggibilità e della sinteticità, ma non amplia l'insieme dei linguaggi che si può produrre:
Descrizione Con la sola BNFla seconda colonna, a differenza delle successive, riporta delle produzioni, utilizzabili in maniera ricorsiva; è proprio per ridurre all'essenziale il numero di produzioni che è stata introdotta la EBNF. Con l'EBNF (1)le ultime 3 colonne riportano sistemi di notazioni effettivamente utilizzati, talvolta indipendentemente l'uno dall'altro, altre volte anche mescolati (tipicamente il 2 e il 3), anche se in alcuni casi mescolarli può complicare molto la loro interpretazione. Con l'EBNF (2) Con l'EBNF (3) Simbolo o gruppo di simboli opzionale ε|a"ε" rappresenta la stringa nulla (a)? {a}? [a] Simbolo o gruppo di simboli ripetuto una o più volte A:=a|Aa (a)+ {a}+ {a} Simbolo o gruppo di simboli ripetuto zero o più volte A:=ε|Aa (a)* {a}* {[a]}
Note
Altri progetti
Collegamenti esterni Articolo "EBNF: A Notation to Describe Syntax", di Richard E. Pattis, che descrive le funzioni e la sintassi di EBNF Articolo "BNF and EBNF: What are they and how do they work?", di Lars Marius Garshol Articolo "The Naming of Parts", di John E. Simpson
Categoria:Teoria dei linguaggi formali