编译器组件的优质源码
我现在正在上一个编译器的课程。我不太喜欢死记硬背那些知识点,因为没有地方可以用上它们。我想通过实际动手来学习。
所以,我希望能找到3到4个编译器的完整代码,最好是针对不同语法规则的语言(比如Python、C、C++、Java),这样我在学习《龙书》的时候可以参考。
如果完整的编译器代码太难找,那一些写得好的解析器(比如LL、LR、LALR解析器)和这些语言的中间代码生成器的例子也可以。
网上有很多相关的代码,但我希望能找到一些被认为是高质量和标准的资源。如果你能推荐一些资料给我,我会非常感激。谢谢!
6 个回答
1
这是关于Python解析器的文档。这个源代码是你安装Python时自带的。只要安装了Python,你就能找到这个模块的源代码。
http://docs.python.org/library/parser.html#module-parser
还有一个较旧的编译器包。
2
你可以从lua.org网站上获取Lua编译器的代码,他们提供了完整的源代码。你也可以下载GCC的源代码,它可以编译C和C++语言。
2
这里有一些简单易懂的编译器:
- 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