首页>参考读物>计算机科学与技术>综合

程序分析方法
作者 : 刘磊 张晶 赵健 张鹏 编著
出版日期 : 2013-05-23
ISBN : 978-7-111-42252-5
定价 : 45.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 202
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

主要内容为:元程序设计、信息流分析、形式概念分析、别名分析、程序分片和部分求值等各种目前主流的程序分析方法。
读者对象为:计算机科学与技术、软件工程专业的本科生和研究生教材,或计算机相关领域科研人员和开发人员的参考书。

图书特色

前勒口
本书以程序为处理对象,介绍按需求对其进行各种分析的方法。添加必要的实例作为理论介绍的补充与验证。
每章独立介绍一种程序分析方法,相关章节对比分析不同程序分析方法的优点、缺点和适用范围。
把当前常用的程序分析方法和科研成果相结合,着重介绍元程序设计、信息流分析、形式概念分析、别名分析、程序分片和部分求值等方法。

作者简介

刘磊?吉林大学教授,现任吉林大学第一届教学委员会委员、信息学部学术委员会副主任委员和计算机科学与技术学院学术委员会主任委员,兼任吉林省高等学校软件新技术重点实验室(吉林大学)主任。主要研究领域为程序设计语言及其实现技术、软件安全与云计算、语义网与本体工程等,主要在程序分析技术、程序理论、编译技术、程序转换技术、语义网等方面,进行了不断的探索和潜心研究,取得了一系列有价值的研究成果。主持和参与了国家级、省部级项目和横向项目30余项。在《Pattern Recognition》、《计算机学报》、《软件学报》等国内外权威期刊和会议上发表论文160余篇。

封面
国内首本程序分析方法著作,资深专家撰写,权威性毋庸置疑。
本书全面系统地讲解了诸多实用的程序分析方法。

封底
程序分析方法是以程序为处理对象,按需求对其进行各种分析的方法,在程序理解、程序测试、程序优化和程序重构等方面有着重要的应用。程序分析方法一方面可以帮助人们更好地理解程序内部各模块之间的调用关系,分析程序的运行流程;另一方面可以帮助人们找出系统运行的瓶颈,指导系统优化。因此,程序分析是一门非常实用的技术,深入理解并熟练掌握程序分析相关的方法和技术,对于增强对程序设计语言的理解、掌握先进的程序设计方法,以及更好地分析和理解程序都有很大帮助。
本书主要内容:
●?程序设计语言的发展过程;
●?元程序设计系统的概念、核心要素和生成过程;
●?几个典型元级系统的介绍;
●?控制流分析技术的核心方法及应用;
●?数据流分析技术的核心方法和应用;
●?指针分析中的别名分析的原理和技术;
●?C语言和Java语言中的别名分析;
●?程序切片技术的基本概念、分类和应用;
●?形式概念格分析方法的基本理论和应用;
●?部分求值技术的基本原理、方法和应用。

图书前言

程序分析是以某种语言编写的程序为对象,对其内部的运作流程进行分析的过程。通过程序分析,可以帮助人们更好地理解程序内部各模块之间的调用关系,把握程序的运行流程,也可以帮助人们找出系统运行的瓶颈,指导系统优化,还可以用于系统测试和程序调试,找出系统Bug,以及进行错误定位。因此,程序分析是一种非常实用的技术,深入理解并熟练掌握程序分析相关的方法和技术,对于增强对程序设计语言的理解,掌握先进的程序设计方法,更好地分析和理解程序都有很大帮助。程序分析是计算机专业人员必备的一种技术,同时也应该成为计算机专业、软件工程专业学生(本科生、研究生)今后进行科学研究的专业必修课。
  本书作者多年来一直为吉林大学计算机专业、软件工程专业的研究生讲授程序分析的课程,因内容广泛、方法实用,该课程深受学生欢迎。遗憾的是,这门课程一直缺少相应的教材,国内这方面的参考书也非常少。鉴于此,本书作者根据自己多年的教学和科研经验,在以往研究生授课讲义的基础上编写了此书。本书旨在向读者介绍程序分析的各种方法、技巧。
  程序分析包含的范围非常广泛,考虑到教学方便和学生需求,作者尽可能地选取那些比较实用、应用范围较广、内容跟得上时代发展的程序分析方法。本书选取的程序分析方法有:元程序设计、数据流分析、控制流分析、部分求值、形式概念分析、程序分片、程序转换等。程序是与程序设计语言紧密相关的,为此,作者又特别增加了一章,即程序设计语言部分。
  本书具有如下特点:
  1)在内容安排上,每一章介绍一个专题,每个专题自成体系,读者可以根据需要选取感兴趣的专题进行阅读。根据专题内容的不同,介绍的侧重点也各有不同:有的侧重原理的讲解、有的侧重应用实例的分析、有的侧重算法的设计,尽量做到重点突出、讲解透彻,非常适合本科生高年级和研究生阶段的学习特点。
  2)对于书中的许多专题,在介绍基本内容的同时,又融入了我们自己的许多科研成果,如元程序设计专题中的面向对象元程序设计方法;部分求值专题中的过程式语言的动态部分求值和静态部分求值技术;程序分片专题中的过程间的程序分片技术等。
  3)我们力争把最新的技术和方法介绍给广大的读者,如近年来比较热门的形式概念分析技术等。
  4)将程序分析技术的几方面的知识合为一体,读者可以通过本书学习到多方面的内容,免去了查找相关资料的烦恼。
  金成植对于本书的编写给予了大力支持和帮助,刘华虓、张鑫、刘冬清、郭骐凯等对全书进行了校对,在此向他们表示衷心的感谢。
  由于作者水平和时间限制,书中难免存在疏漏和不足之处,恳请广大读者批评指正。

作 者  
2013年2月

上架指导

计算机\程序设计

封底文字

程序分析方法是以程序为处理对象,按需求对其进行各种分析的方法,在程序理解、程序测试、程序优化和程序重构等方面有着重要的应用。程序分析方法一方面可以帮助人们更好地理解程序内部各模块之间的调用关系,分析程序的运行流程,另一方面可以帮助人们找出系统运行的瓶颈,指导系统优化。因此,程序分析是一门非常实用的技术,深入理解并熟练掌握程序分析相关的方法和技术,对于增强对程序设计语言的理解、掌握先进的程序设计方法,以及更好地分析和理解程序都有很大帮助。
本书的内容和特色:
(1) 程序设计语言的发展过程;
(2) 元程序设计系统的概念、核心要素和生成过程;
(3) 几个典型元级系统的介绍;
(4) 控制流分析技术的核心方法及应用;
(5) 数据流分析技术的核心方法和应用;
(6) 指针分析中的别名分析的原理和技术;
(7) C语言和Java语言中的别名分析;
(8) 程序切片技术的基本概念、分类和应用;
(9) 形式概念格分析方法的基本理论和应用;
(10) 部分求值技术的基本原理、方法和应用。

作者简介

刘磊 张晶 赵健 张鹏 编著:刘磊 教授、博士生导师。吉林大学计算机科学与技术学院软件教研室负责人,《高级语言程序设计》国家级精品课负责人,《编译原理》省级精品课负责人,“软件形式化”学术团队负责人,软件教研室主任。从事程序理论、程序设计语言及实现技术、软件自动化等方向的研究,特别是在形式化方法、过程式语言的部分求值技术、程序抽象化等方面取得了一批国内领先的研究成果。

图书目录

前言
第1章 程序设计语言 1
1.1 程序设计语言发展的四个阶段 1
1.1.1 机器语言 2
1.1.2 汇编语言 3
1.1.3 高级语言 3
1.1.4 第四代语言 6
1.2 程序设计语言的发展趋势 7
小结 8
第2章 元程序设计 9
2.1 元程序介绍 9
2.2 元程序设计系统 12
2.2.1 元程序系统的组成 12
2.2.2 中间表示 12
2.2.3 规则分类和对应的结构 14
2.2.4 元级操作 18
2.2.5 系统的生成 21
2.3 元级系统的实际应用 21
2.3.1 如何构造高效的系统 21
2.3.2 几个元级系统的介绍 22
小结 42
第3章 信息流分析 43
3.1 控制流分析 43
3.1.1 控制流分析实例 43
3.1.2 控制流分析方法 46
3.1.3 程序的结构化转换 55
3.2 数据流分析技术 57
3.2.1 数据流方程定义和活跃变量分析 57
3.2.2 数据流异常的检测 62
3.2.3 常量表达式节省 63
3.2.4 公共子表达式节省 67
3.3 信息流分析技术的应用实例 69
3.3.1 方法描述 70
3.3.2 应用 72
小结 74
第4章 别名分析 75
4.1 指针别名 75
4.1.1 指针别名的产生 75
4.1.2 别名信息的分类 76
4.2 别名信息的表示 79
4.2.1 别名信息的表示介绍 79
4.2.2 别名计算 80
4.3 C语言的别名计算 81
4.3.1 C语言的别名采集器 81
4.3.2 C语言的别名传播器 83
4.4 Java的别名分析 86
4.4.1 Java中的别名问题 86
4.4.2 别名分析算法 87
小结 94
第5章 程序分片 95
5.1 程序分片的基础知识 95
5.1.1 程序分片的基本概念 95
5.1.2 一些常见的程序分片方法 101
5.1.3 程序分片的应用 102
5.2 程序分片方法 104
5.2.1 基于数据流方程求解的过程内分片 105
5.2.2 基于数据流方程求解的过程间分片 106
5.2.3 基于程序依赖图的过程内分片 108
5.2.4 基于系统依赖图的过程间分片 110
5.2.5 动态分片 113
5.2.6 条件分片 122
小结 130
第6章 形式概念分析 131
6.1 FCA和格理论基础介绍 131
6.1.1 偏序集及完全格的基本概念 131
6.1.2 Galois连接 133
6.2 FCA的基本概念 134
6.2.1 上下文 134
6.2.2 概念 135
6.2.3 概念格 137
6.2.4 多值上下文 139
6.2.5 概念格的生成算法 142
6.2.6 生成概念格的工具 145
6.3 概念格在程序分析中的应用 145
6.3.1 概述 146
6.3.2 从源程序中推导配置结构 147
6.3.3 从遗留软件中提取类或模块 149
6.3.4 重构类结构 155
6.3.5 动态分析 162
小结 164
第7章 部分求值技术 165
7.1 部分求值技术基本原理 165
7.1.1 Kleene的s-m-n理论 165
7.1.2 部分求值器的定义 167
7.2 几种部分求值技术的介绍 171
7.2.1 静态部分求值方法 172
7.2.2 动态部分求值技术 175
7.2.3 动静态结合的部分求值技术 180
7.3 Futamura投影定理 185
7.3.1 第一投影定理 185
7.3.2 编译器的生成与第二投影定理 186
7.3.3 第三投影定理 186
7.4 程序点例化技术 188
7.4.1 状态、程序点和分割 188
7.4.2 程序点例化 189
7.4.3 不同语句的代码生成 190
7.4.4 转换压缩 192
7.4.5 正确的分割技巧 193
7.4.6 简单绑定时间分析 194
小结 194
参考文献 195

教学资源推荐
作者: (美)Kenneth E. Kendall,Julie E.Kendall 著施平安 译
作者: (英) W. Bolton 著
作者: 郑晓薇 编著
作者: [美]怀亚特·S. 纽曼(Wyatt S. Newman) 著
参考读物推荐
作者: (美)Sam Ruby; Dave Thomas; David Heinemeier Hansson 著
作者: [美]杜尔森·德伦(Dursun Delen) 著
作者: 赵化启 闫广明 孙小君 等编著