首页 > 其他分享 >巴克斯范式

巴克斯范式

时间:2023-08-04 21:37:51浏览次数:36  
标签:www 范式 ABNF 巴克斯 http BNF 科斯


BNF是为了描述ALGOL 60语言而出现的。

 

 

http://www.blog.edu.cn/user1/18646/archives/2005/139037.shtml

巴科斯范式及其扩展

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

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

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

         这是Oracle packages的BNF定义:

    这是用BNF来定义的BNF本身的例子:

     
     扩展的巴科斯范式 Augmented BNF 
 
  RFC2234 定义了扩展的巴科斯范式(ABNF)。近年来在Internet的定义中ABNF被广泛使用。ABNF做了更多的改进,比如说,在ABNF中,尖括号不再需要。 
rfc2234:
http://www.rfc-editor.org/cgi-bin/rfcdoctype.pl?loc=RFC&letsgo=2234&type=ftp&file_format=txt

更多资源:http://www-128.ibm.com/developerworks/cn/java/j-diag/part19/index.html

 

What is BNF notation?

http://cui.unige.ch/db-research/Enseignement/analyseinfo/AboutBNF.html#Marcotty86 (包括BNF的历史和较早的文献)

 

answers.com上的介绍:

http://www.answers.com/topic/backus-naur-form-3

有很多有意义的文献:

 

 

One syntax for specifying BNF grammars can be found in RFC 2234. Another can be found in the ISO 14977 standard.

 

 

相当简洁,全面的BNF,EBNF定义(!!!!):

http://www-cgi.uni-regensburg.de/~brf09510/backus_naur_wirth.html

 

EBNF的国际标准ISO 14977

http://www.cl.cam.ac.uk/~mgk25/iso-14977.pdf

 

 

BNF多个版本的比较

http://www-cgi.uni-regensburg.de/~brf09510/grammartypes.html

 

Augmented BNF for Syntax Specifications: ABNF

ftp://ftp.rfc-editor.org/in-notes/rfc4234.txt

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

 

标签:www,范式,ABNF,巴克斯,http,BNF,科斯
From: https://blog.51cto.com/u_11326739/6968411

相关文章

  • 这是一篇水文!三大范式
    第一范式:要求保证数据表中的每一列都是原子的,不可再拆分。举个例子:我们可以将address列拆分成:省、市、区三列。那这里的address其实就不符合第一范式规范要求。第二范式:首先得满足第一范式。其次要求数据表中的每一个非关键属性列(普通列)都和主键唯一相关,而不是和主键的一部分相关......
  • 更高效、更精确、更智能的企业收入管理新范式——用友BIP收入云
    企业收入管理现状及痛点随着各大品牌商在线电商平台建设的不断完善,在线支付场景下的收单业务持续增长,在线支付已成为主流支付方式,这也给企业收入管理带来诸多挑战。俯瞰订单的全生命周期,从客户下单商品、生成订单、渠道收款、资金到账,再到财务端交易对账、收款认领、清分计量到最终......
  • 数据库三大范式是什么、mysql有哪些索引类型,分别有什么作用、事务的特性和隔离级别
    目录1数据库三大范式是什么2mysql有哪些索引类型,分别有什么作用3事务的特性和隔离级别事务四大特性(ACID)隔离级别--->为了保证四个特性的隔离性而有的1数据库三大范式是什么-https://zhuanlan.zhihu.com/p/618012849-#第一范式:1NF是指数据库表的每一列都是不可分割 -每列......
  • 数据库三大范式&mysql的索引类型和作用&事务的特性和隔离级别
    数据库三大范式&mysql的索引类型和作用&事务的特性和隔离级别数据库三大范式第一范式#数据库表的每一列都是不可分割的基本数据-每列的值具有原子性,不可再分割-每个字段的值都只能是单一值举例:学籍信息不符合第一范式,可以继续分割第二范式#在第一范式的基础上-如果......
  • 数据库三大范式,mysql索引,事务的特性和隔离级别
    1数据库三大范式是什么数据库设计理论中的三大范式是指关系数据库中的规范化原则,目的是减少数据冗余和数据更新异常。第一范式(1NF):第一范式要求关系数据库表的每个属性都是原子性的,即每个属性不能再细分为更小的数据项。它要求将数据划分为最小的单元,避免重复或多值属性。这样......
  • 10-DBA命令和数据库设计的三范式
    10-DBA命令和数据库设计的三范式课程目标掌握新建用户、授权、回收权限、导出导入、第一范式、第二范式、第三范式、三范式总结。10.1新建用户createuserusernameidentifiedby'password';说明:username——你将创建的用户名,password——该用户的登陆密码,密码可以为空,如果......
  • Prompt Learning: ChatGPT 也在用的 NLP 新范式
    编者按:自GPT-3以来,大语言模型进入了新的训练范式,即“预训练模型+Promplearning”。在这一新的范式下,大语言模型呈现出惊人的zero-shot和few-shot能力,使用较少的训练数据来适应新的任务形式。最近火爆出圈的ChatGPT是利用这一方式。简单理解Promptlearning,其核心就是以特定的模板,......
  • “范式杯”2023牛客暑期多校训练营1
    D:Chocolate大意:给定一个n*m的方格,上面摆放着巧克力,k和w在玩一个游戏,规定k先行,在每个回合内玩家可以吃掉坐标(x,y)内所有的巧克力(i<=x&&j<=y),在他们回合内至少吃掉一块巧克力,谁最后吃巧克力谁就输了,问赢家是谁做法:一个很经典的博弈论,chomp游戏,这个游戏经过证明可以得到先手必赢,......
  • 数据库逻辑设计之三大范式
    一、第一范式1NF是对属性的原子性,要求属性具有原子性,不可再分解;表:字段1、字段2(字段2.1、字段2.2)、字段3......如学生(学号,姓名,性别,出生年月日),如果认为最后一列还可以再分成(出生年,出生月,出生日),它就不是一范式了,否则就是;二、第二范式2NF是对记录的唯一性,要求记录有唯一标......
  • 数仓建模—Inmon范式建模与Kimball维度建模
    数仓建模—Inmon范式建模与Kimball维度建模在数据仓库领域,有两位大师,一位是“数据仓库”之父BillInmon,一位是数据仓库权威专家RalphKimball,两位大师每人都有一本经典著作,Inmon大师著作《数据仓库》及Kimball大师的《数仓工具箱》,两本书也代表了两种不同的数仓建设模式,这......