Кіріспе
Бағдарламалау тілдерін сипаттау үшін формализм
Компьютерлік ғылымда Бэкус-Наур формасы (BNF немесе Бэкус қалыпты формасы) – бағдарламалау тілдерінің немесе басқа формальды тілдердің синтаксисін сипаттауға қолданылатын нотация. Оны Джон Бэкус және Питер Наур әзірлеген. BNF контекстсіз грамматикалар үшін метасинтаксистік нотация ретінде сипатталуы мүмкін. Бэкус-Наур формасы тілдердің нақты сипаттамалары қажет болатын жерлерде қолданылады, мысалы, ресми тіл спецификацияларында, нұсқаулықтарда және бағдарламалау тілі теориясы бойынша оқулықтарда. BNF құжат форматтарын, командалар жиынтығын және байланыс протоколдарын сипаттау үшін де пайдаланылуы мүмкін. Уақыт өте келе, түпнұсқа Бэкус-Наур нотациясының көптеген кеңейтімдері мен түрлері жасалды; олардың кейбіреулері нақты анықталған, соның ішінде кеңейтілген Бэкус-Наур формасы (EBNF) және толықтырылған Бэкус-Наур формасы (ABNF).
Басқалар
Қазіргі кезде интернетте кездесетін көптеген BNF сипаттамалары адам оқуға арналған және формалды емес. Олар көбінесе келесі синтаксистік ережелер мен кеңейтулерді қамтиды: квадрат жақшалармен қоршалған міндетті емес элементтер: [<item x>]. 0 немесе одан көп рет кездесетін элементтер фигуралық жақшалармен немесе жұлдызша (*) символымен белгіленеді, мысалы <word> ::= <letter> {<letter>} немесе <word> ::= <letter> <letter>* сәйкесінше. 1 немесе одан көп рет кездесетін элементтер плюс (+) символымен қоса беріледі, мысалы <word> ::= <letter>+. Терминалдар курсив емес, қалың әріптермен, ал терминал емес элементтер бұрышты жақшалар емес, қарапайым мәтінмен көрсетілуі мүмкін. Егер элементтер топтастырылған болса, олар қарапайым жақшалармен қоршалады.
Optional items enclosed in square brackets: [<item x>]. Items existing 0 or more times are enclosed in curly brackets or suffixed with an asterisk (*) such as <word> ::= <letter> {<letter>} or <word> ::= <letter> <letter>* respectively. Items existing 1 or more times are suffixed with an addition (plus) symbol, +, such as <word> ::= <letter>+. Terminals may appear in bold rather than italics, and non terminals in plain text rather than angle brackets. Where items are grouped, they are enclosed in simple parentheses.
Тіл грамматикасы
, бастапқы БНФ. , SQL үшін тегін қолжетімді БНФ грамматикалары. , SQL, Ada, Java үшін тегін қолжетімді БНФ грамматикалары. , C/C++, Pascal, COBOL, Ada 95, PL/I үшін тегін қолжетімді БНФ/EBNF грамматикалары. ISO 10303 (STEP) стандартының 11, 14 және 21-бөлімдерін қамтиды.