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