Joe*_* P. 7 c compiler-construction gcc
我最近对编译器及其工作原理非常感兴趣.由于gcc有它的来源,我认为这将是最好的研究材料.
我意识到的第一件事是,如果我对简单的编译器设计原则没有基本的理解,那么学习gcc是没有意义的.从那以后,我一直在努力阅读"龙书",据我所知,这本书是关于编译器实现的事实上的书.
尽管如此,阅读这本书只会进一步促进我学习gcc等编译器的愿望.
另外,我发现有必要说我对c/c ++有一个中间的理解(也就是说,我不是在不知道c的情况下研究gcc).我希望学习gcc也能帮助我改进这一点.
我已经下载了我能找到的最新版本; 但是,在阅读源代码时我迷路了.
我正在寻找的是关于如何进行的建议.是否有一个类似的项目,不是那么庞大,我可以用作gcc的垫脚石?是否有一个特定的gcc模块,人们会建议先学习?是否有任何书籍进入gcc的实施,而不是它的使用?也许我应该停止抱怨并继续阅读源,直到它点击?
任何和所有反馈将不胜感激.
编辑:如果您认为我应该学习不同的编译器/解释器,我将非常感谢您提出哪些建议/解释器.
如果你想看一个非常小的编译器,我会推荐Fabrice Bellard的Tiny C编译器.
另外值得一提的是,Fabrice Bellard用他的Obfuscated Tiny C编译器赢得了混淆的c代码竞赛.还有一个反混淆版本,它适合单个c文件.
如果你想要一些小而易于学习的东西,这些应该是很棒的.
我肯定会看看clang/LLVM.我认为代码库非常易读.你有一个非常可行的选择是使用LLVM作为后端并编写自己的简单词法分析器和解析器.