当前位置:首页 > 工业技术
C编译器剖析
C编译器剖析

C编译器剖析PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:邹昌伟编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302426103
  • 页数:392 页
图书介绍:本书结合开源的C编译器UCC,通过对1万多行编译器源代码的深入分析,从语言、文法和递归等基本概念入手,介绍如何基于C89标准文法,通过词法分析、语法分析、语义检查、中间代码生成及优化、和汇编代码生成等阶段,构造完整的C编译器。
《C编译器剖析》目录

第1章 基础知识 1

1.1 语言、文法与递归 1

1.2 一个较复杂的文法 4

1.3 由文法到分析器 7

1.3.1 表达式 7

1.3.2 声明 15

1.3.3 语句 21

1.4 UCC编译器预览 28

1.4.1 UCC的使用 28

1.4.2 UCC驱动器 31

1.5 结合C语言来学汇编 35

1.5.1 汇编语言简介 35

1.5.2 整数运算 42

1.5.3 浮点数的算术运算 48

1.5.4 浮点数之间的比较操作 51

1.5.5 指针、数组和结构体 53

1.6 C语言的变量名、数组名和函数名 55

1.7 C语言的变参函数 58

1.8 本章习题 65

第2章 ucc编译器的基本模块 66

2.1 从Makefile走起 66

2.2 词法分析 69

2.3 UCC编译器的内存管理 74

2.4 C语言的类型系统 81

2.5 UCC编译器的符号表管理 91

2.6 本章习题 100

第3章 语法分析 101

3.1 C语言的表达式 101

3.1.1 条件表达式和二元表达式 101

3.1.2 一元表达式、后缀表达式和基本表达式 111

3.2 C语言的语句 122

3.3 C语言的外部声明 131

3.3.1 声明和函数定义 131

3.3.2 与声明有关的几个非终结符 142

3.3.3 声明说明符和声明符 147

3.4 本章习题 166

第4章 语义检查 167

4.1 语义检查简介 167

4.2 表达式的语义检查 168

4.2.1 表达式的语义检查简介 168

4.2.2 数组索引的语义检查 173

4.2.3 基本表达式的语义检查 179

4.2.4 函数调用的语义检查 184

4.2.5 成员选择运算符的语义检查 198

4.2.6 相容类型 201

4.2.7 一元表达式的语义检查 209

4.2.8 二元表达式、赋值表达式和条件表达式的语义检查 216

4.3 语句的语义检查 226

4.4 声明的语义检查 231

4.4.1 类型结构的构建 231

4.4.2 结构体的类型结构 245

4.4.3 结构体和数组的初始化 255

4.4.4 内部连接和外部连接 267

4.4.5 外部声明的语义检查 270

4.5 本章习题 274

第5章 中间代码生成及优化 276

5.1 中间代码生成简介 276

5.2 表达式的翻译 283

5.2.1 布尔表达式的翻译 283

5.2.2 公共子表达式 293

5.2.3 通过“偏移”访问数组元素和结构体成员 301

5.2.4 后缀表达式的翻译 305

5.2.5 赋值表达式的翻译 310

5.2.6 一元表达式及其他表达式的翻译 317

5.3 语句的翻译 319

5.3.1 if语句和复合语句的翻译 319

5.3.2 switch语句的翻译 324

5.4 UCC编译器的优化 334

5.4.1 删除无用的临时变量和优化跳转目标 334

5.4.2 基本块的合并 339

5.5 本章习题 342

第6章 汇编代码生成 344

6.1 汇编代码生成简介 344

6.2 寄存器的管理 351

6.3 中间代码的翻译 358

6.3.1 由中间代码产生汇编指令的主要流程 358

6.3.2 为算术运算产生汇编代码 367

6.3.3 为跳转指令产生汇编代码 371

6.3.4 为函数调用与返回产生汇编代码 375

6.3.5 为类型转换产生汇编代码 382

6.3.6 为取地址产生汇编指令 387

6.4 本章习题 390

参考文献 391

后记 392

相关图书
作者其它书籍
返回顶部