什么是BNF范式

转载 2013年12月02日 10:01:18

什么是巴科斯范式? 
   
  巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首先引入的用来描述计算机语言语法的符号集。
  现在,几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义编程语言的语法规则。    
      
     巴科斯范式的内容  

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

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

FOR_STATEMENT ::= 
      "for" "(" ( variable_declaration | 
  ( expression ";" ) | ";" ) 
      [ expression ] ";" 
      [ expression ] ";" 
      ")" statement

语法规范:BNF与ABNF

早上做智能施法项目,说一句话比如“明天6点开灯”,智能插座就会在6点把灯开起来,这涉及到语音语法方面的问题。由于科大讯飞开发语义,就决定用讯飞的SDK BNF        巴科斯范式(BNF...
  • a1006570862
  • a1006570862
  • 2014年01月03日 13:24
  • 4117

讯飞离线命令识别---在demo基础上新增自己定义的命令

开发环境时ubuntu 14.04 在官网下载离线SDK,找到官方提供的帮助文档,其中Development Manual.pdf是关于API说明,用于帮助你理解demo中代码,BNF...
  • goodchoes
  • goodchoes
  • 2015年05月22日 16:48
  • 3841

利用讯飞语音识别技术开发离线语音控制系统(Windows平台)

本项目是做出的产品是一个很大的一个Windows下的增强现实系统,产品功能已经基本完善,考虑到给用户带来更好的体验,故综合评估后采用讯飞语音识别方案进行嫁接。 项目介绍:1)打开系统时启动语音识别,检...
  • sac761
  • sac761
  • 2016年10月07日 21:18
  • 9723

“讯飞语音+”语音识别开放功能使用方法介绍

1“讯飞语音+”功能介绍        “讯飞语音+”主要提供的语音服务包括语音合成、语音识别、语义理解和语音搜索。 语音合成 讯飞语音+提供的语音合成服务包括在线语音合成与离线语音...
  • banGGGG
  • banGGGG
  • 2014年08月14日 16:53
  • 991

编译技术,从BNF范式到文法识别简介

今日漫谈的是编译技术,作为计算机科学中的皇后,一只是编程中最为关键的技术之一,但由于太过繁杂,往往不被一般开发者重视。但其实,它是计算机代码优美结构的基石,了解编译技术,往往能让你成为更加优秀的程序员...
  • sun_xiaofan
  • sun_xiaofan
  • 2015年04月03日 13:43
  • 7187

C语言BNF范式

C89,bnf范式
  • preyta
  • preyta
  • 2015年02月09日 20:51
  • 2109

“讯飞语音+”语音识别开放功能使用方法介绍

1“讯飞语音+”功能介绍        “讯飞语音+”主要提供的语音服务包括语音合成、语音识别、语义理解和语音搜索。 语音合成 讯飞语音+提供的语音合成服务包括在线语音合成与离线语音...
  • banGGGG
  • banGGGG
  • 2014年08月14日 16:53
  • 991

基于Predictive Parsing的ABNF语法分析器(一)——ABNF语法介绍

最近一直在做Session Initiation Protocol (SIP)协议方面的开发,SIP在电信VoIP领域应用非常广泛,是一个基于文本语法的协议。SIP的语法规范是使用ABNF来定义的。对...
  • panjunbiao
  • panjunbiao
  • 2013年06月06日 10:33
  • 2648

BNF范式学习

BNF 规定是推导规则(产生式)的集合,写为: ::= 这里的 符号> 是非终结符,而表达式由一个符号序列,或用指示选择的竖杠'|' 分隔的多个符号序列构成,每个符号序列整体都是左端的...
  • u014287775
  • u014287775
  • 2017年02月20日 16:00
  • 263

BNF范式 如何用C++实现自动推导

BNF范式ATTACK::= ATTACK_NAME { SIGNATURES  MATCH                                DESCRIPTION }ATTACK_NA...
  • lujia2716
  • lujia2716
  • 2005年04月15日 07:47
  • 949
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:什么是BNF范式
举报原因:
原因补充:

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