BNF范式和EBNF范式
来源:互联网 发布:ads 差分端口 仿真 编辑:程序博客网 时间:2024/05/17 23:26
1、什么是BNF范式,什么又是EBNF范式?
答:巴科斯范式及其扩展(BNF & Augmented BNF)
1)巴科斯范式:巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首先引入的用来描述计算机语言语法的符号集。现在,几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义编程语言的语法规则。
2)巴科斯范式的内容:
在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。
在双引号外的字(有可能有下划线)代表着语法部分。
< > : 内包含的为必选项。
[ ] : 内包含的为可选项。
{ } : 内包含的为可重复0至无数次的项。
| : 表示在其左右两边任选一项,相当于"OR"的意思。
::= : 是“被定义为”的意思
3)扩展的巴科斯范式(Augmented BNF):RFC2234 定义了扩展的巴科斯范式(ABNF)。近年来在Internet的定义中ABNF被广泛使用。ABNF做了更多的改进,比如说,在ABNF中,尖括号不再需要。
4)EBNF的基本内容:
"..." : 术语符号
[...] : 选项:最多出现一次
{...} : 重复项: 任意次数,包括 0 次
(...) : 分组
| : 并列选项,只能选一个
斜体字: 参数,在其它地方有解释
例子BNF应用较多,以下给出一个简单例子,这是用BNF来定义的Java语言中的For语句的实例:
FOR_STATEMENT ::=
"for" "(" ( variable_declaration |
( expression ";" ) | ";" )
[ expression ] ";"
[ expression ] ";"
")" statement
答:巴科斯范式及其扩展(BNF & Augmented BNF)
1)巴科斯范式:巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首先引入的用来描述计算机语言语法的符号集。现在,几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义编程语言的语法规则。
2)巴科斯范式的内容:
在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。
在双引号外的字(有可能有下划线)代表着语法部分。
< > : 内包含的为必选项。
[ ] : 内包含的为可选项。
{ } : 内包含的为可重复0至无数次的项。
| : 表示在其左右两边任选一项,相当于"OR"的意思。
::= : 是“被定义为”的意思
3)扩展的巴科斯范式(Augmented BNF):RFC2234 定义了扩展的巴科斯范式(ABNF)。近年来在Internet的定义中ABNF被广泛使用。ABNF做了更多的改进,比如说,在ABNF中,尖括号不再需要。
4)EBNF的基本内容:
"..." : 术语符号
[...] : 选项:最多出现一次
{...} : 重复项: 任意次数,包括 0 次
(...) : 分组
| : 并列选项,只能选一个
斜体字: 参数,在其它地方有解释
例子BNF应用较多,以下给出一个简单例子,这是用BNF来定义的Java语言中的For语句的实例:
FOR_STATEMENT ::=
"for" "(" ( variable_declaration |
( expression ";" ) | ";" )
[ expression ] ";"
[ expression ] ";"
")" statement
- BNF范式和EBNF范式
- BNF范式和EBNF范式
- 什么是BNF EBNF 巴科斯范式及其扩展 BNF & Augmented BNF
- 什么是BNF范式,什么又是EBNF范式? 巴科斯范式及其扩展 BNF & Augmented BNF
- BNF(巴科斯-瑙尔范式)和EBNF(扩展巴科斯-瑙尔范式)
- 什么是BNF范式,什么又是EBNF范式
- BOOST::SPIRIT 什么是BNF范式,什么又是EBNF范式? 巴科斯范式及其扩展 BNF & Augmented BNF
- BNF范式
- BNF范式
- BNF范式
- BNF范式
- 什么是BNF范式,什么又是EBNF范式? http://blog.csdn.net/designlife/article/details/3206543
- 扩展巴科斯范式(EBNF)
- 什么是BNF范式
- BNF 巴科斯范式
- HTTP协议: BNF范式
- 巴科斯范式(BNF)
- BNF范式简介
- 切换IP地址的小工具
- 学习批处理命令——添加“显示|不显示 隐藏文件”右键菜单
- QT helloWord 程序
- http://blog.sina.com.cn/s/blog_8820018a0100w7t7.html
- wchar_t *str转换为CString 类型---VC新手学习
- BNF范式和EBNF范式
- 马宁关于Mango应用的Title的文章
- 对CAB文件进行数字签名
- 别把自己弄成一个委委屈屈的黄脸婆
- Python读写文件
- self_introduce
- 算法的力量 李开复__转自李开复网易博客
- 如何修改SQL Server 2000身份验证模式和系统管理员Sa的登录密码
- 数据库字段对比语句