EBNF или BNF для языка программирования LOGO - PullRequest
12 голосов
/ 25 июля 2011

Кто-нибудь знает, где я могу получить BNF или EBNF для языка программирования LOGO ?

Ответы [ 2 ]

13 голосов
/ 26 июля 2011

Грамматика БНФ может быть не слишком полезной в определенных обстоятельствах ...

Написание логотипа, точно совместимого с существующей / исторической реализацией, не простая задача (я работал над таким проектом). Проблема в том, что парсер не выполняет всю работу, а оценщик (интерпретатор) должен работать с частичными данными. Рассмотрим этот пример:

proc1 a b proc2 c

Это может означать proc1 (a, b, proc2 (c)) или proc1 (a, b, proc2 (), c) в зависимости от количества параметров для proc1 и proc2.

Кроме того, известные мне интерпретаторы LOGO, например, Berkely LOGO, с беглого взгляда не пишут традиционный синтаксический анализатор, который дополнительно имеет доступ к каждой процедуре и ее арности; вместо этого они запускают процедуры, а процедуры «съедают» количество необходимых параметров. Это делает синтаксический анализатор немного наивным, и его главная роль - интерпретатор, поэтому синтаксический анализ является чем-то необычным.

3 голосов
/ 26 июля 2011

Нет стандартной реализации LOGO.

Ваш лучший вызов, вероятно, заключается в поиске источника популярной реализации, такой как UCBLogo

...