2011-07-25 89 views
12

有谁知道在哪里可以获得编程语言LOGO的BNF或EBNF?用于LOGO编程语言的EBNF或BNF

+4

不知道谁投票决定关闭这是题外话。 “编程语言”甚至在标题... –

+0

看来这是它的方式到Reddit,我现在保护这个(将在几天内不受保护)。这不是问题,只是一种预防措施。 –

+3

@Tim Post这使得它的reddit编程subreddit,我不明白这是如何造成报警。甚至可能是吸引新用户的好机会? – ArtB

回答

12

一个BNF语法可能无法在某些情况下,太有用了......

写LOGO这是与现有/历史实现精确兼容并不是一件容易的事(我从事这样的项目)。问题在于解析器没有完成全部工作,评估者(解释器)必须处理部分数据。考虑下面的例子:

PROC1 AB PROC2Ç

它可以(,C,A,B,PROC2())根据数目意味着PROC1(A,B,PROC2(C))或PROC1参数proc1 & proc2。

此外,我所了解的LOGO解释器,例如Berkely LOGO,似乎从粗略的一瞥中不会写出一个传统的解析器,该解析器还可以访问每个过程及其参数;相反,他们运行程序和程序'吃掉'他们需要的参数数量。这使解析器有点幼稚,主要角色是解释器的角色,因此解析有点不同寻常。

+0

那么你是说那些明确的语言不可能有语法吗? –

+0

是的,我认为没有这样的语法存在(无论歧义的),除非它是一个天真的语法是大多分析命令字符串原样,只是解决了缀运营商和类似 –

+0

权,一个天真的解析器只会解析根据语法,但它不了解内置函数的* arity *。看起来,在解析时,在决定如何解析后续令牌之前,需要查找函数的* arity *。如你所说,这也更有意义,“随你解析”。 –

2

没有标准的LOGO实施。

你最佳的通话大概是看一个流行的实现的来源,如UCBLogo