Что означает двоеточие, за которым следует знак равенства (:: =), в документации по программированию? - PullRequest
44 голосов
/ 08 февраля 2012

Что означает ::= в документации по программированию?Например, в документации Lua : или в документации Python .

Ответы [ 4 ]

41 голосов
/ 08 февраля 2012

Символизирует «правило вывода символов» в форме Бэкуса – Наура

Это означает, что в:

<symbol> ::= __expression__ 

нетерминал <symbol> состоит из (определяется как, построен из, происходит от) __expression__

Используется для описания языковых грамматик.

Обратите внимание, что оба примера находятся в Расширенная форма Бэкуса-Наура , но с использованиемтрадиционный разделитель символьно-выражений BNF (::=).

12 голосов
/ 08 февраля 2012

Это Форма Бэкуса-Наура (BNF), обозначающая язык.::= в этом контексте означает, что определяется как .

Например, в документации по языку Python, на которую вы ссылаетесь, идентификатор определяется как буква или знак подчеркивания, за которым следует буква, цифра или знак подчеркивания.Затем в нотации описывается, как определяется буква и цифра и т. Д.

4 голосов
/ 08 февраля 2012

Как уже говорили другие, это часть нотации BNF. В Википедии есть объяснение и несколько примеров , которые я здесь не буду повторять.

История и эволюция самого символа ::= объясняется в История усилий Алгола (с. 29 и далее).

3 голосов
/ 08 февраля 2012

Заданный синтаксис элемента. Например:

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

Означает, что все идентификаторы должны соответствовать данному правилу синтаксиса.

...