[发明专利]一种代码转换方法及装置在审
申请号: | 202110420845.6 | 申请日: | 2021-04-19 |
公开(公告)号: | CN113031967A | 公开(公告)日: | 2021-06-25 |
发明(设计)人: | 杨吉明;商楠 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F8/51 | 分类号: | G06F8/51;G06F8/41 |
代理公司: | 北京中知法苑知识产权代理有限公司 11226 | 代理人: | 李明 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 转换 方法 装置 | ||
本公开提供了一种代码转换方法及装置,该方法首先获取由动态编程语言编写的待转换代码;然后确定所述待转换代码中的目标动态变量;之后,在转换过程中,针对所述目标动态变量,创建静态编程语言下与各个所述赋值类型分别对应的静态变量,或者,创建静态编程语言下的容器变量。本公开实施例通过在转换过程中创建静态编程语言下与各个赋值类型对应的静态变量,或创建静态编程语言下的容器变量,以满足在静态语言下的语法对变量的需求,使转换后得到的代码能够正确运行。
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种代码转换方法及装置。
背景技术
在代码开发场景中,动态编程语言易于程序员进行开发,但代码运行效率较低、需要冷启动,不适于线上应用,静态编程语言代码的运行效率高,但不易于学习编写,不适于开发场景,因此,可以利用动态编程语言开发应用,再将其编译为静态编程语言推至线上使用,发挥两种编程语言的优势。
然而,动态编程语言中的变量的类型是动态的,一个变量可能存在多种类型,静态编程语言中变量的类型是静态的,一个变量只能存在一种类型,在编译过程中无法精确的将动态的变量转换为正确的静态变量,容易导致编译后的代码无法正常运行。
发明内容
本公开实施例至少提供一种代码转换方法及装置。
第一方面,本公开实施例提供了一种代码转换方法,包括:
获取由动态编程语言编写的待转换代码;所述待转换代码为待转换为静态编程语言的代码;
确定所述待转换代码中的目标动态变量;所述目标动态变量为在所述待转换代码中被多次赋值、且被赋值的赋值类型存在多个的动态变量;
在转换过程中,针对所述目标动态变量,创建静态编程语言下与各个所述赋值类型分别对应的静态变量,或者,创建静态编程语言下的容器变量,所述容器变量中定义了用于表征动态编程语言下的每个所述赋值类型的类型。
一种可选的实施方式中,所述确定所述待转换代码中的目标动态变量,包括:
基于所述动态编程语言的语法规则,确定所述待转换代码中包含的各个动态变量;
基于所述各个动态变量在被赋值时对应的赋值代码,确定所述各个动态变量在所述待转换代码中被赋值时对应的赋值类型;
将所述各个动态变量中,被多次赋值、且被赋值的赋值类型存在多个的动态变量作为所述目标动态变量。
一种可选的实施方式中,所述创建静态编程语言下与各个所述赋值类型分别对应的静态变量,包括:
在检测到当前转换的目标动态变量被赋值的赋值类型变化时,创建静态编程语言下与新的赋值类型对应的静态变量。
一种可选的实施方式中,所述创建静态编程语言下与所述新的赋值类型对应的静态变量,包括:
若所述静态编程语言的语法规则不允许类型不同的变量具有相同的名称,则基于预设的变量名称创建规则,创建静态编程语言下与所述新的赋值类型对应的静态变量,以使转换为静态编程语言的代码中不存在具有相同名称且类型不同的变量。
一种可选的实施方式中,所述创建静态编程语言下与所述新的赋值类型对应的静态变量,还包括:
若所述静态编程语言的语法规则允许类型不同的变量具有相同的名称,则创建静态编程语言下与所述新的赋值类型对应的静态变量,并在声明所述静态变量的代码中加入类型可变标识;所述静态变量的名称与所述目标动态变量的名称相同。
一种可选的实施方式中,在创建静态编程语言下的容器变量之后,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110420845.6/2.html,转载请声明来源钻瓜专利网。