Moh*_*amy 13
在某些情况下,BNF语法可能不太有用......
编写一个与现有/历史实现准确兼容的LOGO并不是一件容易的事(我在这样一个项目上工作).问题是解析器没有完成整个工作,并且评估器(解释器)必须处理部分数据.考虑这个例子:
proc1 ab proc2 c
根据proc1和proc2的参数个数,它可能意味着proc1(a,b,proc2(c))或proc1(a,b,proc2(),c).
此外,我所知道的LOGO解释器,例如Berkely LOGO,似乎从粗略的一瞥,不是要编写一个传统的解析器,它还可以访问每个程序及其arity; 相反,他们运行程序,程序"吃掉"他们需要的参数数量.这使解析器有点天真,主要角色是解释器,因此解析有点不寻常.