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

2023-12-11 15:32:31 +08:00
 myJourney
3554 次点击
所在节点    程序员
28 条回复
546L5LiK6ZOt
2023-12-11 15:46:28 +08:00
timewarp
2023-12-11 15:51:51 +08:00
《编译器设计》
Jeff710
2023-12-11 16:14:12 +08:00
书没啥用,基本概念了解下直接学 LLVM, 可以跟着多伦多大学 CSCD70 这门课学,https://uoft-ecosystem.github.io/CSCD70/
Chingim
2023-12-11 16:16:37 +08:00
aminobody
2023-12-11 16:19:03 +08:00
学编译原理 ✖
学 LLVM ✔
zen1
2023-12-11 16:21:56 +08:00
记得上学的时候比较有名的是:龙书、虎书、鲸书。具体对应名字 google 下应该就有
MoYi123
2023-12-11 16:29:44 +08:00
《 WritingAnInterpreterInGo 》 可以跟着写的, 只有英文版.
manning
2023-12-11 16:36:35 +08:00
asm
2023-12-11 16:51:02 +08:00
同没学过,就是想大概了解下不求多深的深度,搜过什么龙书,看厚度都头疼。最近看《用 go 语言自制解释器》,刚开头,感觉还不错。
ninjashixuan
2023-12-11 16:58:11 +08:00
@MoYi123 这个中文版也出了
jones2000
2023-12-11 17:02:56 +08:00
编译原理 机械工业出版社

计算机专业都“编译原理”课程的。
hitmanx
2023-12-11 17:06:36 +08:00
<Brich Hansen on Pascal Compilers>
<Stack Computers>
<Crafting Interpreters>
<Engineering a Compiler>
<Writing Compilers and Interpreters>
<Write Yourself a Scheme in 48 Hours>

有几本是上古的书,但是比起新的书写得都很好,很详细很入门,实操性强。
还有个日本人写的书,名字忘了。也是从头开始写 interpreter 。图灵出版社的。

另外推一下 Stanford 的 CS143(编译原理)这门课,b 站有公开课的视频。可能是最入门的资料了:https://www.bilibili.com/video/BV1NE411376V/?p=4
hitmanx
2023-12-11 17:08:07 +08:00
@hitmanx 日本人写的这本找到了: https://book.douban.com/subject/25908672/ <两周自制脚本语言>
xtreme1
2023-12-11 17:29:54 +08:00
主要是你想侧重前端还是后端(对大部分人来说最有用的也是前端), 前者你就看楼上推荐那些书, 后者就学 LLVM.
jorneyr
2023-12-11 17:30:07 +08:00
编译原理:搜索 龙书
SmiteChow
2023-12-11 18:09:18 +08:00
不用看书,直接看库,如果你的目标是脚本语言,那只看编译前端的 antlr4 就够了,如果需要编译成二进制可执行文件在额外看 llvm
ShadowPower
2023-12-11 18:53:44 +08:00
《两周自制脚本语言》
xuedishang
2023-12-11 18:57:24 +08:00
这个 blog https://ruslanspivak.com/lsbasi-part1/ 挺好的,可以作为入门,了解编译原理的基本概念,自己动手实现一个简单的编译器
sjtulyj
2023-12-11 18:59:58 +08:00
slack
2023-12-11 19:16:28 +08:00
不推荐看《编译原理》,可以看看《编程语言实现模式》,结合 antlr ,yacc 之类的做一个 parser 差不多了

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

https://tanronggui.xyz/t/999400

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

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

© 2021 V2EX