[发明专利]代码转换方法及装置在审
申请号: | 202011330852.9 | 申请日: | 2020-11-24 |
公开(公告)号: | CN112328257A | 公开(公告)日: | 2021-02-05 |
发明(设计)人: | 黄贵敏;李英灯;祁有盛;潘丹铃 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/51 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 任默闻;孙乳笋 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 转换 方法 装置 | ||
本发明提供一种代码转换方法及装置,涉及人工智能技术领域。代码转换方法方法包括:获取目标EGL源代码文本并将目标EGL源代码文本转换为EGL的抽象语法树;将所述EGL的抽象语法树进行遍历处理得到JAVA的抽象语法树;基于所述JAVA的抽象语法树生成JAVA源代码文本。本发明能够支持大型数据系统的迁移以及升级,节省了大量的人力成本投入。
技术领域
本发明涉及人工智能技术领域,具体涉及一种代码转换方法及装置。
背景技术
随着IT行业的飞速发展,业界前沿技术不断更新换代,具备高容错性、弹性扩展、资源共享、灵活配置、快速计算等特性的分布式系统异军突起,被广泛运行到互联网各个领域。传统的集中式部署的大型主机系统纷纷面临着系统需要快速运维转型及升级换代的境况,以及将逐步退出历史舞台。而传统的大型主机系统的转型升级,由于系统框架及技术组件与主流分布式架构所使用的编程语言不同,在转型过程中不可避免需要进行代码重写,即两种的编程语言相互转换。代码转换方面,编程语言的转换是人工方式完成的,需要耗费大量人力,开发效率低,而且存在复杂度高、可读性差、易出错等多种问题,从而影响系统的稳定性。
目前业界存在一些代码转换工具大多都是基于源代码的直接的粗糙的转换,转换效率比较差,转换正确性较低,同时转换无法做到灵活配置、灵活扩展。业界对于编程语言转换出来的抽象语法树的使用,也主要用做简单的程序路径管理,例如分支路径搜索、单元测试案例生成、编码规范扫描等,对于两种语言之间基于语法树的相互转换很少涉猎。
因此,现急需一种基于语法树的高效的代码转换方法满足大型数据系统迁移升级的需求。
发明内容
针对现有技术中的问题,本发明提供一种代码转换方法及装置,能够节省了大量的人工编码投入,实现大型主机系统的快速转型升级。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种代码转换方法,包括:
获取目标EGL源代码文本并将目标EGL源代码文本转换为EGL的抽象语法树;
将所述EGL的抽象语法树进行遍历处理得到JAVA的抽象语法树;
基于所述JAVA的抽象语法树生成JAVA源代码文本。
其中,所述将目标EGL源代码文本转换为EGL的抽象语法树,包括:
将目标EGL源代码文本划分为由代码块构成的代码块集合;其中,每个代码块包含多行代码构成的代码行子集;
遍历所述代码块集合将所述代码块集合中的代码块转化成由节点构成的第一语法树节点集合;
遍历所述代码块将所述代码块中的代码行子集转化成由节点构成的第二语法树节点集合;
其中,第一语法树节点集合和第二语法树节点集合构成了EGL的抽象语法树。
其中,所述将所述EGL的抽象语法树进行遍历处理得到JAVA的抽象语法树,包括:
将所述EGL的抽象语法树上的各个类型的节点逐级转换成语义等价的JAVA语法树节点;
根据所述JAVA语法树节点构成JAVA的抽象语法树。
进一步的,在所述将所述EGL的抽象语法树上的各个类型的节点逐级转换成语义等价的JAVA语法树节点之前,还包括:
对所述EGL的抽象语法树进行预处理;
相对应的,所述将所述EGL的抽象语法树上的各个类型的节点逐级转换成语义等价的JAVA语法树节点,包括:
将预处理后的EGL的抽象语法树上的各个类型的节点逐级转换成语义等价的JAVA语法树节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011330852.9/2.html,转载请声明来源钻瓜专利网。