巴科斯-诺尔范式

转载 2011年01月11日 10:46:00

巴科斯-诺尔范式(也称为巴科斯-瑙尔范式、巴克斯-诺尔范式),即 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

 

相关文章推荐

扩展巴科斯范式

转载自维基百科:http://zh.wikipedia.org/wiki/扩展巴科斯范式 扩展巴科斯范式 维基百科,自由的百科全书 扩展巴科斯-瑙尔范式(EB...

巴科斯范式(BNF: Backus-Naur Form)

什么是巴科斯范式?   巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首次引入一种形式化符号来描述给定语言的语法(最早用于描...

巴科斯范式

什么是巴科斯范式? 巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首先引入的用来描述计算机语言语法的符号集。现在,几乎每一位新...

扩展巴科斯范式(EBNF)

【神马东东】 巴克斯范式(又称巴科斯-诺尔范式,BNF,short for Backus-Naur Form)是由John Backus 和 Peter Naur 首次引入的一种与上下文无关,使...

巴克斯-诺尔范式语法说明

今天在看《》一书时返现一个
  • Joyhen
  • Joyhen
  • 2014-11-09 16:39
  • 2149

迅雷模板,马科斯4.0模板

  • 2011-08-20 19:18
  • 463KB
  • 下载

迪科斯彻算法

迪科斯彻算法(Dijkstra)是由荷兰计算机科学家艾兹格·迪科斯彻(Edsger Wybe Dijkstra)发明的。算法解决的是有向图中单个源点到其他顶点的最短路径问题。举例来说,如果图中的顶点表...
  • ituff
  • ituff
  • 2011-03-16 11:49
  • 2828

最短路径之迪科斯彻算法(Dijkstra's algorithm)的java实现

迪科斯彻算法使用广度优先搜索在非负权有向图上解决单源最短路径问题。 算法说明依据在这里。 没有经过仔细测试,用下图的这个例子试了一下没问题。(视频出处) 代码贴在下面,通过指定参数的变化...

科斯法则下的社区 - 《未来是湿的》读后感

现在的社区多如牛毛,一个人就发起一个社区,有可能有两三个核心成员,社区总共就十多个常打酱油的。我常想,为什么现在会出现了这么多的社区? 有一个答案是:社区是群体的一种形式,出现这么多社区(多数是线上社...
  • Adali
  • Adali
  • 2012-09-25 18:04
  • 3892

基于迪科斯彻算法(Dijkstra's algorithm)的次短路径问题的java实现

在Dijkstra算法的基础上作一些改动,可以扩展其功能。比如,可以在求得最短路径的基础上再列出一些次短的路径。做法是先在原图上计算出最短路径,然后从图中删去该路径中的某一条边,在余下的子图中重新计算...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)