编译原理与技术(微课版)
121个算法,125个翻译模式,前后端并重,从零开始手搓编译器!提供课件、大纲

作者:郑艳伟、于东晓、周劲

丛书名:面向新工科专业建设计算机系列教材

定价:98元

印次:1-1

ISBN:9787302687870

出版日期:2025.05.01

印刷日期:2025.05.20

图书责编:杨帆

图书分类:教材

电子书
在线购买
分享
内容简介
作者简介
前言序言
资源下载
查看详情 查看详情 查看详情

"本书聚焦编译器设计的难点、痛点,在第1 章概述编译器的基本构成,并从编译角度介绍高 级程序设计语言、目标语言和中间语言;第2 章介绍文法的相关概念,以及如何进行程序语言设 计的问题;第3~9 章介绍编译器各组成部分的原理和设计,包括词法分析器、语法分析器、中间 代码生成器、中间代码优化器、目标代码生成器,以及符号表管理和运行时存储空间组织。 本书可以作为高等学校计算机专业本科生的教材,也可供从事计算机应用的工程技术人员或 其他自学者学习参考。本书力求使学生仅掌握一门高级语言,即可开发出一个完整可用的编译器, 从根本上解决国外技术依赖问题。 "

郑艳伟,男,博士,副教授。1999年、2004年、2019年分别自山东建筑工程学院机械系、山东大学计算机科学与技术学院、北京航空航天大学计算机科学与工程学院获得学士、硕士和博士学位。2004-2013年在济南大学担任助教、讲师,2019年起至今任山东大学任副教授,主要研究领域包括计算机视觉、编译器设计应用。自2004年起讲授编译原理课程,编译器相关研究应用项目包括城市配电网安全操作序列分析、配电网防止误操作系统分析、机器人流程自动化(RPA)脚本编辑器与编译器设计等。

前言 编译器是将一种高级语言翻译成可以直接在机器上运行的低级语言的程 序,是芯片和操作系统生态中必不可少的基础软件之一。一个操作系统,需要有 可运行的编译器,程序员才能在上面开发各种应用软件,才能构建起应用生态。 编译原理与技术是讨论编译器设计与实现的课程,是一门理论性和实践 性都很强的学科,一直以来是计算机相关专业最难掌握的课程之一。编译器前 端的主要难点在于使用的形式语言与自动机相关理论,特别是有限自动机与 下推自动机的理论及其应用;从中间代码生成到编译器后端的主要难点在于, 它不是直接编码实现数据和硬件的操控,而是要编写程序生成代码,用生成的 代码操控数据和硬件,从而实现程序编写者的意图。 本书面向计算机专业学生和编译器开发者,从底层阐述编译器的基本原 理。在高级语言层面,引入目前流行的大部分语言特性,覆盖多种语言不同语 句的编译方法。在目标语言方面,以x86 为主,兼顾各种基于RISC 指令集的 架构,使编译的目标程序可以在真实机器上运行。在内容讲述方面,不仅介绍 原理,更注重可转换为代码的算法设计,使本书内容具有可实现性。 使用本书 本书从底层阐述编译器的基本原理,并且设计可转换为代码的算法,使 本书内容具有可实现性。高级语言层面,引入目前流行的大部分语言特性,覆 盖多种语言不同语句的翻译模式,如除常用的if 和while 语句外,还包括C 和 MATLAB 的for 语句、switch 语句、过程调用和返回、三元运算符、关系运算 符结合等。目标语言方面,以采用CISC 指令集的x86 架构为主,兼顾RISC 指 令集的其...

课件下载

样章下载

暂无网络资源

扫描二维码
下载APP了解更多

目录
荐语
查看详情 查看详情

目录

第1 章编译器概述................................. 1

1.1 编译器的基本概念..................... 1

1.1.1 语言的分类..................... 1

1.1.2 程序设计语言分类........... 2

1.1.3 编译程序........................ 2

1.1.4 编译原理与技术的特点.... 3

1.1.5 编译程序的生成.............. 4

1.1.6 本书定位........................ 5

1.2 高级程序设计语言..................... 7

1.2.1 高级语言分类................. 7

1.2.2 程序结构...................... 10

1.2.3 数据类型...................... 13

1.2.4 语句形式...................... 15

1.3 目标语言................................. 20

1.3.1 CPU 架构和指令集........ 20

1.3.2 寄存器......................... 21

1.3.3 汇编程序结构............... 24

1.3.4 汇编指令...................... 26

1.3.5 寻址方式及记号约定..... 26

1.3.6 传送指令.................

"本书介绍了程序语言设计的基本方法,并以C、Pascal、MATLAB、C++语法为主,设计了一种语句形式丰富、书写简洁的编程语言,并给出了详细的语义计算规则。
本书对程序拓扑、数据流分析问题进行了详细展开,并在各类优化问题和目标代码生成中应用。
本书以x86为主,兼顾RISC架构,设计运行时空间分配策略,生成真实目标机器代码;对图着色、线性扫描等全局寄存器分配进行了实现层面的算法设计。
本书从基本原理入手,不依赖现有编译工具,试图手工构造整个编译器及编译所需工具。
"