编译原理与技术是计算机科学中古老的、高度发达的,同时也是成果应用最广泛的课题之一。 编译器原理涉及的知识体系非常广且繁杂,和计算机科学的许多分支学科(如形式语言与自动机、 类型系统、算法设计分析、程序设计语言、最优化理论、指令集体系结构等)都有密切联系。 同时,编译器工程又涉及算法数据结构、软件工程、软件测试等领域的知识,包含很多编程技巧和 各种工程优化。对编译器设计者、程序员和相关领域的学习者来说,除了需要掌握扎实的编译理论知识外, 全面分析和学习优秀的编译器实践也非常重要。
本书以华为毕昇编译器的具体设计和实现为例,全面讨论了现代编译器设计的基本原理和实现技术。 华为公司在编译器设计与实现方面有十几年的研究经验,毕昇编译器就是最新发布的一款面向鲲鹏 体系结构的编译器,支持 C/C++、FORTRAN 等源语言,通过引入高性能编译器算法、 加速指令集、AI迭代调优等创新技术,达到了性能极致、安全可信的设计目标; 成功支持了华为各种产品和解决方案。作为第一本深入介绍毕昇编译器设计原理和实践的书籍, 希望通过本书能让更多读者深入了解毕昇编译器,共同推动国内编译器技术研究和实践的发展。
本书以毕昇编译器为主线,理论与实际相结合,通过对编译器设计原理和毕昇具体实践的详细讨论, 让读者能够对现代编译器设计和实践有更深入的理解。
本书定位为“编译器原理”课程的教学参考书,其主要受众包括计算机相关专业的本科生和研究生, 此外,编译器领域的从业者和对编译原理感兴趣的读者也可以参考使用。
在本书的编写过程中得到了许多支持和帮助,特此表示感谢。特别感谢华为公司Fellow 胡子昂博士在本书的撰写过程中给予的建议和支持; 感谢华为公司的谢桂磊、梁思伟、 陈海波、骆能军、丁为杰、何璐等领导和业务主管对本书写作的大力支持与指导; 感谢华为公司的魏伟、张文、程伟、郭歌、彭成寒、伊金静等技术专家和同事提供相关资料与技术支持; 他们在本书撰写和修订过程中,提出了非常详尽的意见和建议,对提升本书的质量提供了非常大的帮助。 感谢中国科学技术大学李曦教授、孙广中教授审阅了本书初稿; 感谢中国科学技术大学 先进编译技术实验室的同学们对本书撰写工作提供的支持,尤其感谢胡霜和刘晓妍两位研究生 在初稿准备中做出的极大贡献。
限于作者的知识水平和时间,书中难免有疏漏和不妥之处,恳请读者指正。
华保健、高耀清
2022年6月