关闭

巴科斯-诺尔范式

1250人阅读 评论(0) 收藏 举报

巴科斯-诺尔范式(也称为巴科斯-瑙尔范式、巴克斯-诺尔范式),即 BNF,是一种用于表示上下文无关文法的语言,上下文无关文法描述了一类形式语言。它是由约翰·巴科斯(John Backus)和彼得·诺尔(Peter Naur)首先引入的用来描述计算机语言语法的符号集。

尽管巴科斯范式也能表示一部分自然语言的语法,它还是更广泛地使用于程序设计语言、指令集、通信协议的语法表示中。大多数程序设计语言或者形式语义方面的 教科书都采用巴科斯范式。在各种文献中还存在巴科斯范式的一些变体,如扩展巴科斯范式 EBNF 或扩充巴科斯范式 ABNF。

一个BNF规则是一个推导规则的几何,写为:

<symbol> ::= __expression__

其中右面是若干个"|"分割的表达式(|是提供选择,indicating a choice),出现在左边的<symbol>是非终结符,从未出现在左边的是终结符。

下面是一个例子:

<postal-address> ::= <name-part> <street-address> <zip-part>
<name-part> ::= <personal-part> <last-name> <opt-jr-part> <EOL> | <personal-part> <name-part> <EOL>
<personal-part> ::= <first-name> | <initial> "."
<street-address> ::= <house-num> <street-name> <opt-apt-num> <EOL>
<zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL>
<opt-jr-part> ::= "Sr." | "Jr." | <roman-numeral> | ""


引自: http://blog.sina.com.cn/s/blog_4ddef8f80100li3k.html

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:396110次
    • 积分:4505
    • 等级:
    • 排名:第6533名
    • 原创:72篇
    • 转载:58篇
    • 译文:0篇
    • 评论:76条
    最新评论