在编程文档中,双冒号跟等号(:: =)是什么意思?

编程文档中的::=是什么意思?

例如在Lua文档中: http : //www.lua.org/manual/5.2/manual.html#3.2

或Python文档: http : //docs.python.org/release/2.7.1/reference/lexical_analysis.html#identifiers

它以巴克斯 – 诺尔forms象征“符号推导规则”

意思是在:

 <symbol> ::= __expression__ 

非终结符<symbol>由(被定义为,构造自,派生自) __expression__

它被用来描述语言语法。

请注意,这两个示例都采用扩展Backus-Naurforms ,但使用传统的BNF符号expression式分隔符( ::= )。

这是描述语言的Backus-Naur表单 (BNF)表示法。 ::=在这个上下文中的意思是定义为

例如,在您引用的Python语言文档中,标识符定义为字母或下划线,后跟字母,数字或下划线。 这个表示法继续描述一个字母和一个数字被定义为什么,等等。

正如其他人已经说过,这是BNF符号的一部分。 维基百科有一个解释和一些例子 ,我不会在这里重复。

::=符号本身的历史和演变在“ALGOL努力的历史” (p29以上)中进行了解释。

给定的元素语法。 例如:

 identifier ::= (letter|"_") (letter | digit | "_")* 

意味着所有的标识符必须符合给定的语法规则。