如何学习编译原理?
编译原理国外有cs143这门神课,b站有up主搬运过:【CS143 斯坦福大学编译原理【中文字幕】-哔哩哔哩】https://b23.tv/bmgdwI
另外近年来编译器领域比较热门的项目就是llvm了,里面有一些练手的项目,文档也比较详细:https://llvm.org/
个人经验可以先跟着llvm的入门教程,写一下简单的编译器,大概1000行代码的样子;然后对照着cs143来看效果可能更好一些。
答主是先学了cs143然后最近在跟llvm教程,顺便也对llvm入门教程做了一个翻译:
感兴趣的话可以关注下,点个赞就更好了。
不过受限于个人水平,翻译效果可能不那么理想,计划翻译完后开源,感兴趣可以一起来完善下。
———————分割线———————
更新下:发现北航有个编译器课程也不错,不知道有没有对应的课程视频:https://buaa-se-compiling.github.io/miniSysY-tutorial/pre/llvm_ir_quick_primer.html
———————分割线———————
2021.11.13更新:
趁着周末,仓促赶了一版llvm入门教程的翻译,放在github了,欢迎感兴趣的朋友一起完善:https://github.com/hunterzju/llvm-tutorial
(第一版问题可能比较多,还请见谅,有不对的地方欢迎指出)
———————分割线———————
2021.12.01更新(感谢各位的赞):
纸上得来终觉浅,觉知此事要躬行。最近跟着llvm和mlir的tutorial折腾了一段时间后,大概熟悉了基本框架,接下来计划跟踪一些llvm社区的开发项目,先通过codereview做一些学习,希望逐渐能为社区贡献一些patch。
如何在llvm社区做codereview还是有一些坑的,简单做了个记录,送给有需要的人: