您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 指称语义 >

BNF范式(巴科斯范式)简介

发布时间:2019-07-08 22:24 来源:未知 编辑:admin

  这里的 符号 是非终结符,而表达式由一个符号序列,或用指示选择的竖杠分隔的多个符号序列构成,每个符号序列整体都是左端的符号的一种可能的替代。从未在左端出现的符号叫做终结符。

  BNF类似一种数学游戏:从一个符号开始(叫做起始标志,实例中常用S表示),然后给出替换前面符号的规则。BNF语法定义的语言只不过是一个字符串集合,你可以按照下述规则书写,这些规则叫做书写规范(生产式规则),形式如下:

  每条规则申明:=左侧的符号必须被右侧的某一个可选项代替。替换项用“”分割(有时用“::=”替换“:=”,但意思是一样的)。替换项通常有两个符号和终结符构成。之所以叫做终结符是因为没有针对他们的书写规范,他们是书写过程的终止(符号通常被叫做非终止符,也有人叫非终端)。

  BNF就是巴科特·瑙尔式的缩写, 在计算机的史前时代(1950s),曾有一位大师,他奠定了现代计算机的基础,在他老人家的诸多成就之中,包括了对形式语言的研究,和发明了高级语言:FORTRAN。 为了纪念他老人家,我们把他提出的一套描述语言的方法叫做BNF。它以递归方式描述语言中的各种成分,凡遵守其规则的程序就可保证语法上的正确性。BNF由于其简洁、明了、科学而被广泛接受,成为描述各种程序设计语言的最常用的工具。

  所谓非终结符就是语言中某些抽象的概念不能直接出现在语言中的符号,终结符就是可以直接出现在语言中的符号。

  这一句中声明语句这个非终结符被定义成了两种形式(上面用隔开的两部分),同时在这里引入了三个终结符: 分号; 左方括号[,右方括号 ]。

  虽然看起来很繁,但前面定义的各种非终结符都可以很容易的在别的地方重用。比如,函数声明可以定义成下面的样子:

  只用两句就描述完了,所以BNF实际上比用自然语言要简练得多(整个C语言只用一二百句就可以描述清楚),而且相当的精确,不会有自然语言中那种模棱两可的表达。如果你对BNF比较敏感的话,会发现C里面的标识符不能由数字开头,而且在C里面下划线是被当做字母看待的(也就是说能用字母的地方都可以用下划线)。

  另外,还有一种EBNF就没有正宗的BNF这么爽了,也有很多人在用,前面的那些递归的定义被写成了{}。

  有一段时间PASCAL爱好者们喜欢用一个叫语法图的东西,画出来很难看,但功能和BNF差不多,现在好象已经没多少人用了。

  这里非终结符digit用斜体表示,one of是这种方法里定义的一个量词(常用斜黑体)。

  扩展巴科斯-瑙尔范式(ExtendedBackus–NaurForm,EBNF)是一种用于描述计算机编程语言等正式语言的与上下文无关语法的元语法(metasyntax)符号表示法。简而言之,它是一种描...博文来自:夏日白云的boke

  巴科斯范式(BNF:Backus-NaurForm的缩写)是由JohnBackus和PeterNaur首次引入一种形式化符号来描述给定语言的语法(最早用于描述ALGOL60编程语言)。 巴科斯...博文来自:十万小时之旅

  Bakus-Naurform:BNF是描述编程语言的文法。自然语言存在不同程度的二义性。这种模糊、不确定的方式无法精确定义一门程序设计语言。必须设计一种准确无误地描述程序设计语言的语法结构,这种严谨、...博文来自:洛豳枭薰

  前言:当你搜索看到这篇文章时,我想你已经有了动机来了解什么是巴科斯范式(BNR范式,Backus-NaurForm)。对于本人而言,我是因为需要看一门编程语言的IEEE标准文档而需要了解BNR范式。为...博文来自:taidaohualang的博客

  1、巴科斯范式:巴科斯范式(BNF:Backus-NaurForm的缩写)是由JohnBackus和PeterNaur首先引入的用来描述计算机语言语法的符号集。现在,几乎每一位新编程语言书籍的作者都使...博文

  编程是对现实世界问题和解决方案的抽象,是利用面向人与机器的高级类自然语言沟通的世界。而有语言的地方就有思想的存在,深邃的编程范式便隐于其间。它指导我们构建起编程世界的万事万物。      让我们一一聆...博文来自:earlysun126的专栏

  此文分析离线语音识别的语义规则文件,即BNF文件,一般放在AndroidStudio的Assets文件夹下。本大侠使用的是科大讯飞的语音识别SDK,所以以下所有规则在此SDK下实测有效1、结构简单的说...博文来自:超人的博客

  铁路图(railroaddiagram)规则:[list][*]1.从左边界开始沿着轨道去到右边界。[*]2.沿途,你将在圆框中遇到的是字面量,在方块中遇到的是规则或者描述。[*]3.任何沿着轨道能走...博文来自:如果你真的想做一件事,你一定会找到方法; 如果你不想做一件事,你一定会找到借口。

  在双引号中的字(quot;wordquot;)代表着这些字符本身。而double_quote用来代表双引号。在双引号外的字(有可能有下划线)代表着语法部分。尖括号(amp;lt;a...博文来自:怒放的程序

  1.第一范式(确保每列保持原子性)2.第二范式(确保表中的每列都和主键相关)第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对...博文来自:stuShan

  目前,数据库的范式主要分为6种:第一范式,第二范式,第三范式,BC范式(巴斯-科德范式),第四范式和第五范式。第一范式:关系模型的所有属性都是不可分割的基本数据项,即每个属性都只包含单一的值。特点:实...博文来自:Evan_QB的博客

  我们在设计数据库的过程中,往往要用到范式或反范式的设计模式。熟悉地掌握范式与反范式的要领,学会在实际开发中恰当地混合使用范式与反范式,才能设计出结构合理,执行高效的数据库。下面就以一个经典的例子进行讲...博文来自:黄复贵的博客

  尝试对并行计算,分布式计算,云计算,串行计算,异构计算等概念进行梳理...博文来自:giantpoplar的专栏

  在数据库设计中范式分解是我们经常会用到的一种优化方法,这部分的概念还是非常的多的,接下来我会首先介绍范式分解的相关概念,然后具体介绍范式分解的方法。相信静下心来读完这边文章对你应该会有点帮助,如果你准...博文来自:IrvingW的博客

  最常用的编程范式计算机科学中主流的:1.面向对象编程2.面向过程编程3.泛型编程工程业务框架中特有的:4.事件驱动编程,一些VC,VB,Java框架中。5.并发编程,分布式编程。非常优秀但是很少用的编...博文来自:自由理想的足迹

  范式:是一个数据库规范的一个手段,定义;为了避免冗余数据的存放,确保存放数据的一致性,实质上就是进行简单写,复杂读;是层级化的,依次递增,满足后面的范式一定会满足前面的范式1》第一范式:(1NF)要求...博文来自:Superman宁

  一、编程范式编程方法论面向过程编程面向对象编程函数式编程二、函数式编程   简单说,函数式编程是一种编程范式(programmingparadigm),也就是如何编写程序的方法论。它有几个明...博文来自:@_囚徒-2018_的家园

  最近准备数据库工程师考试,发现好多问表结构属于什么类型的问题,这里总结归纳一下,其中第四范式并不常见,了解下就行了。借鉴:都讲的很详细博文来自:weixin_38961318的博客

  复习了一下数据库的五个范式,这里不用公式,用尽可能少的术语说说理解。之所以使用范式,往往是设计不规范的数据库表可能造成大量的数据冗余,也可能在发生插入、删除、修改操作后出现各种各样的不合理的问题。...博文来自:SteadySpace的专栏

  一、从现实世界到机器世界:  使用数据库技术的目的就是把现实世界中存在的事物,事物之间的联系在数据库中用数据加以描述,记录并对其进行各种处理,归类可用的信息,然后机器根据这些描述转换为机器可用的信息,...博文来自:鹈鹕门将的博客

  前提知识什么是键码?如果一个属性或多个属性的集合{A,B,C,D….}满足下面的条件,称为关系R的键码。1、这些属性函数决定该关系的所有其它属性2、{A,B,C,D….}的任何真子集都不能函数决定R的...博文来自:李正浩的博客

  1NF实体中不能有重复的属性。每个元组的每个分量都是原子的。2NF数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖。在1NF的基础上,要求每个非键属性依赖于键的整体(直接或间接),而不是键的...博文来自:hxh的博客

  参考地址:第一范式:属性不可分割性[/colo...博文来自:pergoods的博客

  多范式,就是多种编程方法的意思。有哪些编程方法呢?目前说来,有面向过程,面向对象,泛型,函数式四种程序设计方法。按既定的用法,范式就是一种公认的模型或模式。范式是一种对本体论、认识论和方法论的基本承诺...博文来自:wide288 的短文

  范式是在识别数据库中的数据元素,关系,以及定义所需的表和各表中的项目这些处事工作之后的一个细化的过程。常见的范式有INF,2NF,3NF,BCNF,以及4NF。1 1NF。第一范式是指数据库表的每一...博文来自:愿你出走半生,归来仍是少年

  编程范式面向过程编程面向对象编程函数式编程事件驱动编程面向切面编程1.面向过程编程#todo2.面向对象编程#todo3.函数式编程#todo4.事件驱动编程#todo5.面向切面编程(AOP)面向切...博文来自:wangpanyang的专栏

  机器学习当中最常见的三种范式包括:有监督学习、无监督学习和半监督学习。一、监督学习1、线任务训练数据的特征:标定的训练过程:根据目标输出与实际输出的误差信号来调节参数典型方法全局:BN,N...博文来自:yeler082的博客

  编程范式:命令式编程(Imperative)、声明式编程(Declarative)和函数式编程(Functional) 主要的编程范式有三种:命令式编程,声明式编程和函数式编程。 命令式编程: 命令式...博文来自:java_laoming的博客

  注意,这里面code的含义是密码:x场景就是用户(管理员)和权限,信息就是用户(用户名称、用户密码),权限。哎呀,这个图好像说得不对吧,第一步说不符合第三范式,其实是不符合第二范式。对于同一个人可以有...博文来自:hitwangzhuo的专栏

  什么是范式一张数据表的表结构所符合的某种设计标准的级别主属性非主属性1第1范式每个属性必定不能再分错误例子:编号品名进货(数量单价)销售(数量单价)备注修改后:编号品名进货数理进货单价销售数量销售...博文来自:sksweet的专栏

  计算范式经历了,大型机--个人电脑--互联网--社交网络和移动手机这几个阶段。基于区块链加密协议的网络很可能是新的范式。这个网络世界可以有效的利用区块链科技作为它的经济层,基于此正日益形成一个包...博文来自:Rachel715的专栏

  jquery/js实现一个网页同时调用多个倒计时(最新的)nn最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!nnnn//jsn...博文来自:Websites

  前言:前面几章都是分析MediaCodec相关源码,有收到提问,说MediaCodec到底是硬解码还是软解码?看下今天的Agenda:nMediaCodec到底是硬解码还是软解码nMediaMuxer...博文来自:何俊林

  最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗!nnDocker的三大核心概念:镜像、容器、仓库n镜像:类似虚拟机的镜像、用俗话说就是安装文件。n容器:类似一个轻量...博文来自:我走小路的博客

  突发奇想:n  今天坐在工位上,玩着电脑,突然回想起自己刚开始接触计算机的画面,很是感慨。感慨时光飞逝的同时,也感慨自己从事计算机行业原来都是有渊源的呀。n  想起了那么多珍贵的回忆,决定写篇文章记录...博文来自:赵亚兰的博客

  hongchenghong:有没有关于sql92的版本的中文对应的网址?我想看下

  Anprou:灵脉AI自动化渗透测试平台试用地址:,针对安全开发以及安全测试以及安全运营的漏洞检测,将安全前置到安全开发阶段,防止系统带病上线。

http://acetechpng.com/zhichenyuyi/244.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有