国防工业出版社 陈火旺前辈的教材实在是难懂
1
cyberCat 2019-04-12 09:27:25 +08:00 1
龙书、虎书
|
2
Mithril 2019-04-12 09:27:50 +08:00 3
如果觉得上来就怼理论比较难理解的话,可以先试试写一些小的 parser。
比如正则的 parser,或者 JSON parser。这样就能理解这门课程学的理论是做什么的了。 然后自己用 ANTLR 一类的东西看看怎么生成一个 parser,如何去描述语法和词法。 国内的理论教材基本不会考虑学这个东西到底有什么用,你自己结合一些实践可能会比较好理解。 |
3
Yapie 2019-04-12 09:28:24 +08:00 1
写一个小语言.教程很多
|
4
feather12315 2019-04-12 09:46:41 +08:00 via Android 1
程序员的自我修养,入门看这个就行了。
至于深入,做编译器相关的工作吧 |
5
wsyzzz 2019-04-12 09:46:42 +08:00 2
我现在也正在学编译,建议入门先别跟着教科书学,中国出的教材就不谈了,龙书我刚才是看也很头疼,根本看不下去。
我的建议是先跟着 CS143:Compilers 看视频和小测验(有字幕,需要英文读能力),楼上说的实践在这个课程的编程作业里也有,GitHub 上也很多答案。然后因为这里面倾向于给你梳理整体框架和概念,视频时长限制讲的也比较简单,并且英文可能也搞不清楚是哪些名词,所以就对照着龙书的章节,以书作为补充和名词翻译。 另外要搞清楚学编译原理要干什么,有所侧重、不求甚解,比如我是需要了解语法分析相关,可能后面的 Java 虚拟机我就不需要很深入的学习。 附课程网址: https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/course/ |
6
lincanbin 2019-04-12 10:04:20 +08:00 via Android 1
看公开课
|
7
letianqiu 2019-04-12 10:17:11 +08:00 2
龙书不适合入门,龙书对于前端虽然讲得很详细,但是内容安排有很大问题,不连贯,跳跃性很大。可以先看 engineering a compiler, 配合 http://www.craftinginterpreters.com/ 。谷歌的员工写的,代码质量很不错
|
8
hmzt 2019-04-12 10:55:49 +08:00 1
知道词法分析和语义分析咋回事就行了,不是做编译器的没必要太深入,后面中间语言的生成和优化都可以不看
|
9
EricXuu 2019-04-12 11:21:53 +08:00 via Android 1
可以用 flex 和 bison ( lec 和 yacc )写一个计算器,就能疏通一遍了
|
10
CTO 2019-04-12 11:35:44 +08:00 1
同上,写个小 demo 理解编译器大致的流程就可以了
|
11
scalaer 2019-04-12 12:16:27 +08:00 via Android
之前学习逆向的时候看过王爽的汇编语言, 没有坚持下去。。
|
12
svenFeng 2019-04-12 12:29:38 +08:00 via Android 1
人家是想学编译原理,不是想学 parser 原理,都答的啥啊。。。去看 eopl,在写各式各样的解释器就懂不少东西了,再挑喜欢的方向深入,比什么各种编译器书高多了
|
13
seraphv3 2019-04-12 12:49:58 +08:00 1
大学时学过虎书 C 语言版本第一部分,在书的指导下做了一个 C 语言子集的编译器,架构都是按书上来的。按书上写了一个实现寄存器分配的后端,之后再没有遇到过什么程序比这个后端更复杂的。
虎书 C 语言版的特色在于它的函数式风格的 C 语言代码,不管什么都用链表或树,完全不用数组;而且完全不使用变量,也就是说不会对一个标识符进行初始化赋值之外的赋值 |
14
hakono 2019-04-12 12:51:57 +08:00 via Android
如果我这时候说从计算机原理的自动机开始学会不会被打。。。。
|
15
FrankFang128 2019-04-12 12:52:41 +08:00 3
神书:《计算的本质》
你看了第一章就会回来谢我了。 |
16
FrankFang128 2019-04-12 12:53:07 +08:00
前面有一章讲 Ruby,那个不算第一章~
|
17
Heanes 2019-04-12 15:04:52 +08:00 1
之前大学学编译原理,没学懂。。现在也想好好学一下
|
18
agagega 2019-04-12 16:51:58 +08:00 via iPhone 1
陈火旺那个书就 tm 不是中文
|