以前没有学习过编译原理,最近想了解一下请问有什么推荐的书吗,最好能够跟着写的

346 天前
 myJourney
3358 次点击
所在节点    程序员
28 条回复
DianQK
346 天前
建议好好看书,入门 https://craftinginterpreters.com/ 。这里有很多可以做的事情,接下来看啥得看你想做什么。如果是感兴趣了解,前面入门我觉得也够了。
我的目标是贡献 LLVM/Rust ,我看的是:
- 南京大学的程序分 https://tai-e.pascal-lab.net/lectures.html
- LLVM Techniques, Tips, and Best Practices Clang and Middle-End Libraries
- 龙书
(还有些别的,但我觉得这些够看蛮久的,其他的方向就不懂了
enchilada2020
346 天前
一个问题 这种屠龙技学完用来干什么呢?或者说是出于什么目的才去学的
leave8426
346 天前
essentials of compilation, 有 Python 版本, 写一个 mini Python, 基本不太讲前端的内容. https://github.com/IUCompilerCourse/Essentials-of-Compilation
sbw
346 天前
我司在招传统编译器开发、测试,base 西安深圳苏州南京有意可 sbw at sbw dot so
milanxiaoge
346 天前
@sbw #24 汇川是不是要求比较高 T_T
sbw
346 天前
@milanxiaoge 主要工作方向上满足要求即可,也是根据能力定级的
liyafe1997
345 天前
这是我们学校的一门课,叫 Compiler construction ,挺有意思的,去年刚上过。所有课程资料包括实验都在这个 github repo 里: https://github.com/TDA283-compiler-construction/project
大概就是老师 YY 了一种语言叫 Javalettet (别误会,跟 Java 没半毛钱关系,实际我感觉更像个简化的 C ),语法规则啥的里面都介绍有,bnfc 的 cf 语法文件也给你写好了
按着实验要求做就行,就是实现这个 Javalettet 的编译器,最低要求是输出 LLVM 的代码(及格分)。如果想加分,得整点花活,比如生成其它平台比如 x86 的代码,或者加入面向对象功能,等等等等。
我当时做这个感觉收获颇多,至少是第一次自己完整实现一个编译器,知道了这些东西大概怎么一回事。如果你有兴趣也可以按着这个 project 要求跟着做。
liyafe1997
345 天前
@liyafe1997 如果你有兴趣,我也可以把我当时 project 的代码 share 给你

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/999400

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX