编译系统中BNF: Backus-Naur Form

  巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首次引入一种形式化符号来描述给定语言的语法。express

  简称为:BNF符号。编程

  如今,几乎每一位新编程语言书籍的做者都使用巴科斯范式来定义编程语言的语法规则。编程语言

巴科斯范式的内容

双引号中的字("word")代 表着这些字符自己。而double_quote用来表明双引号。
双引号外的字(有可能有下划线)表明着 语法部分。
尖括号( < > )内包含的为 必选项。
方括号( [ ] )内包含的为 可选项
大括号( { } )内包含的为 可重复0至无数次的项
竖线( | )表示在 其左右两边任选一项,至关于"OR"的意思
::= 是 “被定义为”的意思。
巴科斯范式示例
这是用BNF来定义的Java语言中的For语句的实例:
FOR_STATEMENT ::=
"for" "(" ( variable_declaration |
( expression ";" ) | ";" )
[ expression ] ";"
[ expression ]
")" statement

扩展的巴科斯范式 Augmented BNF

RFC2234 定义了扩展的巴科斯范式(ABNF)。近年来在Internet的定义中ABNF被普遍使用。ABNF作了更多的改进,好比说,在ABNF中,尖括号再也不须要。
 
endl;
相关文章
相关标签/搜索