巴科斯范式
维基百科,自由的百科全书
(重定向自巴科斯-瑙尔范式)
巴科斯范式(也称为巴科斯-瑙尔范式、巴克斯-诺尔范式)即 BNF 是一种用于表示上下文无关文法的语言,上下文无关文法描述了一类形式语言。尽管巴科斯范式也能表示一部分自然语言的语法,它还是更广泛地使用于程序设计语言、指令集、通信协议的语法表示中。大多数程序设计语言或者形式语义方面的教科书都采用巴科斯范式。在各种文献中还存在巴科斯范式的一些变体,如扩展巴科斯范式 EBNF 或扩充巴科斯范式 ABNF。
目录 |
[编辑] 介绍
BNF 规定是推导规则(产生式)的集合,写为:
<符号> ::= <使用符号的表达式>
这里的 <符号> 是非终结符,而表达式由一个符号序列,或用指示选择的竖杠 '|' 分隔的多个符号序列构成,每个符号序列整体都是左端的符号的一种可能的替代。从未在左端出现的符号叫做终结符。
[编辑] 参见
- Ashtadhyayi (使用数学结构的梵语文法)
- 扩充巴科斯范式 (ABNF)
- 扩展巴科斯范式 (EBNF)
- GOLD BNF 分析器
- GNU bison GNU 版本的 Yacc
- 正则表达式
- Wirth语法表示法 1977 提出的对 BNF 的一个替代者
- Yacc 分析器生成器(与 Lex 预处理器一起使用)
- ANTLR 用 Java 写的另一个分析器生成器
[编辑] 引用
本文全部或部分内容来自以GFDL授權發佈的《自由線上電腦詞典》(FOLDOC)。
[编辑] 外部链接
- Algol-60 BNF, the original BNF.
- Sample grammars at the BNF Web club.
- [1] contains a posting on news:comp.compilers that explains some of the history of the two names (Backus-Naur form vs. Backus normal form).
- Article BNF and EBNF: What are they and how do they work? by Lars Marius Garshol.
- RFC 4234 Augmented BNF for Syntax Specifications: ABNF
- Comparision of different variants of BNF
- Syntax diagram of EBNF
- Generation of syntax diagrams from EBNF

