[发明专利]一种编程语言转换方法和装置在审
| 申请号: | 202110847299.4 | 申请日: | 2021-07-26 |
| 公开(公告)号: | CN113504900A | 公开(公告)日: | 2021-10-15 |
| 发明(设计)人: | 张宏根;胡凯乐;李晓欢;周倩 | 申请(专利权)人: | 中国工商银行股份有限公司 |
| 主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
| 代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 任岩 |
| 地址: | 100140 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 编程 语言 转换 方法 装置 | ||
本公开提供了一种编程语言转换方法和装置,包括:获取待转换语言文件;将待转换语言文件转换为生成待转换语言语法树;遍历待转换语言语法树,将待转换语言语法树转换为目标语言语法树,其中,包括将各个节点的数据类型转换为目标数据类型;将目标语言语法树转换成目标语言输出。本公开的编程语言转换方法提高一般类型编程语言相互转换的准确率,还可以将弱类型语言转换为强类型语言。
技术领域
本公开涉及金融科技领域,具体涉及到一种计算机编程领域,更具体地涉及一种编程语言转换的方法、装置、电子设备和介质。
背景技术
随着计算机语言的发展,许多软件系统都面临这更新换代的问题。为了提升软件的灵活性更好,需要对软件系统的编程语言进行转换。
对于软件系统需要转换编程语言的情况,目前常规做法主要有两种:手工重构和基于语法树的简单转换工具。其中,手工重构成本较高,对于大型业务系统需要投入大量人力才能够完成;而基于语法树的简单转换工具还有很多不成熟地方,例如无法将弱类型语言向强类型语言进行转换。由于弱类型语言对相关变量的处理存在较多的容错或适配处理,导致转换后的强类型语言程序虽然程序逻辑语法正确,但由于强类型语言在表达式中存在强一致性要求,导致表达式前后的变量无法匹配,出现大量语法错误,需要人工手动处理,成本非常高。
故现需要一种编程语言转换方法和装置,可以将弱类型语言转换为强类型语言,在转换过程中,不仅对语法语义进行转换,还针对变量进行相应的转换处理。
公开内容
有鉴于此,本公开提出了一种编程语言转换方法,包括:获取待转换语言文件;将所述待转换语言文件转换为生成待转换语言语法树;遍历所述待转换语言语法树,将所述待转换语言语法树转换为目标语言语法树,其中,包括将各个所述节点的数据类型转换为目标数据类型;将目标语言语法树转换成目标语言输出。
可选地,将各个所述节点的数据类型转换为目标数据类型,包括:确定所述待转换语言语法树各个节点的类型,其中,所述节点的类型包括表达式根结点以及表达式根节点两侧的左子节点和右子节点;基于所述目标语言的数据类型,将各个节点的数据类型预转换;将所述表达式根节点两侧的左子节点的数据类型和右子节点的数据类型转为一致。
可选地,将各个表达式根节点两侧的左子节点的数据类型和右子节点的数据类型转为一致,包括:判断各个所述表达式根节点两侧的所述左子节点的数据类型和所述右子节点的数据类型是否一致;若不一致,则判断所述表达式根节点的是否为赋值节点;若是赋值节点,则基于所述左子节点的数据类型,转换所述右子节点的数据类型;若不是赋值节点,则基于数据类型优先级,将所述左子节点的数据类型和所述右子节点的数据类型转为一致。
可选地,基于数据类型优先级,将所述左子节点的数据类型和所述右子节点的数据类型转为一致,包括:比较所述左子节点数据类型的优先级和所述右子节点的数据类型的优先级;若所述左子节点的数据类型优先级更高,则强制转换所述右子节点的数据类型,使得所述右子节点数据类型与所述左子节点的数据类型一致;若所述右子节点的数据类型优先级更高,则强制转换所述左子节点的数据类型,使得所述左子节点数据类型与所述右子节点的数据类型一致。
可选地,将所述待转换语言语法树转换为目标语言语法树,还包括:
获取待所述转换语言运行环境,并以HashMap形式存储;获取所述待转换语言与所述目标语言之间的语法转换规则,并以HashMap形式存储。
可选地,获取所述待转换语言与所述目标语言之间的语法转换规则,并以HashMap形式存储后,还包括:遍历所述待转换语言语法树的各个节点,根据所述语法转换规则,将所述各个节点进行语法语义转换。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110847299.4/2.html,转载请声明来源钻瓜专利网。





