项目语言切换方法、装置、设备及存储介质制造方法及图纸

技术编号:37371416 阅读:15 留言:0更新日期:2023-04-27 07:16
本发明专利技术公开了一种项目语言切换方法、装置、设备及存储介质,涉及计算机领域,该方法包括:获取源代码;基于预设的转换关系将源代码转换为中间态代码;转换关系包括多种编程语言中的每一种编程语言和中间态代码所使用的编程语言之间的转换关系;将中间态代码转换为目标编程语言的代码,以完成项目语言的切换。该方法适用于编程语言切换过程中,用于解决现有的针对的范围较为固定的翻译器局限性较大的问题。问题。问题。

【技术实现步骤摘要】
项目语言切换方法、装置、设备及存储介质


[0001]本专利技术涉及计算机领域,尤其涉及一种项目语言切换方法、装置、设备及存储介质。

技术介绍

[0002]编程过程中通常涉及到多种编程语言之间的互相翻译。例如,将指定的编程语言A翻译成另外一种编程语言B。
[0003]但是,目前的编程语言翻译器针对的范围较为固定(例如只能将编程语言A翻译为编程语言B),而当前市面上的编程语言的种类已达数十种,现有的针对的范围较为固定的翻译器局限性较大。

技术实现思路

[0004]本专利技术提供一种项目语言切换方法、装置、设备及存储介质。为解决上述技术问题,本专利技术采用如下技术方案:
[0005]获取源代码;基于预设的转换关系将源代码转换为中间态代码;转换关系包括多种编程语言中的每一种编程语言和中间态代码所使用的编程语言之间的转换关系;将中间态代码转换为目标编程语言的代码,以完成项目语言的切换。
[0006]本专利技术提供的项目语言切换方法,可以基于预设的转换关系架构源代码转换为中间态代码,并将中间态代码转换为目标编程语言的代码,从而完成项目语言的切换,由于预设的转换关系包括多种编程语言中的每一种编程语言和所述中间态代码所使用的编程语言之间的转换关系,所以利用专利技术实施例提供的项目语言切换方法,可以实现多对多的编程语言翻译,不局限于一对一的编程语言翻译,打破了现有的针对的范围较为固定的翻译器的局限性。
[0007]一种可能的实现方式中,基于预设的转换关系将源代码转换为中间态代码,包括:确定源代码的编程语言种类;根据源代码的编程语言种类、以及预设的编程语言种类和子处理器之间的对应关系,确定源代码的编程语言种类对应的目标子处理器;编程语言种类和子处理器之间的对应关系中包括多个子处理器,每个子处理器用于表示一种编程语言和中间态代码所使用的编程语言之间的转换关系;利用目标子处理器将源代码转换为中间态代码。
[0008]应理解,若将多种转换关系集合在一起,可能导致转换关系之间耦合,影响项目语言的切换,本专利技术提供的项目语言切换方法,可以将每种编程语言对应的转换关系封装在各自对应的子处理器中,这样可以解耦多类型的编程语言的依赖关系,每种高级语言都可以对应处理自己的转换翻译逻辑,从而避免转换关系之间耦合影响项目语言的切换。
[0009]一种可能的实现方式中,将中间态代码转换为目标编程语言的代码,包括:根据源代码转换的中间态代码,确定源代码对应的统一建模语言UML逻辑视图;基于源代码对应的UML逻辑视图,得到目标编程语言的代码。
[0010]应理解,目前的编程语言翻译器的中间翻译过程均为黑盒操作,翻译过程中,用户只是感知到由编程语言A的代码翻译成了编程语言B的代码。本专利技术提供的项目语言切换方法,可以将中间态代码转换为UML逻辑视图,直观展示源代码的业务逻辑,以便于用户了解源代码的业务逻辑,从而便于用户排查源代码的业务逻辑的正确性。
[0011]一种可能的实现方式中,基于源代码对应的UML逻辑视图,得到目标编程语言的代码,包括:确定目标编程语言的种类;基于目标编程语言的种类、以及预设的编程语言的种类和UML生成器之间的对应关系,确定目标编程语言的种类对应的目标UML生成器;编程语言的种类和UML生成器之间的对应关系中包括多个UML生成器,每个UML生成器用于根据UML逻辑视图生成该UML生成器对应的编程语言的种类的代码;根据源代码对应的UML逻辑视图和目标UML生成器,得到目标编程语言的代码。
[0012]第二方面,本专利技术提供一种项目语言切换装置,该装置包括:获取模块和处理模块;获取模块,用于获取源代码;处理模块,用于基于预设的转换关系将源代码转换为中间态代码;转换关系包括多种编程语言中的每一种编程语言和中间态代码所使用的编程语言之间的转换关系;将中间态代码转换为目标编程语言的代码,以完成项目语言的切换。
[0013]可选地,处理模块,具体用于确定源代码的编程语言种类;根据源代码的编程语言种类、以及预设的编程语言种类和子处理器之间的转换关系,确定源代码的编程语言种类对应的目标子处理器;编程语言种类和子处理器之间的转换关系中包括多个子处理器,每个子处理器用于表示一种编程语言和中间态代码所使用的编程语言之间的转换关系;利用目标子处理器将源代码转换为中间态代码。
[0014]可选地,处理模块,具体用于根据源代码转换的中间态代码,确定源代码对应的统一建模语言UML逻辑视图;基于源代码对应的UML逻辑视图,得到目标编程语言的代码。
[0015]可选地,处理模块,具体用于确定目标编程语言的种类;基于目标编程语言的种类、以及预设的编程语言的种类和UML生成器之间转换关系,确定目标编程语言的中类对应的目标UML生成器;编程语言的种类和UML生成器之间转换关系中包括多个UML生成器,每个UML生成器用于根据UML逻辑视图生成该UML生成器对应的编程语言的种类的代码;根据源代码对应的UML逻辑视图和目标UML生成器,得到目标编程语言的代码。
[0016]第三方面,本专利技术提供一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面所述相关方法的步骤,以实现上述第一所述的方法。
[0017]第四方面,本专利技术提供一种电子设备,该电子设备包括处理器和存储器;存储器存储有处理器可执行的指令;处理器被配置为执行指令时,使得电子设备实现上述第一方面所述的方法。
[0018]第五方面,本专利技术提供一种一种可读存储介质,该可读存储介质包括:软件指令;当软件指令在电子设备中运行时,使得电子设备实现上述第一方面所述的方法。
[0019]上述第二方面至第五方面的有益效果可以参照第一方面所述,不再赘述。
附图说明
[0020]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1为本专利技术实施例提供的项目语言切换方法的流程示意图;
[0022]图2为本专利技术实施例提供的项目语言切换方法的另一种流程示意图;
[0023]图3为本专利技术实施例提供的编译器(汇编程序)的执行示意图;
[0024]图4为本专利技术实施例提供的项目语言切换方法的又一种流程示意图;
[0025]图5为本专利技术实施例提供的项目语言切换方法的又一种流程示意图;
[0026]图6为本专利技术实施例提供的UML逻辑视图;
[0027]图7为本专利技术实施例提供的项目语言切换方法的又一种流程示意图;
[0028]图8为本专利技术实施例提供的电子设备的组成示意图;
[0029]图9为本专利技术实施例提供的项目语言切换装置的组成示意图。
具体实施方式
[0030]编程过程中通常涉及到多种编程语言之间的互相翻译。例如,将指定的编程语言A翻译成另外本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种项目语言切换方法,其特征在于,所述方法包括:获取源代码;基于预设的转换关系将源代码转换为中间态代码;所述转换关系包括多种编程语言中的每一种编程语言和所述中间态代码所使用的编程语言之间的转换关系;将所述中间态代码转换为目标编程语言的代码,以完成项目语言的切换。2.根据权利要求1所述的方法,其特征在于,所述基于预设的转换关系将源代码转换为中间态代码,包括:确定所述源代码的编程语言种类;根据所述源代码的编程语言种类、以及预设的编程语言种类和子处理器之间的对应关系,确定所述源代码的编程语言种类对应的目标子处理器;所述编程语言种类和子处理器之间的对应关系中包括多个子处理器,每个子处理器用于表示一种编程语言和所述中间态代码所使用的编程语言之间的转换关系;利用所述目标子处理器将所述源代码转换为中间态代码。3.根据权利要求1或2所述的方法,其特征在于,所述将所述中间态代码转换为目标编程语言的代码,包括:根据所述源代码转换的中间态代码,确定所述源代码对应的统一建模语言UML逻辑视图;基于所述源代码对应的UML逻辑视图,得到目标编程语言的代码。4.根据权利要求3所述的方法,其特征在于,所述基于所述源代码对应的UML逻辑视图,得到目标编程语言的代码,包括:确定目标编程语言的种类;基于所述目标编程语言的种类、以及预设的编程语言的种类和UML生成器之间的对应关系,确定所述目标编程语言的种类对应的目标UML生成器;所述编程语言的种类和UML生成器之间的对应关系中包括多个UML生成器,每个UML生成器用于根据UML逻辑视图生成该UML生成器对应的编程语言的种类的代码;根据所述源代码对应的UML逻辑视图和所述目标UML生成器,得到所述目标编程语言的代码。5.一种项目语言切换装置,其特征在于,所述装置包括:获取模块和处理模块;所述获取模块,用于获取源代码;所述处理模块,用于基于预设的转换关系将源代码转换为中间态代码;所述转换关系包括多种编程...

【专利技术属性】
技术研发人员:夏晓旭
申请(专利权)人:度小满科技北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1