【整理】antlr在技术上的优势

 

antlr的技术上的优势

1.把之前的computing lookahead的数量级,从之前的O(n^k),降低到O(n*k)

即,从指数级,降低到,线性级。

也就是所谓的:linear approximate lookahead

 

2.之前的LL(k) parser,都是k=1的。

antlr 1.0,即PCCTS做到了,第一个实现了k>1的LL(k) parser generator

 

3.由于LR Parser是在得到了更多的输入的前提下去做出判断的,所以一般来说,LR parser都要比LL(k) Parser的解析能力更强

相反地,由于需要更多的输入,则导致了parser更多的事情,确定性的解析策略(deterministic parsing strategy),由此会导致,对于一些写法很不好的代码,会解析失败(因其不完全符合标准的语法)

比如,C++。

 

【TODO:待完善】

 

参考资料

http://www.antlr2.org/contributions.html



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量