• C编译器剖析
  • C编译器剖析
  • C编译器剖析
  • C编译器剖析

C编译器剖析

扫码上书,品相九品,无写无画,价格最低。

130 49 九品

仅1件

江苏镇江扬中
认证卖家担保交易快速发货售后保障

作者邹昌伟

出版社清华大学出版社

出版时间2016-06

版次1

装帧平装

上书时间2021-10-25

岛城书屋

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 邹昌伟
  • 出版社 清华大学出版社
  • 出版时间 2016-06
  • 版次 1
  • ISBN 9787302426103
  • 定价 49.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 胶版纸
  • 页数 390页
【内容简介】
“编译原理”课程是一门理论性与实践性非常强的课程,应遵循从具体到抽象的认知规律。本书以一个开源的C编译器(UCC)为案例,在源代码分析的过程中,展开对编译原理相关知识的学习和讨论。全书共分6章: 第1章介绍文法和递归等知识点,并采用结合C语言的方式来讨论汇编代码;第2章讨论UCC编译器的词法分析、内存管理、符号表管理和类型系统等基本模块;第3章介绍UCC编译器的语法分析,采用的是手工打造分析器的技术路线;第4章介绍语义检查,通过本章的学习,有助于C程序员站在编译器的角度来深入理解C语言的语义规则;第5章分析UCC编译器的中间代码生成及优化;第6章介绍如何生成32位的x86汇编代码。本书不仅是很好的编译原理和编译器设计教材,也可作为读者深入学习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.4UCC编译器预览28

    1.4.1UCC的使用28

    1.4.2UCC驱动器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.6C语言的变量名、数组名和函数名55

    1.7C语言的变参函数58

    1.8本章习题65

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

    2.1从Makefile走起66

    2.2词法分析69

    2.3UCC编译器的内存管理74

    2.4C语言的类型系统81

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

    2.6本章习题100

    第3章语法分析/101

    3.1C语言的表达式101〖1〗C编译器剖析目录[3]〖3〗3.1.1条件表达式和二元表达式101

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

    3.2C语言的语句122

    3.3C语言的外部声明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.1if语句和复合语句的翻译319

    5.3.2switch语句的翻译324

    5.4UCC编译器的优化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后记/3921.1软件工程的发展历程1

    1.1.1软件危机1

    1.1.2软件危机出现的原因3

    1.1.3软件工程的发展4

    1.2软件工程的概念5

    1.2.1软件工程的定义5

    1.2.2软件工程的目标6

    1.2.3软件工程的实施原则8

    1.2.4软件工程的基本原理9

    1.3软件与软件过程10

    1.3.1软件的概念11

    1.3.2软件的分类12

    1.3.3软件生命周期13

    1.3.4软件过程15

    1.4软件过程模型16

    1.4.1瀑布模型16

    1.4.2原型模型17

    1.4.3增量模型18

    1.4.4螺旋模型19

    1.4.5喷泉模型20

    1.4.6敏捷过程模型20

    1.4.74GT过程模型22

    1.4.8基于构件的开发模型23

    1.4.9Rational统一建模过程24

    1.4.10微软解决框架过程模型25

    1.5软件开发方法26

    1.5.1结构化开发方法27

    1.5.2面向对象开发方法271.6案例描述28

    1.6.1简历信息自动获取和查询系统28

    1.6.2试卷自动生成系统29

    1.7本章小结30

    习题31

    第2章软件需求工程/33

    2.1软件需求的基本概念33

    2.1.1需求分析的任务33

    2.1.2需求分析的原则34

    2.1.3需求分析的内容35

    2.2需求工程的过程36

    2.2.1需求工程中的参与人员36

    2.2.2可行性研究37

    2.2.3需求工程过程中的活动39

    2.2.4需求工程的管理40

    2.3需求获取技术41

    2.4结构化需求分析和建模43

    2.4.1结构化需求分析概述44

    2.4.2面向数据的数据建模44

    2.4.3面向数据流的功能建模46

    2.4.4面向状态转换的行为建模50

    2.4.5数据字典51

    2.4.6加工逻辑53

    2.5案例——“简历自动获取和查询系统”的需求建模54

    2.5.1数据建模——ER图描述54

    2.5.2功能建模——数据流图55

    2.5.3行为建模——状态转换图56

    2.5.4数据字典57

    2.5.5加工逻辑——PDL语言的描述57

    2.6需求评审58

    2.6.1软件需求规格说明文档58

    2.6.2需求评审标准及需求验证61

    2.6.3需求变更管理63

    2.7本章小结64

    习题64

    第3章软件设计基础/66

    3.1软件设计概述66

    3.1.1软件设计与软件需求66

    3.1.2软件设计的任务67

    3.1.3软件设计的原则69

    3.2软件体系结构设计70

    3.2.1体系结构设计概述70

    3.2.2以数据为中心的数据仓库模型70

    3.2.3客户端/服务器模式的分布式结构71

    3.2.4层次模型73

    3.2.5管道与过滤器模型74

    3.3模块化设计75

    3.3.1软件模块化与分解75

    3.3.2抽象76

    3.3.3信息隐藏76

    3.3.4模块独立性77

    3.3.5启发式规则79

    3.4界面设计82

    3.4.1界面设计的任务82

    3.4.2界面设计的原则83

    3.4.3界面设计的特性84

    3.4.4MVC模型84

    3.5软件设计评审85

    3.5.1软件设计规格说明文档85

    3.5.2软件设计评审标准89

    3.5.3软件设计验证90

    3.6本章小结91

    习题92

    第4章结构化设计方法/93

    4.1结构化设计方法概述93

    4.2面向数据流的设计方法94

    4.2.1层次图和结构图94

    4.2.2变换分析法96

    4.2.3事务分析法100

    4.2.4混合分析法101

    4.3面向数据的设计方法102

    4.3.1Jackson图102

    4.3.2Jackson系统开发方法103

    4.4案例——“简历自动获取和查询系统”的数据流设计方法106

    4.4.1用变换分析法进行设计106

    4.4.2用事务分析法进行设计107

    4.4.3两种方法的比较108

    4.5结构化详细设计的工具109

    4.5.1程序流程图109

    4.5.2盒图(NS图)110

    4.5.3问题分析图(PAD图)111

    4.5.4判定树113

    4.5.5判定表113

    4.5.6详细设计工具的比较114

    4.6本章小结115

    习题116

    第5章软件实现/118

    5.1程序设计语言118

    5.1.1程序设计语言的分类118

    5.1.2程序设计语言的特性119

    5.1.3选择程序设计语言120

    5.2程序设计风格122

    5.2.1程序编排和组织的准则122

    5.2.2程序设计的效率126

    5.3代码复用127

    5.4代码评审129

    5.5本章小结132

    习题133

    第6章软件测试/136

    6.1软件测试基础136

    6.1.1软件测试概念136

    6.1.2软件测试过程模型137

    6.1.3软件测试原则139

    6.1.4软件测试在软件开发各阶段的工作流程141

    6.1.5软件测试信息流143

    6.1.6软件测试技术分类143

    6.2白盒测试145

    6.2.1逻辑覆盖145

    6.2.2循环测试148

    6.2.3路径测试149

    6.3黑盒测试152

    6.3.1等价类划分152

    6.3.2边界值分析154

    6.3.3错误推测法154

    6.3.4因果图法155

    6.4白盒测试和黑盒测试的比较157

    6.5软件测试策略158

    6.5.1单元测试158

    6.5.2集成测试161

    6.5.3确认测试164

    6.5.4系统测试165

    6.6调试167

    6.6.1软件调试过程167

    6.6.2软件调试方法168

    6.7软件测试报告169

    6.7.1软件测试说明169

    6.7.2软件测试报告170

    6.8本章小结171

    习题172

    第7章UML统一建模语言/174

    7.1UML的发展174

    7.1.1UML的产生174

    7.1.2UML的构成175

    7.1.3UML的特点176

    7.2面向对象的基本概念176

    7.3UML视图182

    7.4UML的图和模型元素183

    7.4.1用例图183

    7.4.2类图185

    7.4.3包图186

    7.4.4状态图187

    7.4.5活动图187

    7.4.6顺序图189

    7.4.7协作图190

    7.4.8构件图191

    7.4.9配置图192

    7.5UML的关系192

    7.5.1关联关系193

    7.5.2泛化关系196

    7.5.3依赖关系199

    7.5.4实现关系200

    7.6UML的通用机制200

    7.6.1修饰201

    7.6.2注释201

    7.6.3规格说明201

    7.6.4扩展机制202

    7.7基于UML的软件过程203

    7.8本章小结205

    习题206

    第8章面向对象分析/207

    8.1面向对象分析概述207

    8.1.1传统软件过程中的不足207

    8.1.2面向对象的特点208

    8.1.3面向对象分析的基本过程209

    8.1.4面向对象分析的3类模型209

    8.1.5静态模型的5个层次210

    8.2建立功能模型(用例模型)211

    8.2.1识别参与者212

    8.2.2识别用例212

    8.2.3识别用例间关系214

    8.2.4用例描述文档215

    8.3建立静态模型(对象模型)216

    8.3.1识别类与对象216

    8.3.2划分主题218

    8.3.3确定结构219

    8.3.4确定属性220

    8.3.5确定服务221

    8.3.6类图描述文档221

    8.3.7包图描述文档222

    8.4建立动态模型223

    8.4.1建立顺序图及其描述文档223

    8.4.2建立状态图及其描述文档225

    8.4.3建立协作图及其描述文档226

    8.4.4建立活动图及其描述文档227

    8.5本章小结229

    习题229

    第9章面向对象设计/231

    9.1面向对象设计概述231

    9.1.1面向对象分析与设计的关系231

    9.1.2面向对象设计原则232

    9.2精化类及类间关系233

    9.2.1设计类的属性233

    9.2.2设计类的方法234

    9.2.3设计类间泛化关系235

    9.2.4设计关联类236

    9.3数据设计237

    9.3.1基于关系数据库的数据设计237

    9.3.2基于其他方式的数据设计239

    9.4人机交互设计240

    9.5建立实现模型241

    9.5.1构件图及其描述文档241

    9.5.2配置图及其描述文档243

    9.6设计模式简介244

    9.6.1概述244

    9.6.2Singleton模式245

    9.6.3Abstract Factory模式247

    9.6.4Mediator模式249

    9.6.5Adapter模式251

    9.6.6Iterator模式253

    9.6.7State模式256

    9.7面向对象的测试258

    9.7.1面向对象测试概述258

    9.7.2面向对象的单元测试259

    9.8本章小结261

    习题262

    第10章软件维护/265

    10.1软件维护概述265

    10.1.1软件维护的任务265

    10.1.2软件维护的特点266

    10.1.3软件维护的分类266

    10.2软件维护过程267

    10.2.1软件维护方式268

    10.2.2软件维护管理的基本内容269

    10.2.3维护中存在的问题273

    10.2.4维护活动记录274

    10.3软件的可维护性275

    10.3.1可维护性因素275

    10.3.2提高软件的可维护性276

    10.4逆向工程278

    10.5本章小结280

    习题281

    第11章软件项目管理/282

    11.1软件项目管理概述282

    11.1.1软件项目管理的特点和内容282

    11.1.2软件项目管理目标283

    11.1.3软件项目管理的4P观点284

    11.2软件项目规模度量285

    11.2.1代码行技术286

    11.2.2功能点计算287

    11.2.3代码行与功能点间的转换290

    11.3软件项目估算291

    11.3.1代码行和功能点的其他估算模型291

    11.3.2专家估算模型291

    11.3.3Putnam模型292

    11.3.4COCOMO模型292

    11.3.5项目估算模型的小结295

    11.4项目进度管理295

    11.4.1项目进度控制295

    11.4.2甘特图296

    11.4.3工程网络图297

    11.5项目风险管理298

    11.5.1软件风险概念299

    11.5.2风险管理过程299

    11.6项目质量管理302

    11.6.1软件质量因素303

    11.6.2软件质量保证活动307

    11.6.3软件质量保证计划308

    11.7软件配置管理309

    11.7.1软件配置项310

    11.7.2配置管理过程310

    11.7.3软件配置管理计划313

    11.8项目人员组织管理315

    11.8.1团队组织315

    11.8.2团队组织方式315

    11.9软件能力成熟度模型317

    11.9.1基本概念317

    11.9.2软件能力成熟度模型等级319

    11.9.3关键过程域319

    11.10本章小结320

    习题321

    参考文献/3231.6案例描述28

    1.6.1简历信息自动获取和查询系统28

    1.6.2试卷自动生成系统29

    1.7本章小结30

    习题31

    第2章软件需求工程/33

    2.1软件需求的基本概念33

    2.1.1需求分析的任务33

    2.1.2需求分析的原则34

    2.1.3需求分析的内容35

    2.2需求工程的过程36

    2.2.1需求工程中的参与人员36

    2.2.2可行性研究37

    2.2.3需求工程过程中的活动39

    2.2.4需求工程的管理40

    2.3需求获取技术41

    2.4结构化需求分析和建模43

    2.4.1结构化需求分析概述44

    2.4.2面向数据的数据建模44

    2.4.3面向数据流的功能建模46

    2.4.4面向状态转换的行为建模50

    2.4.5数据字典51

    2.4.6加工逻辑53

    2.5案例——“简历自动获取和查询系统”的需求建模54

    2.5.1数据建模——ER图描述54

    2.5.2功能建模——数据流图55

    2.5.3行为建模——状态转换图56

    2.5.4数据字典57

    2.5.5加工逻辑——PDL语言的描述57

    2.6需求评审58

    2.6.1软件需求规格说明文档58

    2.6.2需求评审标准及需求验证61

    2.6.3需求变更管理63

    2.7本章小结64

    习题64第3章软件设计基础/66

    3.1软件设计概述66

    3.1.1软件设计与软件需求66

    3.1.2软件设计的任务67

    3.1.3软件设计的原则69

    3.2软件体系结构设计70

    3.2.1体系结构设计概述70

    3.2.2以数据为中心的数据仓库模型70

    3.2.3客户端/服务器模式的分布式结构71

    3.2.4层次模型73

    3.2.5管道与过滤器模型74

    3.3模块化设计75

    3.3.1软件模块化与分解75

    3.3.2抽象76

    3.3.3信息隐藏76

    3.3.4模块独立性77

    3.3.5启发式规则79

    3.4界面设计82

    3.4.1界面设计的任务82

    3.4.2界面设计的原则83

    3.4.3界面设计的特性84

    3.4.4MVC模型84

    3.5软件设计评审85

    3.5.1软件设计规格说明文档85

    3.5.2软件设计评审标准90

    3.5.3软件设计验证91

    3.6本章小结92

    习题93

    第4章结构化设计方法/94

    4.1结构化设计方法概述94

    4.2面向数据流的设计方法95

    4.2.1层次图和结构图95

    4.2.2变换分析法97

    4.2.3事务分析法101

    4.2.4混合分析法102

    4.3面向数据的设计方法103

    4.3.1Jackson图103

    4.3.2Jackson系统开发方法104

    4.4案例——“简历自动获取和查询系统”的数据流设计方法107

    4.4.1用变换分析法进行设计107

    4.4.2用事务分析法进行设计108

    4.4.3两种方法的比较109

    4.5结构化详细设计的工具110

    4.5.1程序流程图110

    4.5.2盒图(NS图)111

    4.5.3问题分析图(PAD图)112

    4.5.4判定树114

    4.5.5判定表114

    4.5.6详细设计工具的比较115

    4.6本章小结116

    习题117

    第5章软件实现/119

    5.1程序设计语言119

    5.1.1程序设计语言的分类119

    5.1.2程序设计语言的特性120

    5.1.3选择程序设计语言121

    5.2程序设计风格123

    5.2.1程序编排和组织的准则123

    5.2.2程序设计的效率127

    5.3代码复用128

    5.4代码评审130

    5.5本章小结133

    习题134

    第6章软件测试/137

    6.1软件测试基础137

    6.1.1软件测试概念137

    6.1.2软件测试过程模型138

    6.1.3软件测试原则140

    6.1.4软件测试在软件开发各阶段的工作流程142

    6.1.5软件测试信息流144

    6.1.6软件测试技术分类144

    6.2白盒测试146

    6.2.1逻辑覆盖146

    6.2.2循环测试149

    6.2.3路径测试150

    6.3黑盒测试153

    6.3.1等价类划分153

    6.3.2边界值分析155

    6.3.3错误推测法155

    6.3.4因果图法156

    6.4白盒测试和黑盒测试的比较158

    6.5软件测设策略159

    6.5.1单元测试159

    6.5.2集成测试162

    6.5.3确认测试165

    6.5.4系统测试166

    6.6调试168

    6.6.1软件调试过程168

    6.6.2软件调试方法169

    6.7软件测试报告170

    6.7.1软件测试说明170

    6.7.2软件测试报告171

    6.8本章小结172

    习题173

    第7章UML统一建模语言/175

    7.1UML的发展175

    7.1.1UML的产生175

    7.1.2UML的构成176

    7.1.3UML的特点177

    7.2面向对象的基本概念177

    7.3UML视图183

    7.4UML的图和模型元素184

    7.4.1用例图184

    7.4.2类图186

    7.4.3包图187

    7.4.4状态图188

    7.4.5活动图188

    7.4.6顺序图190

    7.4.7协作图191

    7.4.8构件图192

    7.4.9配置图193

    7.5UML的关系193

    7.5.1关联关系194

    7.5.2泛化关系197

    7.5.3依赖关系200

    7.5.4实现关系201

    7.6UML的通用机制201

    7.6.1修饰202

    7.6.2注释202

    7.6.3规格说明202

    7.6.4扩展机制203

    7.7基于UML的软件过程204

    7.8本章小结206

    习题207

    第8章面向对象分析/208

    8.1面向对象分析概述208

    8.1.1传统软件过程中的不足208

    8.1.2面向对象的特点209

    8.1.3面向对象分析的基本过程210

    8.1.4面向对象分析的3类模型210

    8.1.5静态模型的5个层次211

    8.2建立功能模型(用例模型)212

    8.2.1识别参与者213

    8.2.2识别用例213

    8.2.3识别用例间关系215

    8.2.4用例描述文档216

    8.3建立静态模型(对象模型)217

    8.3.1识别类与对象217

    8.3.2划分主题219

    8.3.3确定结构220

    8.3.4确定属性221

    8.3.5确定服务222

    8.3.6类图描述文档222

    8.3.7包图描述文档223

    8.4建立动态模型224

    8.4.1建立顺序图及其描述文档224

    8.4.2建立状态图及其描述文档226

    8.4.3建立协作图及其描述文档227

    8.4.4建立活动图及其描述文档228

    8.5本章小结230

    习题230

    第9章面向对象设计/232

    9.1面向对象设计概述232

    9.1.1面向对象分析与设计的关系232

    9.1.2面向对象设计原则233

    9.2精化类及类间关系234

    9.2.1设计类的属性234

    9.2.2设计类的方法235

    9.2.3设计类间泛化关系236

    9.2.4设计关联类237

    9.3数据设计238

    9.3.1基于关系数据库的数据设计238

    9.3.2基于其他方式的数据设计240

    9.4人机交互设计241

    9.5建立实现模型242

    9.5.1构件图及其描述文档242

    9.5.2配置图及其描述文档244

    9.6设计模式简介245

    9.6.1概述245

    9.6.2Singleton模式246

    9.6.3Abstract Factory模式248

    9.6.4Mediator模式250

    9.6.5Adapter模式252

    9.6.6Iterator模式254

    9.6.7State模式257

    9.7面向对象的测试259

    9.7.1面向对象测试概述259

    9.7.2面向对象的单元测试260

    9.8本章小结262

    习题263

    第10章软件维护/266

    10.1软件维护概述266

    10.1.1软件维护的任务266

    10.1.2软件维护的特点267

    10.1.3软件维护的分类267

    10.2软件维护过程268

    10.2.1软件维护方式269

    10.2.2软件维护管理的基本内容270

    10.2.3维护中存在的问题274

    10.2.4维护活动记录275

    10.3软件的可维护性276

    10.3.1可维护性因素276

    10.3.2提高软件的可维护性277

    10.4逆向工程279

    10.5本章小结281

    习题282

    第11章软件项目管理/283

    11.1软件项目管理概述283

    11.1.1软件项目管理的特点和内容283

    11.1.2软件项目管理目标284

    11.1.3软件项目管理的4P观点285

    11.2软件项目规模度量286

    11.2.1代码行技术287

    11.2.2功能点计算288

    11.2.3代码行与功能点间的转换291

    11.3软件项目估算292

    11.3.1代码行和功能点的其他估算模型292

    11.3.2专家估算模型292

    11.3.3Putnam模型293

    11.3.4COCOMO模型293

    11.3.5项目估算模型的小结296

    11.4项目进度管理296

    11.4.1项目进度控制296

    11.4.2甘特图297

    11.4.3工程网络图298

    11.5项目风险管理299

    11.5.1软件风险概念300

    11.5.2风险管理过程300

    11.6项目质量管理303

    11.6.1软件质量因素304

    11.6.2软件质量保证活动308

    11.6.3软件质量保证计划309

    11.7软件配置管理310

    11.7.1软件配置项311

    11.7.2配置管理过程311

    11.7.3软件配置管理计划314

    11.8项目人员组织管理316

    11.8.1团队组织316

    11.8.2团队组织方式316

    11.9软件能力成熟度模型318

    11.9.1基本概念318

    11.9.2软件能力成熟度模型等级320

    11.9.3关键过程域320

    11.10本章小结321

    习题322

    参考文献/324
点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP