豆瓣
扫码直接下载
作者讲述的思路很好,编译器的基本实现流程都说到了。但可惜的Cb是用java实现的,大量的类和继承让代码显得臃肿拖沓,而即使采用了这么多类,这么大的代码量却仍然还有C的大量特性没有实现。对比之前看过的另外一个实现C11标准的编译器8cc,采用C11实现,完成基本C11特性的基础上却只有不到6000行代码量,并且代码简洁易懂,可读性和参考价值颇高。综上,这本书只能用来了解编译器的基本实现流程,代码我觉得就不用过于深究,可读性和研究的价值不大。个人见解,请勿拍砖。
我明白了!明白了!明白了!
加载和链接。Linux 系统下通过mmap系统调用把程序加载到内存中。mmap是把文件内容映射到内存空间中的系统调用。所谓“映射”,意思是可以通过读取内存直接获得文件内容,也可以通过写内存对文件内容进行变更。
好看的飞起~~~,最近正在搞JavaCC 读到 IR 就不读了 书确实不错
整本书对 javaCC 的依赖很强,不是很推荐
词法语法分析 生成中间代码 汇编 链接 生成可执行文件 --- 也了解jvm的原理了
大三学习的时候看的
作为入门编译原理目的非常好,内容很具体。不像通常日本的书太过囉嗦。入门的书就应该具体,等到有具体的印象和了解,再去深入抽象才能在更高层次掌握。 最终的体会是,这本书用来了解概念入门很不凑,但是里面堆叠的代码实现实在冗余。所以只能得3星了。
适合用于了解编译器实现的基本流程
后端比前端复杂多了(得补补汇编了
这也能叫做书?
R大推荐的入门书,书中用Java搭建了一个c语言的编译器。个人感觉本书易读性比plp,eopl要高很多,两位大神翻译的也很好,不知道为什么分数那么低。 书中编译器前端采用javacc做词法语法分析,Action搭建抽象语法树,语义分析和IR转换采用visitor模式;后端则搭建了一个DSL用来表示汇编代码,做了一些代数简化和运算强度的简单优化,最后使用GNU as编译汇编文件得到ELF文件。 设计模式的使用增加了可扩展性,提高了清晰度,但是仍然有大量的实体类,增加了阅读的难度。 总体来说是一本非常注重实践并且清晰易懂的书,可以和R大推荐的另一本plp(程序设计语言实践之路)搭配食用。有些地方还不是很懂,需要再看几遍。
很好,跟着可以慢慢学习如何自己写一个编译器。
毕竟也做过编译器,所以买了一本看架构,没有读完。 21年写parser的时候,全读了一遍,用来参阅。
从编译,汇编,链接到装载的每一个阶段,都有涉及; 编译器的前端没有使用手写,直接使用javacc;和其他编译器书不同的地方在于涉及到装载的全过程. 另一个特点是,其实是实现了一个c flat language.
用来大概了解编译流程挺合适,代码太多,不实际看源码一会就晕了。汇编部分没基础,跳过了
缺少对于自制编译器技能树的描述,或者说开头没有总览来介绍书籍各部分的功能及作用,前后章节的关联性也很差。因此对新手来说,刚开始读会变的很迷茫,无法将各部分内容与自制编译器整个过程联系起来。
java写的,不适合我
自制系列
非常一般,如果想跟着这本书写个编译器可以放弃了
> 自制编译器
30 有用 麦克敦伦 2016-10-28 15:58:06
作者讲述的思路很好,编译器的基本实现流程都说到了。但可惜的Cb是用java实现的,大量的类和继承让代码显得臃肿拖沓,而即使采用了这么多类,这么大的代码量却仍然还有C的大量特性没有实现。对比之前看过的另外一个实现C11标准的编译器8cc,采用C11实现,完成基本C11特性的基础上却只有不到6000行代码量,并且代码简洁易懂,可读性和参考价值颇高。综上,这本书只能用来了解编译器的基本实现流程,代码我觉得就不用过于深究,可读性和研究的价值不大。个人见解,请勿拍砖。
9 有用 灵茶山艾府 2017-05-31 15:41:42
我明白了!明白了!明白了!
5 有用 阅微草堂 2017-07-19 18:23:13
加载和链接。Linux 系统下通过mmap系统调用把程序加载到内存中。mmap是把文件内容映射到内存空间中的系统调用。所谓“映射”,意思是可以通过读取内存直接获得文件内容,也可以通过写内存对文件内容进行变更。
6 有用 hoterran 2017-08-08 15:29:54
好看的飞起~~~,最近正在搞JavaCC 读到 IR 就不读了 书确实不错
3 有用 ikcd 2017-01-06 23:49:16
整本书对 javaCC 的依赖很强,不是很推荐
0 有用 hisheng 2018-05-08 11:57:05
词法语法分析 生成中间代码 汇编 链接 生成可执行文件 --- 也了解jvm的原理了
0 有用 卡比卡比 2022-01-27 13:12:08
大三学习的时候看的
0 有用 阿信 2022-04-28 15:57:07
作为入门编译原理目的非常好,内容很具体。不像通常日本的书太过囉嗦。入门的书就应该具体,等到有具体的印象和了解,再去深入抽象才能在更高层次掌握。 最终的体会是,这本书用来了解概念入门很不凑,但是里面堆叠的代码实现实在冗余。所以只能得3星了。
2 有用 ItTrivial 2020-11-27 20:52:42
适合用于了解编译器实现的基本流程
0 有用 龙三 2019-05-22 11:09:26
后端比前端复杂多了(得补补汇编了
0 有用 便型金刚 2019-10-14 04:10:19
这也能叫做书?
2 有用 SakamataZ 2021-07-03 21:20:21
R大推荐的入门书,书中用Java搭建了一个c语言的编译器。个人感觉本书易读性比plp,eopl要高很多,两位大神翻译的也很好,不知道为什么分数那么低。 书中编译器前端采用javacc做词法语法分析,Action搭建抽象语法树,语义分析和IR转换采用visitor模式;后端则搭建了一个DSL用来表示汇编代码,做了一些代数简化和运算强度的简单优化,最后使用GNU as编译汇编文件得到ELF文件。 设计模式的使用增加了可扩展性,提高了清晰度,但是仍然有大量的实体类,增加了阅读的难度。 总体来说是一本非常注重实践并且清晰易懂的书,可以和R大推荐的另一本plp(程序设计语言实践之路)搭配食用。有些地方还不是很懂,需要再看几遍。
0 有用 不得了啦 2021-09-18 10:54:47
很好,跟着可以慢慢学习如何自己写一个编译器。
0 有用 morninglife 2019-01-27 08:46:50
毕竟也做过编译器,所以买了一本看架构,没有读完。 21年写parser的时候,全读了一遍,用来参阅。
0 有用 佚名 2024-01-26 22:25:30 天津
从编译,汇编,链接到装载的每一个阶段,都有涉及; 编译器的前端没有使用手写,直接使用javacc;和其他编译器书不同的地方在于涉及到装载的全过程. 另一个特点是,其实是实现了一个c flat language.
1 有用 GooMU 2017-09-17 11:56:35
用来大概了解编译流程挺合适,代码太多,不实际看源码一会就晕了。汇编部分没基础,跳过了
3 有用 Breath 2019-06-23 13:57:18
缺少对于自制编译器技能树的描述,或者说开头没有总览来介绍书籍各部分的功能及作用,前后章节的关联性也很差。因此对新手来说,刚开始读会变的很迷茫,无法将各部分内容与自制编译器整个过程联系起来。
0 有用 yohunl 2020-04-13 22:22:48
java写的,不适合我
2 有用 官理员等108人 2018-05-21 06:01:41
自制系列
0 有用 2023-11-15 20:23:59 广东
非常一般,如果想跟着这本书写个编译器可以放弃了