Что означает двойная двоеточие, за которой следует знак равенства (:: =) в документации по программированию?
Что означает ::=
в документации по программированию?
Например, в документации 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
Ответы
Ответ 1
Он символизирует правило вывода символов в Бэксу-Наурской форме
Это означает, что в:
<symbol> ::= __expression__
nonterminal <symbol>
состоит из (определяется как, строится из, вытекает из) __expression__
Используется для описания языковых грамматик.
Обратите внимание, что оба примера находятся в Extended Backus-Naur Form, но с использованием традиционного разделителя символов-символа BNF (::=
).
Ответ 2
Это запись Backus-Naur Form (BNF), описывающая язык. ::=
в этом контексте означает, что это определено как.
Например, в документации на языке Python, на которую вы ссылаетесь, идентификатор определяется как буква или знак подчеркивания, за которым следует буква, цифра или символ подчеркивания. Затем обозначаются обозначения, обозначающие букву и цифру, и т.д.
Ответ 3
Как уже говорили другие, это часть нотации BNF. В Wikipedia есть описание и некоторые примеры, которые я не буду здесь повторять.
История и эволюция самого символа ::=
объясняются в История усилий ALGOL (p29 и далее).
Ответ 4
Данный синтаксис элемента. Например:
identifier ::= (letter|"_") (letter | digit | "_")*
означает, что все идентификаторы должны соответствовать заданному правилу синтаксиса.