
【计】 Backus-Naur formalism
bar; be close to; cling to; hope earnestly
【化】 bar
【医】 bar
a branch of academic study; family; pass a sentence; section
【化】 family
【医】 department; family; family systematic
【经】 accountant's department; division head; section
this
【化】 geepound
a; an; each; one; per; same; single; whole; wholehearted
【医】 mon-; mono-; uni-
promise; yes
like so; you
【计】 normal form
巴科斯-诺尔范式(Backus-Naur Form,简称BNF)是一种用于描述计算机编程语言或形式语言语法规则的元语言,由约翰·巴科斯(John Backus)和彼得·诺尔(Peter Naur)于20世纪60年代提出。其核心功能是通过递归规则定义符号的组合结构,为编译器设计、协议规范等领域提供精确的语法描述框架。
BNF由三部分组成:非终结符(用尖括号包裹,如
BNF广泛应用于编程语言规范(如ALGOL 60报告)、数据格式定义(如XML Schema)和网络协议描述。计算机科学经典著作《编译原理》(Alfred V. Aho等著)中详细阐释了其在词法分析中的应用机制。
为提升表达能力,学界衍生出扩展巴科斯范式(EBNF),新增可选符([ ])、重复符({ })等语法糖。万维网联盟(W3C)在XML规范中采用EBNF描述文档类型定义。
根据《ACM计算分类系统》,BNF属于形式语言理论中的上下文无关文法范畴,其数学基础被图灵奖得主高德纳(Donald Knuth)在《计算机程序设计艺术》中深入探讨。剑桥大学计算机实验室公开课资料显示,现代语言解析器生成器(如Yacc)仍以BNF为底层描述语言。
巴科斯-诺尔范式(Backus-Naur Form,简称BNF)是一种用于描述上下文无关文法的形式化表示方法,主要应用于计算机语言、指令集和通信协议的语法定义。以下是其核心要点:
由约翰·巴科斯(John Backus)和彼得·诺尔(Peter Naur)在20世纪50年代提出,最初用于定义ALGOL 60编程语言的语法。BNF通过符号规则描述语言结构,其中:
<digit>
),需通过其他规则进一步定义。0
、+
)。<符号> ::= 表达式
,其中 ::=
表示“定义为”,|
表示“或”。基本规则示例
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
表示 <digit>
可以是0到9中的任意一个数字,|
提供多个选择。
组合规则
<fullname> ::= <title> <name> <name>
<title> ::= Mr | Mrs | Ms | Miss | Dr
此处 <title>
是终结符的集合,而 <fullname>
由非终结符组合而成。
{}
表示重复)和可选符号(如 []
)。%d65
表示ASCII字符A)。如需更完整的语法示例或变体细节,可参考权威编程语言理论教材或RFC文档。
颁发日期贝克曼氏分光计铲鲨担保付款多囊状膀胱非亲笔签字分隔圆盘赋标号语句弗勒德氏试验服务态度甘地主义红光直接耐光橙监察人检验子程序级联归并精选费极限糊精水解酶机械装置开会落日民主人士脑蛛网膜球蛋白ж石油蒸汽的冷凝水肿套针顺口停产井