论文题目: Cobol2Java源代码翻译关键技术研究
论文类型: 博士论文
论文专业: 计算机系统结构
作者: 石学林
导师: 张兆庆
关键词: 遗产代码,语言转换,源源变换,类型映射,控制流转换,界面迁移
文献来源: 中国科学院研究生院(计算技术研究所)
发表年度: 2005
论文摘要: 遗产软件系统是指那些运行多年,承担用户的关键业务并且随着计算平台的变迁和业务需求的发展不断进行维护和更新的软件系统。遗产代码维护人员的短缺,以及现代计算环境的变迁都给遗产软件系统的维护带来困难。一种可行的方法就是采用源代码翻译方法将其转换到现代语言或环境中。本文首先对Cobol和Java语言之间的不同点进行了对比,然后分析了几种主要的遗产代码迁移策略。基于以上的分析,本文设计和实现了一个将Cobol源代码翻译到Java源代码的系统——Cota翻译系统,解决了Cobol2Java实践中遇到的条件名变量转换、数据对象模型映射、控制流重构、动态调用以及文件和数据库访问等一系列关键问题。在这一过程中,本文深入研究了源代码翻译中的数据类型转换问题,控制流结构化问题和用户界面迁移问题,针对这三个问题分别提出并实现了自动化的功能等价的转换方法可以有效的将遗产代码迁移到目标平台。同时本文还研究了Cobol2Java转换中的多精度数据算术优化问题,提出了优化算法,可以将算术运算密集型的Cobol程序性能提高近98%。本文的主要贡献有:(1).设计并实现了一个自动化的Cobol2Java源代码翻译器,可以作为再工程(re-engineering)或遗产代码迁移研究的平台。(2).设计并实现了一个纯Java的Cobol核心语义支持库,其中包括对遗产文件数据的读写支持。通过这种核心库的支持,用户可以直接在web环境中开发具有Cobol功能的商务程序,从而利于维护成本的减少和与新应用的集成。同时,可以帮助Java程序员或Cobol程序员相互学习,从而有助于培养和训练胜任的遗产代码维护人员。(3).提出了一种新的基于类型封装的自动化的数据类型映射方法,可以同时支持低级的存储访问和类型访问,对保证目标码的功能等价性具有重要作用。(4).提出了基于switch和递归调用的控制流转换方法,可以解决Cobol程序中的perform和goto耦合的控制流结构化问题。和其他方法相比,本方法可以有效控制目标代码的膨胀,并且具有较好的可读性。(5).提出了基于十进制表示的多精度数据算术优化的方法,设计并实现了一个新的多精度数据类型的Java算术库,实验表明这个新的算术库比Java中的BigDecimal在十进制算术运算方面快98%左右。(6).提出了一种基于停止-等待协议的自动化界面转换方法,可以有效地改变界面的交互方式,将基于字符终端界面的程序迁移到web平台。
论文目录:
声明
关于论文使用授权的说明
摘要
Abstract
第一章 引言
1.1 研究背景
1.2 基本转换方法和策略
1.3 源代码翻译中的难点问题
1.3.1 数据类型的转换
1.3.2 控制结构的等价映射
1.3.3 库调用的迁移
1.3.4 用户界面的迁移
1.3.5 程序范型(program-paradiam)转换
1.4 术语和使用惯例介绍
1.5 本文的贡献
1.6 论文的组织
第二章 相关工作和技术背景
2.1 Cobol 与Java 之间的比较
2.1.1 程序结构
2.1.2 变量声明和数据类型
2.1.3 控制结构
2.1.4 文字量
2.1.5 存储管理
2.1.6 语句
2.1.7 源代码组织
2.1.8 文件访问
2.2 遗产二进制码集成技术
2.3 编译源代码到字节码
2.4 re-engineering 技术
2.5 源源程序翻译技术
2.5.1 翻译器与编译器的比较
2.5.2 源代码翻译的评价目标
2.5.3 基本的源代码翻译方法
2.5.4 源代码翻译工具介绍
2.6 本章小结
第三章 Cota 转换器的设计与实现
3.1. Cota 转换器的设计考虑
3.2. Cota 转换器的框架
3.2.1 预处理分析
3.2.2 词法/语法分析
3.2.3 中间表示转换
3.2.4 程序结构化处理
3.2.5 Java 代码生成
3.3 转换实现细节
3.3.1 输出源文件组织
3.3.2 条件名变量处理
3.3.3 数据对象模型映射处理
3.3.4 call 变量处理
3.3.5 文字量处理
3.3.6 perform 控制结构转换
3.3.7 语句翻译
3.3.8 文件读写和数据库功能
3.4 转换器评估
3.4.1 目标码正确性和转换自动化程度
3.4.2 目标码的膨胀
3.4.3 目标码的效率
3.4.4 目标码的可读性与可维护性
3.5 本章小结
第四章 数据类型转换技术
4.1 引言
4.2. Cobol 数据对象分析和封装方法
4.2.1 Cobol 数据对象语义
4.2.2 Cobol 数据对象模型和封装方法
4.3 相关工作
4.4 实验验证与结果分析
4.5 本章小结
第五章 定浮点算术优化技术
5.1 引言
5.2 设计空间选择分析
5.2.1 数据宽度
5.2.2 定浮点特性
5.2.3 分辨率要求
5.2.4 编码策略选择
5.3 多精度数据模型及其优化
5.3.1 数据存储模型
5.3.2 移位
5.3.3 加减法
5.3.4 乘法和幂操作
5.3.5 除法操作
5.3.6 数据转换
5.4 比较实验和性能分析
5.5 本章小结
第六章 控制流转换技术
6.1 引言
6.2. COBOL 中的GOTO 和PERFORM 语句
6.3 传统控制流分析技术的局限性
6.4. PERFORM 和GOTO 消除算法
6.4.1 变换算法设计
6.4.2 算法的正确性证明
6.4.3 开销评估
6.5 相关工作
6.6 实验和测试结果
6.7 本章小结
第七章 用户界面迁移技术
7.1 引言
7.2 相关工作
7.3 界面迁移需要考虑的问题
7.4 自动界面转换方法
7.4.1 封装I/O 操作到屏幕映像HtmlView
7.4.2 采用停止等待协议转换交互方式
7.4.3 从界面传送输入到服务端
7.4.4 多线程化
7.5 实例研究
7.6 本章小结
第八章 结束语
8.1 本文工作总结
8.2 进一步工作展望
参考文献
致谢
作者简历
发布时间: 2006-12-27
相关论文
- [1].Java虚拟机的自适应动态优化[D]. 邹琼.中国科学技术大学2008
- [2].JE-Java芯片系统关键技术的研究与设计[D]. 陈虎.中国人民解放军国防科学技术大学2000
- [3].Java USIM卡安全计算研究[D]. 王明华.北京邮电大学2006
- [4].指令级并行编译的关键技术研究[D]. 吴承勇.中国科学院研究生院(计算技术研究所)2000
- [5].通用脚本语言GSCRIPT设计与应用的研究[D]. 付岩.中国科学院研究生院(计算技术研究所)2000
- [6].人机互动的多策略机器翻译系统中跟踪记忆机制的研究[D]. 胡春玲.中国科学院研究生院(计算技术研究所)2000
- [7].二进制翻译关键技术研究[D]. 马湘宁.中国科学院研究生院(计算技术研究所)2004
- [8].谓词相关编译技术和深层代码优化[D]. 芦运照.中国科学院研究生院(计算技术研究所)2004
- [9].Java虚拟机安全性的形式化分析和验证[D]. 左天军.西安电子科技大学2005
- [10].Java实时性及嵌入式实时Java处理器研究[D]. 柴志雷.复旦大学2006