图书介绍

编译系统透视 图解编译原理【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

编译系统透视 图解编译原理
  • 新设计团队著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111498582
  • 出版时间:2016
  • 标注页数:1043页
  • 文件大小:102MB
  • 文件页数:1053页
  • 主题词:编译器-图解

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

编译系统透视 图解编译原理PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 运行时结构及编译过程概述1

1.1 一个简单C程序的运行时结构1

1.2 更为复杂C程序的运行时结构16

1.3 编译过程概述25

1.3.1 词法分析25

1.3.2 语法分析26

1.3.3 从语法树到中间代码再到目标代码26

第2章 词法分析28

2.1 词法分析概要说明28

2.2 词法分析过程31

2.3 状态转换图36

2.3.1 状态转换图总体介绍36

2.3.2 依托状态转换图展现词法分析过程42

2.4 GCC实现词法分析的源代码55

2.4.1 词法分析源代码总览55

2.4.2 结合GCC源代码讲解词法分析过程55

2.4.3 标识符、数字、字符和字符串的详细分析过程65

第3章 语法分析74

3.1 语法分析综述74

3.2 语法分析思路74

3.3 产生式78

3.3.1 什么是产生式78

3.3.2 产生式的具体示例80

3.4 匹配产生式,消除左递归89

3.4.1 用标准产生式做匹配,出现左递归89

3.4.2 消除左递归93

3.4.3 产生式的工作效率97

3.5 提取左公因子,消除回溯100

3.5.1 对“直接声明符”的产生式提取左公因子100

3.5.2 用提取过左公因子的产生式再去匹配102

3.5.3 对其他产生式都提取左公因子103

3.5.4 函数声明和定义两部分产生式的合并105

3.6 语法分析结果:语法树107

3.7 GCC关于语法分析的源代码解析112

3.7.1 GCC语法分析函数调用图112

3.7.2 全部语句的语法分析115

第4章 语法树到目标代码217

4.1 总述语法树到中间代码的转化过程217

4.2 目标代码到运行时结构的映射224

4.3 语法树转高端gimple232

4.3.1 语法树到高端gimple的总体步骤及运行时236

4.3.2 高端gimple的实际数据结构241

4.3.3 语法树转高端gimple的GCC源代码解析246

4.4 高端gimple到低端gimple286

4.4.1 高端gimple转低端gimple概述286

4.4.2 高端gimple转化低端gimple的GCC代码解析293

4.5 低端gimple到cfg297

4.5.1 低端gimple到cfg的转化概述297

4.5.2 低端gimple转cfg的实际过程300

4.6 cfg转ssa301

4.7 生成RTL305

4.7.1 为何要有RTL305

4.7.2 转化RTL阶段的主要步骤306

4.7.3 确定初始RTL中的运行时信息320

4.8 RTL生成目标代码(汇编)332

4.8.1 汇编文件介绍332

4.8.2 创建汇编文件334

4.8.3 输出汇编文件总入口334

4.8.4 全局变量写入汇编文件335

4.8.5 函数写入汇编文件340

第5章 语句拓展案例的编译过程353

5.1 总述各个语句拓展案例的编译过程353

5.2 if语句的语法分析376

5.2.1 多个变量的声明语句语法分析376

5.2.2 if语句的语法分析过程381

5.2.3 if…else if语句的语法分析过程387

5.3 带标号语句的语法分析395

5.4 switch…case、 goto、 break语句的语法分析过程399

5.4.1 switch…case语句399

5.4.2 goto语句407

5.4.3 分析break语句409

5.5 do…while、 while、 for语句的语法分析过程420

5.5.1 do…while语句的语法分析424

5.5.2 while语句的语法分析过程433

5.5.3 for语句的语法分析过程444

5.6 各种语句嵌套组合的语法分析过程472

5.6.1 两条变量声明语句分析的结果477

5.6.2 分析while循环语句477

5.6.3 进入if进行分析480

5.6.4 进入else进行分析485

5.7 所有案例语法树转中间结构的过程516

5.7.1 案例1的语法树转高端gimple的总体介绍516

5.7.2 案例1的语法树转高端gimple的代码分析528

5.7.3 案例1的高端gimple转低端gimple552

5.7.4 案例1的低端gimple到cfg552

5.7.5 转化RTL阶段的主要步骤562

5.7.6 案例2的语法树转高端gimple587

5.7.7 案例3的语法树转高端gimple596

第6章 数据拓展案例的编译过程612

6.1 数据拓展案例的编译过程总述612

6.1.1 基础类型数据总述612

6.1.2 用户自定义类型数据总述617

6.1.3 指针类型数据总述626

6.1.4 作用域和生存期总述640

6.1.5 表达式总述645

6.2 基础类型数据的语法分析过程652

6.2.1 非浮点型数据的语法分析653

6.2.2 浮点型数据的语法分析662

6.3 复合类型数据的语法分析过程670

6.3.1 数组的语法分析670

6.3.2 枚举类型数据的语法分析675

6.3.3 struct类型数据的语法分析678

6.3.4 union类型数据的语法分析683

6.3.5 自定义数据声明和使用的语法分析684

6.4 指针类型数据的语法分析过程693

6.4.1 对swap_point函数中指针的语法分析693

6.4.2 对指针使用的语法分析696

6.5 关于作用域和生存期的语法分析过程705

6.5.1 C语言作用域和生存期概述705

6.5.2 全局变量data语法分析中作用域相关处理过程706

6.5.3 fun函数定义的语法分析中作用域相关处理709

6.5.4 main函数定义中局部变量声明data作用域处理过程716

6.5.5 main函数内部语句块中变量nCount作用域处理过程719

6.5.6 main函数中引用变量data时选择相应声明节点的过程分析719

6.5.7 main函数中引用变量nCount时选择相应声明节点的过程分析720

6.5.8 main函数中退出内部语句块时更新变量作用域过程分析721

6.5.9 fun函数中静态变量temp生存期信息的语法分析726

6.6 表达式的语法分析过程728

6.6.1 if条件中的表达式语法分析728

6.6.2 if条件下面“语句”部分的表达式语法分析740

6.7 所有案例语法树转中间结构(RTL)的过程754

6.7.1 基础类型数据语法树转高端gimple的过程754

6.7.2 用户自定义数据语法树转高端gimple的过程794

6.7.3 指针类型数据语法树转高端gimple的过程838

6.7.4 作用域和生存期案例语法树转高端gimple的过程878

6.7.5 复杂表达式案例的语法树转高端gimple的过程887

第7章 汇编与链接934

7.1 汇编器934

7.1.1 详细介绍汇编指令到机器指令的转化934

7.1.2 .o文件格式总体情况介绍953

7.1.3 代码段、数据段以及其他各个表项间的关系962

7.1.4 从汇编文件到目标文件的实现967

7.1.5 汇编器处理的源代码分析973

7.2 链接器985

7.2.1 .o文件链接总体介绍985

7.2.2 多个.o文件链接时通过符号表建立关系989

7.2.3 链接时统一计算地址并回填997

7.2.4 链接器源代码介绍999

7.2.5 库函数的链接1002

7.2.6 动态链接1002

第8章 预处理1012

8.1 文件包含1012

8.2 宏定义1017

8.3 条件编译1019

8.4 带参数的宏定义1022

附录RTX定义1031

作者的话1039

热门推荐