Does anyone know where I can get the BNF or EBNF for the LOGO programming language?
A BNF grammar might not be too useful in certain circumstances...
Writing a LOGO that's accurately compatible with existing/historical implementation isn't an easy task (I worked on such a project). The problem is that the parser doesn't do the full job, and the evaluator (interpreter) has to work with partial data. Consider this example:
proc1 a b proc2 c
It could mean proc1(a, b, proc2(c)) or proc1(a, b, proc2(), c) according to the number of parameters for proc1 & proc2.
Furthermore the LOGO interpreters I know, for example Berkely LOGO, seem from a cursory glance not to write a traditional parser that additionally has access to each procedure and its arity; instead they run the procedures and the procedures 'eat up' the number of parameters that they need. This makes the parser a little naive and the main role is that of an interpreter, and thus parsing is kind of unusual.
-
in -52
). When you parse you save your words (minus is a "word") in a list. When you print a list, you write spaces between words EXCEPT the minus sign because if you add a space after the minus it becomes a DIFFERENCE (i.e. 33 -52
is different from 33 - 52
). For numbers you are likely to convert the value immediately. However that's very important when you write -:A
. In this case you want the opposite of :A
... –
Folkestone There is no standard LOGO implementation.
Your best call is probably to look at the source of a popular implementation, such as UCBLogo
© 2022 - 2024 — McMap. All rights reserved.