Language agnostic 在编程文档中,双冒号后跟等号(::=)意味着什么?

Language agnostic 在编程文档中,双冒号后跟等号(::=)意味着什么?,language-agnostic,symbols,Language Agnostic,Symbols,编程文档中的::=是什么意思? 例如在:或中。中,它在中表示“符号派生规则” 意思是: <symbol> ::= __expression__ ::=\uuuu表达式 非终结符由(定义为、构造自、派生自)\uuuuuuuu表达式\uuuuuuu 它被用来描述语言语法 请注意,这两个示例都在中,但使用了传统的BNF符号表达式分隔符(:=)。指定的元素语法。例如: identifier ::= (letter|"_") (letter | digit | "_")* 表示所有标

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

例如在:或中。

中,它在中表示“符号派生规则”

意思是:

<symbol> ::= __expression__ 
::=\uuuu表达式
非终结符
由(定义为、构造自、派生自)
\uuuuuuuu表达式\uuuuuuu

它被用来描述语言语法


请注意,这两个示例都在中,但使用了传统的BNF符号表达式分隔符(
:=
)。

指定的元素语法。例如:

identifier ::=  (letter|"_") (letter | digit | "_")*
表示所有标识符必须符合给定的语法规则。

这是描述语言的(BNF)符号<代码>::=在此上下文中,表示定义为


例如,在您参考的Python语言文档中,标识符定义为字母或下划线,后跟字母、数字或下划线。然后符号继续描述字母和数字的定义,依此类推。

正如其他人所说,它是BNF符号的一部分。维基百科有一个很好的例子,我在这里不再重复


::=
符号本身的历史和演变在(第29页之后)中进行了解释。

您的答案中使用的“标识符”与m0skit0的答案中使用的“标识符”有什么区别吗?看起来两者都是名称,即识别或引用数据的方式。@AudiOishi否,
仅用于标记终端和非终端之间的差异。在EBNF中省略它们是正常的,因为引用了端子。在BNF中,终端不必被引用,因此必须有某种方法将其与非终端区分开来。我们有时还会看到一个冒号后跟一个等号(例如)。这是相同的意思吗?@ShaunLuttin是的,尽管它可能会与赋值运算符混淆。有没有解释为什么
:=
表示“被定义为”?像
+=
这样的符号有意义吗?