解析器和编译器是两个独立的问题。例如,我可能会用C编写一个编译器,但是我永远不会用C编写一个解析器(我将使用解析器生成器)。对于速度不是优先级的非常简单的解析器,我可以使用具有良好的文本处理功能的Perl或Python手动编码解析器。但是对于除了非常基本的解析器之外的任何东西,我都会使用某种解析器生成工具。最常用的是ANTLR,Coco / R和Lex / Yacc以及GNU实现Flex / Bison。我的个人偏好是Coco / R,但是ANTLR如今似乎更受欢迎。
如果要编写通用编程语言,则可能需要考虑自己编写。这样做有很多好处,包括可移植性(人们只需要移植该语言的第一个版本)和演示功能(解析是一个困难的问题,因此,如果可以用您的语言来完成,这就是对您语言的证明)。如果您的语言经过解释,出于性能原因,这可能不合适。
| 归档时间: |
|
| 查看次数: |
7946 次 |
| 最近记录: |