Кто-нибудь знает, где я могу взять BNF или EBNF для языка программирования LOGO?
EBNF или BNF для языка программирования LOGO
Ответы (2)
Грамматика BNF может оказаться не слишком полезной в определенных обстоятельствах ...
Написать ЛОГОТИП, который точно совместим с существующей / исторической реализацией, - непростая задача (я работал над таким проектом). Проблема в том, что синтаксический анализатор не выполняет всю работу, а оценщик (интерпретатор) должен работать с частичными данными. Рассмотрим этот пример:
proc1 a b proc2 c
Это может означать proc1 (a, b, proc2 (c)) или proc1 (a, b, proc2 (), c) в зависимости от количества параметров для proc1 и proc2.
Более того, известные мне интерпретаторы LOGO, например Berkely LOGO, на первый взгляд кажутся не написавшими традиционный синтаксический анализатор, который дополнительно имеет доступ к каждой процедуре и ее арности; вместо этого они запускают процедуры, и процедуры «съедают» необходимое им количество параметров. Это делает синтаксический анализатор немного наивным, а главную роль играет интерпретатор, поэтому синтаксический анализ является чем-то необычным.
-
в -52
). При синтаксическом анализе вы сохраняете свои слова (минус - слово) в списке. Когда вы печатаете список, вы пишете пробелы между словами, ЗА ИСКЛЮЧЕНИЕМ знака минус, потому что если вы добавляете пробел после минуса, он становится РАЗНИЦОМ (т.е. 33 -52
отличается от 33 - 52
). Для чисел вы, вероятно, сразу же конвертируете значение. Однако это очень важно, когда вы пишете -:A
. В этом случае вам нужна противоположность _6 _...
- person Alexis Wilke; 28.06.2019
Стандартной реализации LOGO не существует.
Вероятно, вам лучше всего посмотреть на источник популярной реализации, такой как UCBLogo а>