首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用优先解析器不仅仅是为了表达式?

使用优先解析器不仅仅是为了表达式?
EN

Stack Overflow用户
提问于 2011-03-11 16:58:53
回答 1查看 1.1K关注 0票数 4

对于简单的编程语言,是否可以使用某种运算符优先解析器或分流码数算法?例如,如果这种语言只有表达式、函数和变量声明。

这种方式的利弊是什么?它能比传统的LL/LR解析器快很多吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-11 22:40:29

为了回答你的第一个问题,是的,可以将运算符优先解析作为语言的一部分。如果你对此感兴趣,你应该看看Pratt parsers。这通常是自顶向下解析的一种变体,因此它应该与其他解析选项处于相同的性能范围内。一般来说,我认为人们过于关注解析速度。编译器通常会把大部分时间花在优化上,在解析阶段花几毫秒的时间对我来说似乎不值得。

有一种语言magpie,它实现了一个Pratt解析器。所以最大的优点是他们已经在一个库中定义了语言的所有运算符,而不是核心语言。这使得核心语言变得令人难以置信地紧凑和可扩展。然而,缺点是,这使得其他用户总是不得不想知道特定运算符的优先级是什么,因为通常的内置规范可能不适用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5270865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档