Кіріспе

Метасинтаксистік белгілер отбасы

Компьютер ғылымында кеңейтілген Бэкус-Наур формасы (EBNF) – контекстсіз грамматиканы көрсетуге болатын метасинтаксистік белгілер отбасы. EBNF компьютер бағдарламалау тілдері сияқты формальды тілдерді ресми түрде сипаттау үшін қолданылады. Олар негізгі Бэкус-Наур формасының (BNF) метасинтаксистік белгісіне жасалған кеңейтімдер болып табылады. Алғашқы EBNF-ті Никлаус Вирт жасаған, ол Вирт синтаксисінің кейбір ұғымдарын (әлдеқандай басқа синтаксис пен белгілермен) енгізген. Бүгінде EBNF-тің көптеген түрлері қолданыста. Халықаралық стандарттау ұйымы 1996 жылы ISO/IEC 14977 EBNF стандартын қабылдады. Алайда, Зайцевтің сөзіне қарағанда, бұл стандарт "жағдайды одан әрі ушықтырып, тағы үш диалект қосты" және оның жетіспеушілігін атап өткен соң, ISO EBNF барлық ISO стандарттарында қолданылмайтынын айтты. Уилер EBNF қолданғанда ISO стандартын пайдалануға қарсы және W3C Extensible Markup Language (XML) 1.0 (Бесінші басылым) сияқты басқа EBNF белгілерін қарастыруды ұсынады. Бұл мақалада барлық EBNF-ке қатысты мысалдар үшін ISO стандартында көрсетілген EBNF қолданылады. Басқа EBNF түрлері сәл өзгеше синтаксистік ережелерді қолдануы мүмкін.

БФҚ-ға қарағанда артықшылықтары

EBNF-те анықталған кез келген грамматика BNF-те де көрсетілуі мүмкін, бірақ соңғысындағы көрсетулер көбінесе ұзақ болады. Мысалы, опциялар мен қайталаулар тікелей BNF-те жазылмайды және аралық ереже немесе балама өндіріс қолдануды қажет етеді, ол опция үшін ештеңе немесе опциялық өндіріс, ал қайталау үшін өзін-өзі рекурсивті қайталайтын өндіріс болуы керек. Осы құрылымдар EBNF-те де қолданылуы мүмкін. BNF өзі үшін (<, >, |, ::=) символдарымен жұмыс істейді, бірақ терминалдық тізбектерді қоршап тұратын тырнақшаларды пайдаланбайды. Бұл символдардың тілдерде қолданылуына кедерес келтіреді және бос тізбек үшін арнайы символ қажет етеді. EBNF-те терминалдар міндетті түрде тырнақшалардың ішінде (" " немесе ' ') жазылады. Терминалды емес бұрыштық жақшалар ("< >") алынып тасталуы мүмкін. BNF синтаксисі ережелерді тек бір жолда ғана көрсетуге мүмкіндік береді, ал EBNF-те ереженің соңына нүктелі үтір (;) қойылады. Бұдан өзге, EBNF-те жақсартуларға арналған механизмдер бар, олар қайталау санын анықтауға, баламаларды жоюға, түсініктемелер қосуға және т.б. мүмкіндік береді.

Қатысушы жұмыстар

W3C EBNF белгілеуін жариялайды. W3C XML синтаксисін көрсету үшін басқа EBNF пайдаланды. Британдық стандарттау институты 1981 жылы EBNF стандартын шығарды: BS 6154. IETF кеңейтілген BNF (ABNF) қолданады, ол .