EBNF

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

EBNF ( forma Backus-Naur extinsă ) este una dintre cele mai cunoscute variante ale BNF (forma Backus-Naur). Este forma sa extinsă (termenul poate fi înșelător, deoarece descrierea unui anumit limbaj scris folosind EBNF va fi de obicei mai puțin extinsă decât descrierea aceluiași folosind doar BNF).

EBNF este definit ca un standard internațional de ISO-14977 [1] , dar de exemplu W3C folosește un EBNF diferit [2] pentru a defini sintaxa XML : deși expansiunile față de BNF sunt mai mult sau mai puțin aceleași, caracterele folosite pentru identificarea lor nu sunt împărtășite universal.

Sintaxă

Tabelul următor rezumă principalele inovații comparativ cu BNF, subliniind faptul că EBNF este mai bun din punct de vedere al lizibilității și conciziei , dar nu extinde setul de limbi care pot fi produse:

Descriere Numai cu BNF [3] Cu EBNF (1) [4] Cu EBNF (2) Cu EBNF (3)
Simbol opțional sau grup de simboluri ε | a [5] (la)? {la}? [la]
Simbol sau grup de simboluri repetat de una sau mai multe ori A: = a | Aa (a) + {a} + {la}
Simbol sau grup de simboluri repetat de zero sau de mai multe ori A: = ε | Aa (la)* {la}* {[la]}

Notă

  1. ^ Specificații EBNF, emise de ISO (fișier pdf comprimat) .
  2. ^ EBNF W3C Arhivat 3 decembrie 2003 la Internet Archive.
  3. ^ a doua coloană, spre deosebire de următoarele, arată câteva producții care pot fi utilizate recursiv ; tocmai pentru a reduce numărul producțiilor la esențial a fost introdus EBNF.
  4. ^ ultimele 3 coloane raportează sisteme de notații utilizate efectiv, uneori independent una de cealaltă, alteori amestecate (de obicei 2 și 3 ), deși în unele cazuri amestecarea lor poate complica foarte mult interpretarea lor.
  5. ^ "ε" reprezintă șirul nul

Alte proiecte

linkuri externe