EBNF
# EBNF

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 BNF | Con l'EBNF (1) | Con l'EBNF (2) | Con l'EBNF (3) |
| - | - | - | - | - |
| Simbolo o gruppo di simboli opzionale | ε|a | (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]} |
