我一直想用自己的语言编写一段时间(表面上是为了学习经验),因此需要在构建解析器,解释器和编译器时相对基础.所以:
有谁知道构建解析器,解释器和编译器的任何好资源?
编辑:我不是在寻找编译器编译器/解析器编译器,如Lex,Yacc和Bison ......
我在编译器上读过的最好的论文是1964年 由Val Schorre撰写的"META II语法编译器编写语言".(http://doi.acm.org/10.1145/800257.808896)
在10页中,他向您展示了如何构建一个非常简单但非常有效的编译器编译器,为您提供编译器编译器语法,并为您提供足够的详细信息,以便您在下午手动实现它(具有一个惊人的 概念时刻)当你意识到它如何递归时),只是因为grins实现了类似ALGOL的语言.这篇论文是一个完整的气体,对于使用编译器技术的人来说,确实应该阅读.
根据论文,这里有一个关于元编译的精彩教程的链接. http://www.bayfronttechnologies.com/mc_tutorial.html
阿霍的"龙书"是该标准参照,而是另一个不错的选择是安德鲁阿佩尔的在Java的现代编译器实现(也可用ML和Ç口味).它逐步引导您逐步完成编译器/解释器的每个必要组件,并提供许多有用的源代码.
这篇由Steve Yegge(Rich Programmer Food)撰写的极具娱乐性的博客文章不会告诉你关于如何构建编译器的所有知识(尽管它确实包含了相当多的好的洞察力),但是它做得很好解释你为什么要理解编码器.
哎呀,这篇文章几乎让我开始研究编译器,我有一份全职工作,一个3岁的家庭,平均每天约1.5小时.
不是很容易,但详尽无遗:龙书
我发现“让我们构建一个编译器” -Jack Crenshaw的教程非常容易理解和理解。Jack从头开始为Pascal构建编译器,并详细解释了每个步骤。