EBNF: Компьютерлік тілдерді сипаттау үшін қолданылатын формальды грамматика. BNF-тің кеңейтілген түрі, Wirth ұсынған. Бағдарламалау тілдері үшін маңызды!
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Метасинтаксистік белгілер отбасы
Family of metasyntax notations
Компьютер ғылымында кеңейтілген Бэкус-Наур формасы (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 түрлері сәл өзгеше синтаксистік ережелерді қолдануы мүмкін.
In computer science, extended Backus–Naur form (EBNF) is a family of metasyntax notations, any of which can be used to express a context free grammar. EBNF is used to make a formal description of a formal language such as a computer programming language. They are extensions of the basic Backus–Naur form (BNF) metasyntax notation. The earliest EBNF was developed by Niklaus Wirth, incorporating some of the concepts (with a different syntax and notation) from Wirth syntax notation. Today, many variants of EBNF are in use. The International Organization for Standardization adopted an EBNF Standard, ISO/IEC 14977, in 1996. According to Zaytsev, however, this standard "only ended up adding yet another three dialects to the chaos" and, after noting its lack of success, also notes that the ISO EBNF is not even used in all ISO standards. Wheeler argues against using the ISO standard when using an EBNF and recommends considering alternative EBNF notations such as the one from the W3C Extensible Markup Language (XML) 1.0 (Fifth Edition). This article uses EBNF as specified by the ISO for examples applying to all EBNFs. Other EBNF variants use somewhat different syntactic conventions.
БФҚ-ға қарағанда артықшылықтары
EBNF-те анықталған кез келген грамматика BNF-те де көрсетілуі мүмкін, бірақ соңғысындағы көрсетулер көбінесе ұзақ болады. Мысалы, опциялар мен қайталаулар тікелей BNF-те жазылмайды және аралық ереже немесе балама өндіріс қолдануды қажет етеді, ол опция үшін ештеңе немесе опциялық өндіріс, ал қайталау үшін өзін-өзі рекурсивті қайталайтын өндіріс болуы керек. Осы құрылымдар EBNF-те де қолданылуы мүмкін. BNF өзі үшін (<, >, |, ::=) символдарымен жұмыс істейді, бірақ терминалдық тізбектерді қоршап тұратын тырнақшаларды пайдаланбайды. Бұл символдардың тілдерде қолданылуына кедерес келтіреді және бос тізбек үшін арнайы символ қажет етеді. EBNF-те терминалдар міндетті түрде тырнақшалардың ішінде (" " немесе ' ') жазылады. Терминалды емес бұрыштық жақшалар ("< >") алынып тасталуы мүмкін. BNF синтаксисі ережелерді тек бір жолда ғана көрсетуге мүмкіндік береді, ал EBNF-те ереженің соңына нүктелі үтір (;) қойылады. Бұдан өзге, EBNF-те жақсартуларға арналған механизмдер бар, олар қайталау санын анықтауға, баламаларды жоюға, түсініктемелер қосуға және т.б. мүмкіндік береді.
Any grammar defined in EBNF can also be represented in BNF, though representations in the latter are generally lengthier. E. g., options and repetitions cannot be directly expressed in BNF and require the use of an intermediate rule or alternative production defined to be either nothing or the optional production for option, or either the repeated production of itself, recursively, for repetition. The same constructs can still be used in EBNF. The BNF uses the symbols (<, >, |, ::=) for itself, but does not include quotes around terminal strings. This prevents these characters from being used in the languages, and requires a special symbol for the empty string. In EBNF, terminals are strictly enclosed within quotation marks (" " or ' '). The angle brackets ("< >") for nonterminals can be omitted. BNF syntax can only represent a rule in one line, whereas in EBNF a terminating character, the semicolon character “;” marks the end of a rule. Furthermore, EBNF includes mechanisms for enhancements, defining the number of repetitions, excluding alternatives, comments, etc.
Қатысушы жұмыстар
W3C EBNF белгілеуін жариялайды. W3C XML синтаксисін көрсету үшін басқа EBNF пайдаланды. Британдық стандарттау институты 1981 жылы EBNF стандартын шығарды: BS 6154. IETF кеңейтілген BNF (ABNF) қолданады, ол .
The W3C publishes an EBNF notation. The W3C used a different EBNF to specify the XML syntax. The British Standards Institution published a standard for an EBNF: BS 6154 in 1981. The IETF uses augmented BNF (ABNF), specified in .