第一篇 概论 1
第一章 什么是软件移植 1
1.1 软件移植的动机 1
1.2 软件移植的技术 3
1.3 软件可移植性的定义 6
第二篇 开发可移植的软件 12
第二章 应用程序的可移植性 12
2.1 ALGOL 60程序的可移植性 12
2.2 FORTRAN程序的可移植性 17
2.3 两种语言的对比 23
2.4 COBOL程序的可移植性 25
2.5 PASCAL程序的可移植性 28
2.6 Ada程序的可移植性 32
2.7 选用合适的高级语言 36
第三章 编译程序的可移植性 38
3.1 编译程序书写语言 38
3.2 可移植编译程序的结构 44
3.3 移植编译程序的组织工作 50
第四章 编译程序的编译程序 55
4.1 语法分解程序的自动生成 56
4.2 语义处理程序的自动生成 66
4.3 代码生成程序的自动生成 74
第五章 宏加工系统 80
5.1 宏技术的历史性贡献 80
5.2 通用宏设备STAGE 2 82
5.3 专用宏设备SIL 89
5.4 编译程序的宏实现 93
第六章 中间语言和抽象机 95
6.1 通用抽象机JANUS 95
6.2 专用抽象机CTL 101
6.3 面向语言的专用抽象机(低级) 103
6.4 面向语言的专用抽象机(高级) 111
6.5 选择理想的抽象机 117
第七章 语言分层和语言系列 120
7.1 语言自展和塔式分层 120
7.2 语言系列和树形分层 123
7.3 广谱语言和逆树形分层 129
第三篇 系列软件计划(XR计划) 135
第八章 XR计划的原理、体系和工具 135
8.1 主要思想和实现原理 135
8.2 编译书写语言XHY 138
8.3 抽象机语言CJY 146
8.4 系统管理程序和运行环境 148
第九章 XR计划的实践及效果分析 152
9.1 开发的软件 152
9.2 移植的实际效果 154
9.3 技术上的困难与解决办法 157
9.4 经验和教训 160
第四篇 移植已有软件的技术 164
第十章 直接转换法 164
10.1 高级语言的互相转换 164
10.2 同类语言的互译 170
10.3 核心映射原理及技术 175
10.4 代码程序的直接转换 178
10.5 模拟和仿真 182
第十一章 拖带法 184
11.1 拖带的基本思想 184
11.2 半自动化拖带 189
11.3 利用抽象机的多级拖带 194
11.4 拖带中的优化问题 199
第十二章 抽象化方法 204
12.1 反汇编技术 204
12.2 反编译技术 207
12.3 反编码技术 210
12.4 反方言技术 214
12.5 程序分析技术 217
第五篇 特种软件的移植 221
第十三章 数学软件的移植 221
13.1 数学软件移植的特殊问题 221
13.2 数学软件的标准环境 224
13.3 建立可移植的数学软件库 226
第十四章 操作系统的移植 231
14.1 作业控制语言的移植 231
14.2 可移植操作系统的结构 235
14.3 移植操作系统的途径 238
第十五章 数据库的移植 245
15.1 数据的移植 245
15.2 数据库应用程序的移植 254
15.3 数据库管理系统的移植 259
附录 263
附录一 FLUB指令表 263
附录二 P-CODE指令表 264
附录三 IFIP关于数值软件的2.5工作小组通过的标准环境参数表 266
附录四 PFORT语法公式表 267