Подтвердить что ты не робот

EBNF или BNF для языка программирования LOGO

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

4b9b3361

Ответ 1

BNF-грамматика может быть не слишком полезна при определенных обстоятельствах...

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

proc1 a b proc2 c

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

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

Ответ 2

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

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