自动化的Cobol2Java遗产代码迁移技术.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2005 t 6 $June 2005? ? ? T ?Computer Engineering? 31 Q ? 12 ?? 12Vol.31·???$????· 2005 t 6 $ June 2005 ? ? ? T ? Computer Engineering ? 31 Q ? 12 ? ? 12 Vol.31 ·???$????· $?щ?:1000—3428(2005)12—0067—03 $????:A $????:TP311 自动化的 Cobol 2 Java 遗产代码迁移技术 石学林,张兆庆,武成岗 (中国科学院计算技术研究所,北京 100080) 摘 要:随着下一代网格环境的来临,如何将遗产代码迁移到新的平台成为一个亟待解决的问题,该文提出了一种将 Cobol 源代码自动地, 功能等价地迁移到 Java 平台的方法。 关键词:Cobol 2 Java;遗产代码;源源变换;类型转换;控制流变换 Legacy Code Automatic Migrating Technology of Cobol 2 Java SHI Xuelin, ZHANG Zhaoqing, WU Chenggang (Institute of Computing Technology, CAS, Beijing 100080) 【Abstract】How to migrate the legacy code to the next generation platform is becoming a problem to solve. This paper presents an automatic method to translate Cobol source to Java source with functional equivalence. 【Key words】Cobol 2 Java; Legacy code; Source-to-source; Type conversion; Control flow translation Cobol 语言在数据类型和控制结构的设计上都和现代语 言有显著的不同,怎样跨越这种巨大差异将遗产代码自动化 地、功能等价地迁移到新的平台成为遗产代码迁移必须首要 解决的基本问题[3]。 本文提出了一种基于语言转换的自动化源-源变换方法 将采用 Cobol 语言编写的软件自动迁移到 Java 平台,采用此 方法,我们实现了一个自动化的 Cobol 2 Java 翻译器—— C2J,并且成功地将近 400 万行源代码的真实商用 Cobol 程 序无人工干预、功能等价地转换到 Java 平台。 1 C2J 翻译器的转换过程 perform 语句;最后从 IR2 生成在 C2J 平台上运行的 Java 源 代码。整个系统的框架如图 1 所示,图中实线箭头表示控制 流方向,虚线箭头表示数据流方向。 2 数据类型转换技术 由于 Cobol 语言诞生时代的局限性以及面向商业应用的 特定性导致了 Cobol 语言在数据对象的定义和使用上和现代 语言具有很大的不同。Cobol 语言采用描述性的语句来描述 程序中将要用到的每一个数据,它决定了数据在内存中的编 码方式,定浮点特性,数据宽度,数据范围和精度等特征, 一个典型的 Cobol 数据声明如下: 77 AMOUNT PIC S9(8)V99 USAGE IS COMP-3 SIGN IS LEADING SEPARATE CHARACTER. 在上面的例子中程序定义了一个带符号的定点数据,整 数部分有 8 位,小数部分有 2 位,数据使用 BCD 码表示, 符号位放在数据前面,并且在内存中占据一个独立的字节存 储。由 BCD 编码方式可知,两个十进制位占据 1B,9(8)V99 占 5B,加上一个独立的符号位字节,整个数据宽度为 6。V 表示小数点的位置,从而数据精度为 0.01。从以上的 Cobol 数据声明方式可以看出,它显然不能对应到现代语言的 int 数据类型,因为它带有小数部分,另外它也不能对应到 float 类型,因为 float 类型是一个浮点数据,数据的精度根据小数 点的位置而变,而不是一个确定的定点类型。鲁莽地把 Cobol 中描述的数字数据根据其表示的数据范围对应到现代语言 的 char、, short、 int、long 等基本数据类型将是粗糙的,非 功能等价的,不能保证 Cobol 数据运算的精度要求。忽略这 些类型特征上的差异将不能保证程序转换语义的正确性,反 Cobol 源程序 IR1 IR2 C2J 平台 Java 源程序 图 1 C2J 翻译器结构图 在我们实现的 C2J 翻译器中,整个翻译过程分为 4

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档