编译原理与语言设计导论

Hacker News Top 产品

摘要

一本由 Douglas Thain 教授编写的免费在线教材,介绍编译器构造,读者可学习如何为类 C 语言构建编译器,生成 X86 或 ARM 汇编代码。支持免费下载或购买纸质版。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/05 13:30

# 编译原理与语言设计导论 来源:https://dthain.github.io/books/compiler/ ## 圣母大学 Douglas Thain 教授 这是一本免费的在线教科书:欢迎直接点击下方章节 PDF 进行阅读。如果您更喜欢实体书,也可以购买精装或平装版本。本书及配套材料由圣母大学 Douglas Thain 教授(https://dthain.github.io/books/compiler/dthain.github.io)在其 CSE 40243 编译原理课程中开发完成。加入我们的邮件列表(https://groups.google.com/a/nd.edu/forum/#!forum/compilerbook-list),即可接收新版本及其他更新的不定期通知。 > 编译器能将高级语言编写的程序转换为低级语言编写的程序。对于计算机科学专业的学生而言,从零开始构建一个编译器是一次重要的历练:这是一个充满挑战且有趣的工程,能让你深入了解计算机科学的诸多方面——有些极为理论化,另一些则非常实用。本书提供了一学期的编译原理构建入门课程,使读者能够构建一个简单的编译器,该编译器可接受类似 C 的语言,并将其转换为可运行的 X86 或 ARM 汇编语言。本书最适合有 C 语言编程经验,并修过数据结构和计算机体系结构课程的高年级本科生。 ## 编译原理与语言设计导论(第二版) > 作者允许下载、打印并将这些 PDF 用于个人及学术用途。禁止商业印刷或分发。请勿在本地复制 PDF,而是引导学生访问本页面(compilerbook.org),以便他们获取最新版本。 全书完整版单一 PDF 下载(https://dthain.github.io/books/compiler/compilerbook.pdf) 第 0 章 前言(https://dthain.github.io/books/compiler/chapter0.pdf) 第 1 章 导论(https://dthain.github.io/books/compiler/chapter1.pdf) 第 2 章 快速预览(https://dthain.github.io/books/compiler/chapter2.pdf) 第 3 章 词法分析(https://dthain.github.io/books/compiler/chapter3.pdf) 第 4 章 语法分析(https://dthain.github.io/books/compiler/chapter4.pdf) 第 5 章 语法分析实践(https://dthain.github.io/books/compiler/chapter5.pdf) 第 6 章 抽象语法树(https://dthain.github.io/books/compiler/chapter6.pdf) 第 7 章 语义分析(https://dthain.github.io/books/compiler/chapter7.pdf) 第 8 章 中间表示(https://dthain.github.io/books/compiler/chapter8.pdf) 第 9 章 内存组织(https://dthain.github.io/books/compiler/chapter9.pdf) 第 10 章 汇编语言(https://dthain.github.io/books/compiler/chapter10.pdf) 第 11 章 代码生成(https://dthain.github.io/books/compiler/chapter11.pdf) 第 12 章 优化(https://dthain.github.io/books/compiler/chapter12.pdf) 附录 A 示例课程项目(https://dthain.github.io/books/compiler/chapterA.pdf) 附录 B B-Minor 语言(https://dthain.github.io/books/compiler/chapterB.pdf) 附录 C 编码规范(https://dthain.github.io/books/compiler/chapterC.pdf) **代码资源。**compilerbook-examples(http://github.com/dthain/compilerbook-examples)GitHub 仓库包含与本书对应的额外资源,包括多个扫描器和解析器、项目编译器的起始代码结构,以及扫描器、解析器、类型检查器和代码生成器各阶段的示例测试用例。 **勘误。**发现了拼写错误或疏漏?请发送邮件至 `[email protected]`,标题为“Compiler Book Errata”,我将乐于修正并在下一版中致谢。

相似文章

高级编译器:自助式在线课程

Hacker News Top

CS 6120 是一门博士级别的自助式在线高级编译器课程,涵盖中间表示、数据流、优化,并包括论文阅读和使用 LLVM 和 Bril 的实现任务。

我讨厌编译器

Hacker News Top

一篇表达对编译器不满的个人观点文章,可能讨论其复杂性或缺点。

用 Zig 写一个 C 编译器

Hacker News Top

一位开发者记录了用 Zig 语言、按照 Nora Sandler 的教程系列构建名为 paella 的 C 编译器的全过程。

关于C扩展、可移植性和替代编译器

Lobsters Hottest

本文讨论了编写可移植C代码的实际挑战,这些挑战源于对非标准编译器扩展和glibc条件头文件的依赖,并通过构建C编译器的示例进行说明。