社区
数据结构与算法
帖子详情
BNF范式是什么概念?
jas_liu
2002-04-05 10:13:47
经常看到这个词,不知怎样学习?
...全文
2744
15
打赏
收藏
BNF范式是什么概念?
经常看到这个词,不知怎样学习?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
muwls
2002-10-10
打赏
举报
回复
我个问题碰巧我知道,我可以肯定我说的是对的。
BNF是划分关系型数据库级别的标准,一般是从1NF到5NF逐次增高。说起来比较繁杂,一般达到3NF就可以了,亦即达到三级标准。这级标准要求数据库中各字段对主字段(即主键或主关键字)没有间接依赖关系和包含依赖关系,并且所有字段都不可再细分。
Andrawu
2002-10-10
打赏
举报
回复
在一个专家系统中用到过BNF,用于数据的一种模糊推理。
xinxinrenleier
2002-10-10
打赏
举报
回复
数据库里面的是叫BCNF吧?他说的是BNF!我觉得两种好象不一样,大家争论的焦点也在这上面!
xinxinrenleier
2002-10-10
打赏
举报
回复
BNF和BCNF是一回事情么?我看不是吧!BCNF是数据的完整性约束条件,BNF就不知道了!BCNF又叫做BC范式发明他的两个牛人,一个的英文名字是B打头的,另一个是C打头的,所以这个范式叫BC范式!
starfish
2002-10-08
打赏
举报
回复
就是Backus Naur Form啊,用来定义形式语言语法的一种形式化方法
iasp
2002-10-08
打赏
举报
回复
哈凄~~那什么是bcnf,,大写可能大家才认识 B C N F
crater
2002-10-08
打赏
举报
回复
up
vernezhu
2002-10-08
打赏
举报
回复
BNF是数据完整性方面的内容:
也就是我们常说的范式,通常有:第一范式,第二范式,第三范式,BNF范式。
他是数据完整性中要求比较高的一个范式。
具体的概念,你可以从数据库原理(高等教育出版社)中找到,不过我也搞不懂数据完整性的具体做法。
leon2k
2002-10-08
打赏
举报
回复
数据库怎么不会用到BNF?你看SQL的帮助:SQL语句是怎么定义的?怎样判断语法?
简而言之,BNF是用来定义一个文法的。
nofog
2002-04-06
打赏
举报
回复
Arter(阿蒂尔) 应该说的是 BCNF(Boyce-Codd Normal Form)吧
是关系代数(数据库理论)里面的概念
BNF正如DaNiao(鸿雁) 所说的。
DaNiao
2002-04-05
打赏
举报
回复
前面两个人不知道在说什么,BNF是编译原理课,或者是离散数学(有限自动机
和形式语言一段)里面讲的东西,跟数据库有什么关系?
数据库里的那个叫SQL :-)
DaNiao
2002-04-05
打赏
举报
回复
<BNF>::= <非终结符>::=<或项列表>
<或项列表>::= <项> | <或项列表>|<项>
<项>::= <非终结符> | <终结符> | <项><非终结符> | <项><终结符>
<非终结符>::= <非终结符名>
( 但愿能有人看得懂:-) )
BNF就是巴科特·瑙尔式的缩写,
在计算机的史前时代(1950s),曾有一位大师,他奠定了现代计算机的基础
在他老人家的诸多成就之中,包括了对形式语言的研究,和发明了高级语言:
FORTRAN。
为了纪念他老人家,我们把他提出的一套描述语言的方法叫做BNF
其实BNF很简单::=表示定义 |表示或 尖括号(<>)括起来的是非终结符
所谓非终结符就是语言中某些抽象的概念,终结符就是可以直接出现在
语言中的符号
比如:C语言的声明语句可以用BNF这样描述:
<声明语句> ::= <类型><标识符>; | <类型><标识符>[<数字>];
这一句中<声明语句>这个非终结符被定义成了两种形式(上面用|隔开的两部分)
在这里引入了三个终结符: 分号; 左右方括号[ ]
<类型> ::= <简单类型> | <指针类型> | <自定义类型>
<指针类型> ::= <简单类型> * | <自定义类型> *
<简单类型> ::= int|char|double|float|long|short|void
<自定义类型> ::= enum<标识符>|struct<标识符>|union<标识符>|<标识符>
到这里就基本上把<类型>定义清楚了
<数字> ::= 0X<十六进制数字串> | 0<八进制数字串> | <十进制数字串>
<十六进制数字串> ::= <十六进制数字> | <十六进制数字串><十六进制数字>
<八进制数字串> ::= <八进制数字> | <八进制数字串><八进制数字>
<十进制数字串> ::= <十进制数字> | <十进制数字串><十进制数字>
<十六进制数字> ::= <十进制数字> | A | B | C | D | E | F
<十进制数字> ::= <八进制数字> | 8 | 9
<八进制数字> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
到这里就把<数字>定义清楚了
<标识符> ::= <字母> | <标识符> <字母数字串>
<字母数字串> ::= <字母>|<十进制数字>|<字母数字串><字母>|<字母数字串><十进制数字>
<字母> ::= _ | <大写字母> | <小写字母>
<小写字母> ::= a|b|c|d|e|f|g|h|i|j …… (偷个懒)
<大写字母> ::= A|B|C|D|E|F|G|H|I|J ……
到此为止整个声明语句就定义完了(就是说已经没有非终结符了),虽然看起来很
繁,但前面定义的各种非终结符都可以很容易的在别的地方重用比如,函数声明
可以定义成下面的样子:
<函数声明语句> ::= <类型><标识符>(<形参表>);
<形参表> ::= <类型><标识符> | <形参表>,<形参表>
只用两句就描述完了,所以BNF实际上比用自然语言要简练得多
(整个C语言只用一二百句就可以描述清楚)
而且相当的精确,不会有自然语言中那种模棱两可的表达
如果你对BNF比较敏感的话,会发现C里面的标识符不能由数字开头
而且在C里面下划线是被当做字母看待的(也就是说能用字母的地方
都可以用下划线)比如:(最好用老一点的编译器比如PDP11上的cc)
#define ____ main
#define ___ for
typedef char* _____;
int (*______)(char *, ...) = printf; //如果这一句不灵,就用下面这句
//#define ______ printf //如果你用的是C++可以试一下下面这个
//int (*______)(const char *, ...) = printf;
____(_,char* __[]) //要是你编译器不吃,可以改成int ____(int _,char*__[])
{
___( ; _ ; _ --)
{
______("%s\n", __[_]);
}
}
另外,还有一种EBNF就没有正宗的BNF这么爽了,也有很多人在用,前面的
那些递归的定义被写成了{}
有一段时间PASCAL爱好者们喜欢用一个叫语法图的东西,画出来很难看,但
功能和BNF差不多,现在好象已经没多少人用了
近几年流行另一种东西:
digit = one of
0 1 2 3 4 5 6 7 8 9
这里非终结符digit用斜体表示,one of是这种方法里定义的一个量词(常用斜黑体)
我不喜欢这个,因为我眼神不好,常常分不清那个是斜体,那个是正体
Arter
2002-04-05
打赏
举报
回复
我曾经在一本《数据库系统导论》中学过,找一本数据库理论书,里面应该有
rhyno
2002-04-05
打赏
举报
回复
就我所知,BNF (Backus-Naur Form) 是一種用來描述語法的工具,如果你想深入了解的話,你應該去找一本 System Progamming 的書,Beck 寫的書還不錯
yb_yb
2002-04-05
打赏
举报
回复
up
基于本体的冲压工艺知识表示方法研究 (2006年)
通过把冲压工艺知识抽象为冲压工艺领域本体,将本体思想引入冲压工艺知识表示中,以利于知识的共享和重用。针对冲压工艺的特点,提出了基于
概念
、关系、属性、规则和实例五要素的冲压工艺领域本体的形式化定义,采用
BNF
范式
对领域本体进行统一的描述和表达,实现了
BNF
范式
与关系数据库之间的转换。通过构建冲压工艺领域本体,以关系数据库的形式存储,完成冲压工艺的知识表示。
论文研究-单字动词组合处理规则的计算机实现.pdf
以HNC理论的
概念
基元符号体系与句类体系为基础,探索分析了汉语中单字动词组合处理的特点及其句类特征,总结形成了处理规则。在
BNF
范式
和产生式规则的基础上,对处理规则进行了形式化,并在计算机程序中实现了对规则的解释与执行。最后在一定量的语料中进行了规则执行测试,并给出了测试结果。
论文研究-汉语动词连见的计算机处理规则研究.pdf
基于
概念
层次网络(HNC)理论,对多动词出现的一种情况——动词连见,进行了分类研究,给出了相应的处理规则。同时,还提出了一种基于
BNF
范式
和产生式规则的形式化规则描述语言,完成了对规则的形式化描述和软件实现。在此基础上,对真实语料中出现动词连见的语句进行了计算机自动处理,给出了处理结果。
山东大学 软件学院 数据库复习.zip
山东大学 软件学院 数据库 期末考试 经典练习题+考试题 包括知识点总结以及重点
概念
详解,很详细、全面 山东大学 软件学院 数据库 期末考试 经典练习题+考试题 包括知识点总结以及重点
概念
详解,很详细、全面
BNF
范式
和E
BNF
范式
1、什么是
BNF
范式
,什么又是E
BNF
范式
?(在学习中经常会碰到用
BNF
范式
描述的规则,老是忘记每个符号确切的作用,现在把他们一一罗列如下,亲手记录的东西应该能记住吧。。。-__-|||) 答:巴科斯
范式
及其扩展(
BNF
& Augmented
BNF
) 1)巴科斯
范式
:巴科斯
范式
(
BNF
: Backus-Naur Form 的缩写)是由 John Backus 和 Pete...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章