[发明专利]代码转换方法及装置、电子设备、存储介质有效
申请号: | 201810541370.4 | 申请日: | 2018-05-30 |
公开(公告)号: | CN110554875B | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 张鑫淼;李一山;纪伟;赵玉涛;张岩 | 申请(专利权)人: | 北京三快在线科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 袁礼君;王卫忠 |
地址: | 100083 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 转换 方法 装置 电子设备 存储 介质 | ||
1.一种代码转换方法,其特征在于,包括:
将源代码拆分为多个源词素,并确定各所述源词素的语法类型;
基于各所述源词素的语法类型,通过预设词素表将各所述源词素映射为目标语言的词素;所述预设词素表是集成了源语言与所述目标语言的词素基于语法类型的映射关系的表;
根据各所述源词素映射得到的目标语言的词素,生成基于所述目标语言的代码;
其中,将源代码拆分为多个源词素,并确定各所述源词素的语法类型包括:
读入组成所述源代码的字符流,根据语法规则逐个扫描,识别出源词素;
将所述源词素组织成多个语法短语;
在所述语法短语中,将各源词素通过语法及逻辑关系连接,形成语法子树;
按照所述源代码的逻辑关系组织各所述语法短语的树状结构,以将所述语法子树合并为抽象语法树;
根据各所述源词素处于所述抽象语法树中的节点位置,确定各所述源词素的语法类型。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取预设语言的语法规则及预设语言的词素集合,所述预设语言至少包括所述源代码的语言与所述目标语言;
获取自定义的语法规则及自定义的词素集合;
基于所述预设语言的语法规则及所述自定义的语法规则,对所述预设语言的词素集合及所述自定义的词素集合进行语法类型的分类,以获得所述预设词素表。
3.根据权利要求1所述的方法,其特征在于,基于各所述源词素的语法类型,通过预设词素表将各所述源词素映射为目标语言的词素包括:
在所述预设词素表中查找所述目标语言中与各所述源词素的语法类型相同的词素;
将各所述源词素映射为所述语法类型相同的词素。
4.根据权利要求1所述的方法,其特征在于,基于各所述源词素的语法类型,通过预设词素表将各所述源词素映射为目标语言的词素包括:
根据各所述源词素的语法类型,将所述抽象语法树转换为通用语法树;
通过所述预设词素表将所述通用语法树的各节点映射为所述目标语言的词素。
5.根据权利要求1所述的方法,其特征在于,所述源词素包含无法映射为所述目标语言的词素的特殊词素;所述方法还包括:
在所述源代码中将所述特殊词素进行突出显示。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述源代码的语言与所述目标语言包括高级编程语言或汇编语言。
7.一种代码转换装置,其特征在于,包括:
语法分析模块,用于将源代码拆分为多个源词素,并确定各所述源词素的语法类型;
词素映射模块,用于根据各所述源词素的语法类型,通过预设词素表将各所述源词素映射为目标语言的词素;所述预设词素表是集成了源语言与所述目标语言的词素基于语法类型的映射关系的表;
代码生成模块,用于根据各所述源词素映射得到的目标语言的词素,生成基于所述目标语言的代码;
其中,所述语法分析模块,被配置为:
读入组成所述源代码的字符流,根据语法规则逐个扫描,识别出源词素;
将所述源词素组织成多个语法短语;
在所述语法短语中,将各源词素通过语法及逻辑关系连接,形成语法子树;
按照所述源代码的逻辑关系组织各所述语法短语的树状结构,以将所述语法子树合并为抽象语法树;
根据各所述源词素处于所述抽象语法树中的节点位置,确定各所述源词素的语法类型。
8.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京三快在线科技有限公司,未经北京三快在线科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810541370.4/1.html,转载请声明来源钻瓜专利网。