【技术实现步骤摘要】
本专利技术涉及可执行代码从一种语言到另一种语言的转换。具体来说,本专利技术涉及 代码的自动转换。
技术介绍
遗留系统(legacy system)是陈旧的计算机系统或通常包含以C0B0L、 PL/I和其 它古老的编程语言写成的几十亿行代码的应用程序。 转换涉及将遗留的应用程序源代码转换为现代语言的进程,例如将应用程序从 COBOL转换到J2EE上的Java,或将RPG写成的应用程序转换为.NET上的c#。有时也将转 换称作现代化。 将遗留的应用程序转换到独立的现代的技术平台具有很多优点 -维护遗留应用程序的知识产权;-使得将来更容易且以较少花费对应用程序进行改进;-应用程序可以现代化为能够提供网页(Web-enablement);而且-应用程序可保持原始的样式、感觉和功能,从而使对职工的培训最小化。 转换通常使用基于工作台的应用程序现代化的方法,也就是说,转换基于一系列完全不同的工具,且通常牵涉很多对代码的人工转换。 A.特里可夫(A Terekhov)和C.费霍夫(C Verhoef)在他们的名称为实现语言 转换(The Realities of Langim ...
【技术保护点】
一种将代码转换为不同编程语言的方法,该方法包括:接收所述代码;基于所述可执行代码创建抽象语法树;将涉及多个重建进程的识别数据存储于数据存储器中,所述多个重建进程待在所述抽象语法树上运行以重建该树,从而协助所述到不同语言的代码转换;在所述抽象语法树上自动运行在所述数据存储器中识别出的重建进程;在该重建的树上自动运行配置进程,以将所述代码转换为所述不同的编程语言;评估转换后的代码,并基于该评估,识别出另一待在所述抽象语法树上运行以协助所述到不同语言的代码转换的重建进程;将所述另一重建进程的识别数据存储到所述数据存储器中;以及重复所述运行步骤。
【技术特征摘要】
AU 2005-6-27 2005903390;AU 2005-10-7 2005905559;AU一种将代码转换为不同编程语言的方法,该方法包括接收所述代码;基于所述可执行代码创建抽象语法树;将涉及多个重建进程的识别数据存储于数据存储器中,所述多个重建进程待在所述抽象语法树上运行以重建该树,从而协助所述到不同语言的代码转换;在所述抽象语法树上自动运行在所述数据存储器中识别出的重建进程;在该重建的树上自动运行配置进程,以将所述代码转换为所述不同的编程语言;评估转换后的代码,并基于该评估,识别出另一待在所述抽象语法树上运行以协助所述到不同语言的代码转换的重建进程;将所述另一重建进程的识别数据存储到所述数据存储器中;以及重复所述运行步骤。2. 如权利要求1所述的方法,其中所述方法进一步包括接收数据词典、元数据或与所 接收的代码有关的任何其它文件。3. 如权利要求1或2所述的方法,其中所述抽象语法树是利用权利要求1至16中任一 项所述的方法创建的。4. 如权利要求1、2或3所述的方法,其中所述方法进一步包括将所述抽象语法树存 储在所述数据存储器中的步骤。5. 如权利要求4所述的方法,其中所述创建抽象语法树的步骤进一步包括从所述抽 象语法树上提取声明元素,并将之存储到数据存储器中。6. 如权利要求5所述的方法,其中所述声明元素是利用多个挖掘进程从所述抽象语法 树上提取的,所述多个挖掘进程对所述抽象语法树进行挖掘以识别该树中的声明元素。7. 如权利要求5或6所述的方法,其中所述每一声明元素的属性存储在所述数据存储 器中。8. 如权利要求4至7中任一项所述的方法,其中所述方法进一步包括将分析数据存 储于所述数据存储器中,所述分析数据涉及如何使用以及在何处使用所述代码的元素。9. 如权利要求4至8中任一项所述的方法,其中所述方法包括将与所述代码相关的 元数据存储到所述数据存储器中的步骤。10. 如权利要求9所述的方法,其中所述元数据包括以下一种或更多种关于所述代码的原始语言和/或所述不同的编程语言的信息; 所述代码的原始语言和/或所述不同的编程语言的内建组元;以及 涉及重建的信息,例如所需可维护性、经转换的代码的运行时复杂性和效率。11. 如权利要求9或10所述的方法,其中使用多个挖掘进程,从所述抽象语法树上提取 所述元数据的一个或更多个部分。12. 如权利要求1至11中任一项所述的方法,其中所述重建进程包括以下一个或更多个.对循环加以识别并重建为期望循环结构的进程; 对特定可执行段加以识别并重建为更精细结构的进程;对所述...
【专利技术属性】
技术研发人员:阿尔伯特唐纳德通金,鲁思埃玛通金,
申请(专利权)人:奎朴兹有限公司,
类型:发明
国别省市:AU[澳大利亚]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。