我目前正在学习编译器类(class)。我不喜欢盲目死记硬背而没有任何地方可以应用它们的想法。我想通过动手做来学习。
因此,我想在阅读 Dragon book 时获得 3-4 个编译器的完整代码,可能针对具有不同语法规则的语言(python、c、c++、java)。
如果完整的编译器要求太高,这些语言的解析器示例(编写良好的 LL、LR、LALR 解析器)和中间代码生成器也可以。
Internet 上有很多关于此的代码,但我想要一些被认为是高质量和标准的代码。如果您能在这件事上向我推荐任何资源,我将不胜感激。谢谢。
最佳答案
有一堆简单易懂的编译器:
- http://spivey.oriel.ox.ac.uk/corner/Oxford_Oberon-2_compiler
- http://caml.inria.fr/caml-light/index.en.html
-
还有一些工具,不是完整的编译器,但仍然有用:
- http://cil.sourceforge.net/ (完整的 C 解析器和代码分析工具)
- http://scottmcpeak.com/elkhound/ (一个完整的 C++ 解析器)
更新:
可能是最令人印象深刻的一个: - http://community.schemewiki.org/?90min-scheme2c
关于java - 编译器组件的良好源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4818779/