• 1.摘要
  • 2.基本信息
  • 3.BNF范式
  • 4.这是用BNF来定义的BNF本身的例子
  • 5.什么是EBNF
  • 6.另一种EBNF

bnf范式

基本信息

  • 名称

    巴克斯-诺尔范式

  • 别称

    巴科斯-瑙尔范式

BNF范式

(BNF: Backus-Naur Form 的缩写;也称为巴科斯-瑙尔范式、巴克斯-诺尔范式),是一种用于表示上下文无关文法的语言,上下文无关文法描述了一类形式语言。

是科学哲学家库恩提出的科学前进的模式,大意是一起工作的科学家们大体有一个共同的守则和目标,比如牛顿的经典力学,为此完成范式内的各项工作,科学的进步也就是一个范式取代另一个范式,比如后来的爱因斯坦的相对论在某种意义上的取代了宏观上的经典力学,还有量子力学在微观上完成了这个取代。 BNF范式的内容:

在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。

在双引号外的字(有可能有下划线)代表着语法部分。

< > : 内包含的为必选项。

[ ] : 内包含的为可选项。

{ } : 内包含的为可重复0至无数次的项。

| : 表示在其左右两边任选一项,相当于"OR"的意思。

::= : 是“被定义为”的意思 巴科斯范式的内容

在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。

在双引号外的字(有可能有下划线)代表着语法部分。

尖括号( < > )内包含的为必选项。

方括号( [ ] )内包含的为可选项。

大括号( { } )内包含的为可重复0至无数次的项。

竖线( | )表示在其左右两边任选一项,相当于"OR"的意思。

::= 是“被定义为”的意思。

巴科斯范式示例

这是用BNF来定义的Java语言中的For语句的实例: