【发布时间】:2012-03-01 01:12:24
【问题描述】:
::= 在编程文档中是什么意思?
例如在Lua documentation: 或Python documentation。
【问题讨论】:
::= 在编程文档中是什么意思?
例如在Lua documentation: 或Python documentation。
【问题讨论】:
代表Backus–Naur Form中的“符号推导规则”
意思是:
<symbol> ::= __expression__
非终结符<symbol> 由__expression__ 组成(定义为、构造自、派生自)__expression__
用于描述语言语法。
请注意,这两个示例都在 Extended Backus–Naur Form 中,但使用了传统的 BNF 符号表达式分隔符 (::=)。
【讨论】:
< 和 > 仅用于标记终端和非终端之间的区别。在 EBNF 中省略它们是正常的,因为引用了终端。在 BNF 中,终端不必被引用,因此必须有某种方法将它们与非终端区分开来。
这是描述语言的Backus-Naur Form (BNF) 符号。 ::= 在这种情况下意味着被定义为。
例如,在您引用的 Python 语言文档中,标识符定义为一个字母或下划线,后跟一个字母、数字或下划线。然后符号继续描述字母和数字的定义,依此类推。
【讨论】:
::= 的意思是“被定义为”?像 += 和 <> 这样的符号有意义吗?
正如其他人已经说过的,它是 BNF 表示法的一部分。维基百科有一个explanation and some examples,这里不再赘述。
::= 符号本身的历史和演变在The History of the ALGOL Effort(从第 29 页开始)中进行了说明。
【讨论】:
给定的元素语法。例如:
identifier ::= (letter|"_") (letter | digit | "_")*
表示所有标识符必须符合给定的语法规则。
【讨论】: