不要上来就妄想通读龙书或者其它大部头著作。先从简单开始。
理论基础的学习建议看视频学习。本人是在哔哩哔哩上,看哈工大美女老师的课程学的。
非要看龙书,从第二版第2章,"一个简单的语法制导翻译器"开始。不要看后面其它章节。反复读,反复思考。最好自己写点代码实践一下,把基础夯实。这一章学完,对编译器就有谱了。其它章节可以视为某个细分领域或阶段的深入。第2章学懂了,看其它章节就没有"虚浮"的感觉。
如果自己对写代码没有思路,或者想参考一下别人的成果,不要上来就干LLVM、GCC。几百万行代码,伤不起。建议参考一个相对简单的C编译器——ucc编译器。这个编译器,一万多行代码就搞定了,能完成自举,还有一次为基础的教材。简直是学习利器,值得强力安利。
自制编译器正式命名为qcc。
最近花时间学习了龙书的词法分析,用自制编译器支持的类python语言实现了一个DFA,用于匹配正则表达式。这是自动词法分析的基础。搞完之后词法分析算是通透了。
目前正在学习语法分析。已经看到自顶向下的语法分析。计划依此理论实现一个自动语法分析器。后面还有自底向上的语法分析没看。
ucc链接:GitHub - sheisc/ucc162.3: A lightweight open-source C compiler for research and education.
内含pdf教材。
我本人正在学习和编(抄)写的一个编译器:p4c-pc: P4语言编译器
目前还处于初级阶段。编写过程记录在我的另一个帖子里:https://mp.csdn.net/mp_blog/creation/editor/130257671