龙、虎、鲸书杂谈

简介: 关于编译有三本书:龙书: 《Compilers:Principles, Techniques, &Tools》虎书:《Modern Compiler Implement in C》 这本书还有JAVA和ML版本鲸书:《Advanced Compiler Design and Implementation》这三本书在编译领域非常出名,其中名气最大的应该属于龙书了,也是目前仍然有版本在印刷发行的。

关于编译有三本书:

龙书: 《Compilers:Principles, Techniques, &Tools》

虎书:《Modern Compiler Implement in C》 这本书还有JAVA和ML版本

鲸书:《Advanced Compiler Design and Implementation》

这三本书在编译领域非常出名,其中名气最大的应该属于龙书了,也是目前仍然有版本在印刷发行的。虎书和鲸书国内貌似没有继续发行了,我找英文版找了好久,都没有找到合适的,只好买的二手的旧书。三本书凑齐也挺不容易的。

这三本书,到目前为止,除了有时候查东西翻翻,正经读的最多的还算是龙书。虎书和鲸书都只读了一章。个人也想理一下这三本书的思路,好利于自己的读书和学习。曾经看到有人觉的最适合入门读的是鲸书,这点我实在是不敢苟同。除非是个人编译基础非常好,而且重点在于研究编译里的优化,可以直接读鲸书。其他的情况,都不建议直接读鲸书的。

龙书,对整个编译的过程,介绍的很详细,而且很多时候,对编译理论中很多的技术都介绍的很详细,给人感觉像是百科全书的感觉。你能用到的,基本在龙书里都能找到。正是这个原因,也让这本书读起来有点费劲。这本书对编译理论中的优化部分覆盖的不多,等于是它和鲸书刚好结合起来,构成编译的大百科,一个不侧重优化,一个侧重优化,都很详尽,将所有涉及的知识都覆盖了。

虎书更像是龙书和鲸书结合之后的简化版本,是建议作为学习编译的教材一类的书,既可以一学期学完,只学编译的基本知识,也可以两学期学完,继续学编译的高级topics,大部分也是关于优化的内容。虎书还有一个特别好的有点,就是很接近与实际,谈一些理论知识的时候,都会去拿实际的代码去说明一件事情,这样更加的利于学习时候的理解,而不是被一大堆的理论完全搞的摸不着头脑。

所以综合来看,如果技术不是非常的扎实,那还是建议从虎书开始学习,边学边练,慢慢的把基础打扎实,然后再继续龙书和鲸书的学习。编译原理是大学本科时候的必修课,可能很多人觉的自己学过了,基础应该可以,但是依然推荐从虎书开始,实际工作中,虽然大家都学过编译原理了,但是到最后能把整个流程的大致环节说清楚的,就算是不错的了。

目录
相关文章
|
5月前
|
IDE JavaScript 开发工具
如何在通义灵码里使用 MCP 能力
通义灵码支持MCP工具使用,通过模型自主规划实现工具调用,深度集成魔搭MCP广场,涵盖2400+热门服务。提供STDIO和SSE两种通信模式,适用于不同场景需求。用户可通过智能体模式调用MCP工具,完成如网页内容抓取、天气查询等任务。文档详细介绍了服务配置、使用流程及常见问题解决方法,助力开发者高效拓展AI编码能力。
942 43
|
10月前
|
存储 网络协议 Linux
第七问:你了解大端和小端字节序吗?
大端和小端是计算机中数据存储的两种字节序方式。大端(Big Endian)将高位字节存储在低地址,小端(Little Endian)将低位字节存储在低地址。大端主要用于网络通信和某些文件格式,确保数据传输的一致性;小端广泛应用于本地计算和硬件优化,提高处理速度。现代大多数 PC 和嵌入式设备使用小端字节序,如 x86 和 ARM 架构。
1704 0
|
10月前
|
Java Maven Spring
【SpringBug】lombok插件失效,但是没有报错信息,@Data不能生成get和set方法
解决写了@Data注解,但是在测试文件中生成的反编译target文件Us二Info中没有get和set方法
806 16
|
网络协议 物联网 5G
探索未来网络:IPv6的演进与应用
本文深入探讨了互联网协议第六版(IPv6)的发展背景、技术特性及其在现代网络中的应用。通过分析IPv4面临的地址枯竭问题,阐述了IPv6作为解决方案的重要性和紧迫性。文章详细介绍了IPv6相较于IPv4的改进之处,如更大的地址空间、简化的包头格式、增强的组播支持等,并探讨了IPv6在实际部署中遇到的挑战及应对策略。通过对IPv6过渡技术和双栈技术的讨论,揭示了其在促进下一代互联网发展中的关键作用。此外,文章还展望了IPv6在未来网络安全、物联网整合以及新兴技术中的应用前景,强调了掌握IPv6技术对于把握未来互联网发展趋势的重要性。
230 11
|
11月前
|
网络协议 算法 网络性能优化
|
10月前
|
人工智能 算法 PyTorch
ATB是什么?
ATB加速库专为华为Ascend AI处理器设计,针对Transformer模型的训练和推理进行了深度优化。它通过算法、硬件和软件层面的优化,大幅提升模型性能,降低能耗与成本。ATB支持PyTorch、MindSpore等多种框架,提供高效的基础算子及图算子技术,适用于各种应用场景。其软件架构主要包括基础Operation、Plugin机制和Graph Frame三部分,通过优化算子计算和数据传输,实现性能的显著提升。
|
12月前
|
JavaScript
【小白懂系列】Vue CLi脚手架创建第一个VUE项目
【小白懂系列】Vue CLi脚手架创建第一个VUE项目
172 2