作者: | Nora Sandler |
语言: | 英文 |
出版年份: | 2024 |
编程语言: | C |
下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
《Writing a C Compiler》是由Nora Sandler撰写的一本专注于构建C语言编译器的书籍,于2024年出版。本书旨在指导读者从零开始实现一个完整的C语言编译器,涵盖了从基础语法到高级优化的全过程。
Nora Sandler是一位居住在西雅图的软件工程师,拥有芝加哥大学计算机科学学士学位,曾在该校研究并行编程语言的实现。她曾在渗透测试领域工作多年,后回归编译器领域,并在一家终端安全公司从事领域特定语言的工作。她的个人博客涵盖了编译器、恶作剧等计算机科学主题。
本书的技术审校由Stephen Kell担任,他是一位在编程语言和系统设计与实现领域有着丰富经验的研究者、教育者和顾问。他曾在多个环境中教授编译器和C语言编程,并参与了C语言规范的ISO研究小组。
本书分为三部分,逐步深入介绍编译器的构建过程。
在第一部分中,作者从最简单的C程序开始,逐步引入编译器的基本组件,包括词法分析器(Lexer)、语法分析器(Parser)、中间表示(TACKY)的生成以及汇编代码的生成和输出。读者将学习如何处理基本的C语法,如变量、表达式、控制流语句(如if语句和循环)以及函数调用。
在第二部分中,作者扩展了编译器的功能,支持更多数据类型,如长整型(long integers)、无符号整型(unsigned integers)、浮点数(floating-point numbers)、指针(pointers)、数组(arrays)、字符和字符串(characters and strings)以及动态内存分配(dynamic memory allocation)。此外,还涵盖了结构体(structures)的实现。
在第三部分中,作者专注于优化技术,包括TACKY程序的优化(如常量折叠、死代码消除等)和寄存器分配(register allocation)。这些优化技术旨在提高生成的汇编代码的效率。
本书适合对编译器设计感兴趣的程序员、计算机科学专业的学生以及任何希望深入了解C语言实现的开发者。无论是作为学习编译器原理的教材,还是作为个人项目的参考书籍,《Writing a C Compiler》都是一本极具价值的读物。
总之,《Writing a C Compiler》是一本结合了理论与实践的优秀书籍,它不仅能够帮助读者构建一个功能完备的C编译器,还能培养读者对编程语言和编译技术的深刻理解。