CN116009878A - 项目语言切换方法、装置、设备及存储介质 - Google Patents
项目语言切换方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116009878A CN116009878A CN202310141042.6A CN202310141042A CN116009878A CN 116009878 A CN116009878 A CN 116009878A CN 202310141042 A CN202310141042 A CN 202310141042A CN 116009878 A CN116009878 A CN 116009878A
- Authority
- CN
- China
- Prior art keywords
- programming language
- uml
- code
- target
- language
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种项目语言切换方法、装置、设备及存储介质,涉及计算机领域,该方法包括:获取源代码;基于预设的转换关系将源代码转换为中间态代码;转换关系包括多种编程语言中的每一种编程语言和中间态代码所使用的编程语言之间的转换关系;将中间态代码转换为目标编程语言的代码,以完成项目语言的切换。该方法适用于编程语言切换过程中,用于解决现有的针对的范围较为固定的翻译器局限性较大的问题。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种项目语言切换方法、装置、设备及存储介质。
背景技术
编程过程中通常涉及到多种编程语言之间的互相翻译。例如,将指定的编程语言A翻译成另外一种编程语言B。
但是,目前的编程语言翻译器针对的范围较为固定(例如只能将编程语言A翻译为编程语言B),而当前市面上的编程语言的种类已达数十种,现有的针对的范围较为固定的翻译器局限性较大。
发明内容
本发明提供一种项目语言切换方法、装置、设备及存储介质。为解决上述技术问题,本发明采用如下技术方案:
获取源代码;基于预设的转换关系将源代码转换为中间态代码;转换关系包括多种编程语言中的每一种编程语言和中间态代码所使用的编程语言之间的转换关系;将中间态代码转换为目标编程语言的代码,以完成项目语言的切换。
本发明提供的项目语言切换方法,可以基于预设的转换关系架构源代码转换为中间态代码,并将中间态代码转换为目标编程语言的代码,从而完成项目语言的切换,由于预设的转换关系包括多种编程语言中的每一种编程语言和所述中间态代码所使用的编程语言之间的转换关系,所以利用发明实施例提供的项目语言切换方法,可以实现多对多的编程语言翻译,不局限于一对一的编程语言翻译,打破了现有的针对的范围较为固定的翻译器的局限性。
一种可能的实现方式中,基于预设的转换关系将源代码转换为中间态代码,包括:确定源代码的编程语言种类;根据源代码的编程语言种类、以及预设的编程语言种类和子处理器之间的对应关系,确定源代码的编程语言种类对应的目标子处理器;编程语言种类和子处理器之间的对应关系中包括多个子处理器,每个子处理器用于表示一种编程语言和中间态代码所使用的编程语言之间的转换关系;利用目标子处理器将源代码转换为中间态代码。
应理解,若将多种转换关系集合在一起,可能导致转换关系之间耦合,影响项目语言的切换,本发明提供的项目语言切换方法,可以将每种编程语言对应的转换关系封装在各自对应的子处理器中,这样可以解耦多类型的编程语言的依赖关系,每种高级语言都可以对应处理自己的转换翻译逻辑,从而避免转换关系之间耦合影响项目语言的切换。
一种可能的实现方式中,将中间态代码转换为目标编程语言的代码,包括:根据源代码转换的中间态代码,确定源代码对应的统一建模语言UML逻辑视图;基于源代码对应的UML逻辑视图,得到目标编程语言的代码。
应理解,目前的编程语言翻译器的中间翻译过程均为黑盒操作,翻译过程中,用户只是感知到由编程语言A的代码翻译成了编程语言B的代码。本发明提供的项目语言切换方法,可以将中间态代码转换为UML逻辑视图,直观展示源代码的业务逻辑,以便于用户了解源代码的业务逻辑,从而便于用户排查源代码的业务逻辑的正确性。
一种可能的实现方式中,基于源代码对应的UML逻辑视图,得到目标编程语言的代码,包括:确定目标编程语言的种类;基于目标编程语言的种类、以及预设的编程语言的种类和UML生成器之间的对应关系,确定目标编程语言的种类对应的目标UML生成器;编程语言的种类和UML生成器之间的对应关系中包括多个UML生成器,每个UML生成器用于根据UML逻辑视图生成该UML生成器对应的编程语言的种类的代码;根据源代码对应的UML逻辑视图和目标UML生成器,得到目标编程语言的代码。
第二方面,本发明提供一种项目语言切换装置,该装置包括:获取模块和处理模块;获取模块,用于获取源代码;处理模块,用于基于预设的转换关系将源代码转换为中间态代码;转换关系包括多种编程语言中的每一种编程语言和中间态代码所使用的编程语言之间的转换关系;将中间态代码转换为目标编程语言的代码,以完成项目语言的切换。
可选地,处理模块,具体用于确定源代码的编程语言种类;根据源代码的编程语言种类、以及预设的编程语言种类和子处理器之间的转换关系,确定源代码的编程语言种类对应的目标子处理器;编程语言种类和子处理器之间的转换关系中包括多个子处理器,每个子处理器用于表示一种编程语言和中间态代码所使用的编程语言之间的转换关系;利用目标子处理器将源代码转换为中间态代码。
可选地,处理模块,具体用于根据源代码转换的中间态代码,确定源代码对应的统一建模语言UML逻辑视图;基于源代码对应的UML逻辑视图,得到目标编程语言的代码。
可选地,处理模块,具体用于确定目标编程语言的种类;基于目标编程语言的种类、以及预设的编程语言的种类和UML生成器之间转换关系,确定目标编程语言的中类对应的目标UML生成器;编程语言的种类和UML生成器之间转换关系中包括多个UML生成器,每个UML生成器用于根据UML逻辑视图生成该UML生成器对应的编程语言的种类的代码;根据源代码对应的UML逻辑视图和目标UML生成器,得到目标编程语言的代码。
第三方面,本发明提供一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面所述相关方法的步骤,以实现上述第一所述的方法。
第四方面,本发明提供一种电子设备,该电子设备包括处理器和存储器;存储器存储有处理器可执行的指令;处理器被配置为执行指令时,使得电子设备实现上述第一方面所述的方法。
第五方面,本发明提供一种一种可读存储介质,该可读存储介质包括:软件指令;当软件指令在电子设备中运行时,使得电子设备实现上述第一方面所述的方法。
上述第二方面至第五方面的有益效果可以参照第一方面所述,不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的项目语言切换方法的流程示意图;
图2为本发明实施例提供的项目语言切换方法的另一种流程示意图;
图3为本发明实施例提供的编译器(汇编程序)的执行示意图;
图4为本发明实施例提供的项目语言切换方法的又一种流程示意图;
图5为本发明实施例提供的项目语言切换方法的又一种流程示意图;
图6为本发明实施例提供的UML逻辑视图;
图7为本发明实施例提供的项目语言切换方法的又一种流程示意图;
图8为本发明实施例提供的电子设备的组成示意图;
图9为本发明实施例提供的项目语言切换装置的组成示意图。
具体实施方式
编程过程中通常涉及到多种编程语言之间的互相翻译。例如,将指定的编程语言A翻译成另外一种编程语言B。
但是,目前的编程语言翻译器针对的范围较为固定(例如只能将编程语言A翻译为编程语言B),而当前市面上的编程语言的种类已达数十种,现有的针对的范围较为固定的翻译器局限性较大。
基于此,本发明实施例提供一种项目语言切换方法、装置、设备及存储介质,可以利用包括多种编程语言中的每一种编程语言和中间态代码所使用的编程语言之间的转换关系,依次将源代码转换为中间态代码和目标编程语言的代码,不局限于一对一的编程语言翻译,打破了现有的针对的范围较为固定的翻译器的局限性。
需要说明的是,本发明实施例提供的项目语言切换方法的执行主体可以是项目语言切换装置,该项目语言切换装置可以是计算机或服务器等具有计算处理功能的电子设备;或者,该项目语言切换装置也可以是上述电子设备中安装的提供项目语言切换功能的应用程序(application,APP);再或者,该项目语言切换装置还可以是上述电子设备中的处理器;又或者,该项目语言切换装置又可以是上述电子设备中提供项目语言切换功能的功能模块等。本发明实施例对此不作限制。
为了描述简单,以下统一以项目语言切换装置为上述电子设备为例对本发明实施例提供的项目语言切换方法进行介绍。
实施方式一:
图1为本发明实施例提供的项目语言切换方法的流程示意图。如图1所示,该方法包括S101至S103。
S101、电子设备获取源代码。
例如,电子设备可以获取用户输入的源代码,或者接收其他设备通过有线或无线网络或者中间存储介质发送的源代码等。本发明实施例对此不作限制。
S102、电子设备基于预设的转换关系将源代码转换为中间态代码。
其中,电子设备中预设的转换关系包括多种编程语言中的每一种编程语言和中间态代码所使用的编程语言之间的转换关系。
示例性地,电子设备中预设的转换关系可以如下述表1所示:
表1
如表1所示,该表可以包括待转换的代码所是使用的编程语言项、中间态代码所使用的编程语言项、及转换关系项。其中,待转换的代码所使用的编程语言项可以包括编程语言1、编程语言2、以及编程语言3。中间态代码所使用的编程语言项包括编程语言4。转换关系项包括转换关系1、转换关系2、以及转换关系3。编程语言1、编程语言4、以及转换关系1之间具有对应关系。编程语言2、编程语言4、以及转换关系2之间具有对应关系。编程语言3、编程语言4、以及转换关系3之间具有对应关系。
一种可能的实现方式中,电子设备可以将源代码的编程语言种类作为索引,遍历预设的转换关系,确定源代码的编程语言种类对应的目标转换关系,并基于目标转换关系将源代码转换为中间态代码。
S103、电子设备将中间态代码转换为目标编程语言的代码,以完成项目语言的切换。
S103的具体实现方式可以参照下述实施例三和实施例四中所述,此处不再赘述。
本发明实施例提供的项目语言切换方法,可以基于预设的转换关系架构源代码转换为中间态代码,并将中间态代码转换为目标编程语言的代码,从而完成项目语言的切换,由于预设的转换关系包括多种编程语言中的每一种编程语言和所述中间态代码所使用的编程语言之间的转换关系,所以利用发明实施例提供的项目语言切换方法,可以实现多对多的编程语言翻译,不局限于一对一的编程语言翻译,打破了现有的针对的范围较为固定的翻译器的局限性。
实施方式二:
图2为本发明实施例提供的项目语言切换方法的另一种流程示意图。如图2所示,上述S102可以具体包括:S1021至S1023。
S1021、电子设备确定源代码的编程语言种类。
例如,电子设备可以获取用户选择的源代码的编程语言种类,或者,基于识别到的源代码的编程语言的特征和预设的编程语言的特征和编程语言的种类之间的对应关系确定源代码的编程语言种类。本发明实施例对此不作限制。
S1022、电子设备根据源代码的编程语言种类、以及预设的编程语言种类和子处理器之间的对应关系,确定源代码的编程语言种类对应的目标子处理器。
其中,编程语言种类和子处理器之间的转换关系中包括多个子处理器,每个子处理器用于表示一种编程语言和中间态代码所使用的编程语言之间的转换关系。
示例性地,同样以上述表1所示的转换关系为例,则编程语言种类和子处理器之间的对应关系可以如下述表2所示:
表2
如表2所示,在上述表1的基础上,该表还可以包括子处理器项。其中,子处理器向可以包括处理器1、处理器2、以及处理器3。编程语言1、编程语言4、转换关系1、处理器1之间具有对应关系,也即处理器1中可以包括将编程语言1的代码转换为编程语言4的代码的转换关系1。类似地,处理器2中可以包括将编程语言2的代码转换为编程语言4的代码的转换关系2,处理器3中可以包括将编程语言语言3的代码转换为编程语言4的代码的转换关系3。
例如,电子设备可以将源代码的编程语言的种类作为索引,遍历上述编程语言种类和子处理器之间的对应关系,确定编程语言种类和子处理器之间的对应关系中,源代码的编程语言的种类所对应的子处理器作为目标子处理器。
可选地,子处理器可以具体实现为编译器。编译器是将一种语言(通常为高级语言)翻译程另一种语言(通常为低级语言)的汇编程序。
示例性地,图3为本发明实施例提供的编译器(汇编程序)的执行示意图。如图3所示,高级语言需要通过编译器(汇编程序)依次转换为汇编语言和机器语言之后,将机器语言输入给中央处理器(central processing unit,CPU)执行。
可选地,中间态代码所使用的编程语言可以是上述汇编语言或者机器语言等。本发明实施例对此不作限制。
S1023、电子设备利用目标子处理器将源代码转换为中间态代码。
应理解,若将多种转换关系集合在一起,可能导致转换关系之间耦合,影响项目语言的切换,本发明实施例提供的项目语言切换方法,可以将每种编程语言对应的转换关系封装在各自对应的子处理器中,这样可以解耦多类型的编程语言的依赖关系,每种高级语言都可以对应处理自己的转换翻译逻辑,从而避免转换关系之间耦合影响项目语言的切换。
实施方式三:
图4为本发明实施例提供的项目语言切换方法的又一种流程示意图。如图4所示,在上述图2所示实施例的基础上,上述S103可以具体包括:S1031和S1032。
S1031、电子设备基于目标编程语言、以及预设的编程语言和反编译器之间的对应关系,确定目标反编译器。
其中,编程语言和反编译器之间的对应关系可以包括多种编程语言和多种反编译器,该多种编程语言和多种反编译器一一对应。
例如,电子设备可以将编程语言和反编译器之间的对应关系中,目标编程语言对应的反编译器作为目标反编译器。
S1032、电子设备利用目标反编译器对源代码转换的中间代码进行反编译,得到目标编程语言的代码。
S1032可以参照相关技术中所述,不再赘述。
实施方式四:
图5为本发明实施例提供的项目语言切换方法的又一种流程示意图。如图5所示,在上述图1所示实施例的基础上,上述S103可以具体包括:S1033和S1034。
S1033、电子设备根据源代码转换的中间态代码,确定源代码对应的统一建模语言(unified modeling language,UML)逻辑视图。
S1033可以参照相关技术中所述,不再赘述。
示例性地,参见图6,图6为本发明实施例提供的UML逻辑视图,UML逻辑视图中展示的逻辑关系可以具体如图6所示。
S1034、电子设备基于源代码对应的UML逻辑视图,得到目标编程语言的代码。
一种可能的实现方式中,上述S1034可以具体包括以下几个步骤:
步骤1、电子设备确定目标编程语言的种类。
例如,电子设备可以获取用户输入的目标编程语言的种类。该目标编程语言的种类可以是JAVA、Golang、C、C++、PHP、或者Python等。本发明实施例对此不作限制。
步骤2、电子设备基于目标编程语言的种类、以及预设的编程语言的种类和UML生成器之间的对应关系,确定目标编程语言的种类对应的目标UML生成器。
其中,编程语言的种类和UML生成器之间的对应关系中包括多个UML生成器,每个UML生成器用于根据UML逻辑视图生成该UML生成器对应的编程语言的种类的代码。
示例性地,编程语言的种类和UML生成器之间的对应关系可以如下述表3所示:
表3
目标编程语言的种类 | UML生成器 |
编程语言5 | UML生成器1 |
编程语言6 | UML生成器2 |
编程语言7 | UML生成器3 |
如表3所示,该表可以包括目标编程语言的种类项和UML生成器项。其中,目标编程语言的种类项可以包括编程语言5、编程语言6、以及编程语言7。UML生成器项可以包括UML生成器1、UML生成器2、以及UML生成器3。编程语言5和UML生成器1之间具有对应关系,也即UML生成器1可以将UML逻辑视图转换为编程语言5的代码。类似地,编程语言6和UML生成器2之间具有对应关系,编程语言7和UML生成器3之间具有对应关系。
例如,电子设备可以将目标标称语言的种类对应的UML生成器作为目标UML生成器。
步骤3、电子设备根据源代码对应的UML逻辑视图和目标UML生成器,得到目标编程语言的代码。
步骤3可以参照相关技术中所述,不再赘述。
应理解,目前的编程语言翻译器的中间翻译过程均为黑盒操作,翻译过程中,用户只是感知到由编程语言A的代码翻译成了编程语言B的代码。本发明实施例提供的项目语言切换方法,可以将中间态代码转换为UML逻辑视图,直观展示源代码的业务逻辑,以便于用户了解源代码的业务逻辑,从而便于用户排查源代码的业务逻辑的正确性。
需要说明的是,上述S1033和S1034以图1所示的实施例的基础上为例进行了介绍,上述S1033和S1034还可以具体应用在以图2所示的实施例为基础的S103处,具体过程和有益效果可以参照S1033和S1034所述,不再赘述。
实施方式五:
基于上述实施方式一、二、以及四的理解,图7为本发明实施例提供的项目语言切换方法的又一种流程示意图。如图7所示,该方法可以包括:S201至S204。
S201、电子设备获取源代码。
S201可以参照上述S101所述,不再赘述。
S202、电子设备根据源代码生成中间态代码。
S202可以参照上述S1021至S1023处所述,不再赘述。
S203、电子设备将中间态代码转换为UML逻辑视图。
S203可以参照上述S1033处所述,不再赘述。
S204、电子设备将UML逻辑视图转换为指定编程语言。
S204可以参照上述S1034处所述,不再赘述。
上述主要从方法的角度对本发明实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术目标应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术目标可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在示例性的实施例中,本发明实施例还提供一种电子设备。图8为本发明实施例提供的电子设备的组成示意图。如图8所示,该电子设备可以包括:处理器10、存储器20、通信线路30、通信接口40以及输入输出接口50。
其中,处理器10、存储器20、通信接口40以及输入输出接口50之间可以通过通信线路30连接。
处理器10,用于执行存储器20中存储的指令,以实现本发明实施例提供的项目语言切换方法。处理器10可以是CPU、通用处理器网络处理器(network processor,NP)、数字信号处理器(digital signal processing,DSP)、微处理器、微控制器(micro controlunit,MCU)/单片微型计算机(single chip microcomputer)/单片机、可编程逻辑器件(programmable logic device,PLD)或它们的任意组合。处理器10还可以是其它任意具有处理功能的装置,例如电路、器件或软件模块,本发明实施例对此不作限制。在一种示例中,处理器10可以包括一个或多个CPU,例如图8中的CPU0和CPU1。作为一种可选的实现方式,电子设备可以包括多个处理器,例如,除处理器10之外,还可以包括处理器60(图8中以虚线为例示出)。
存储器20,用于存储指令。例如,指令可以是计算机程序。可选地,存储器20可以是只读存储器(read-only memory,ROM)或可存储静态信息和/或指令的其他类型的静态存储设备,也可以是存取存储器(random access memory,RAM)或者可存储信息和/或指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备等,本发明实施例对此不作限制。
需要说明的是,存储器20可以独立于处理器10存在,也可以和处理器10集成在一起。存储器20可以位于电子设备内,也可以位于电子设备外,本发明实施例对此不作限制。
通信线路30,用于在电子设备所包括的各部件之间传送信息。
通信接口40,用于与其他设备或其它通信网络进行通信。该其它通信网络可以为以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。通信接口40可以是模块、电路、收发器或者任何能够实现通信的装置。
输入输出接口50,用于实现用户和电子设备之间的人机交互。例如实现用户和电子设备之间的动作交互、文字交互或者语音交互等。
示例性地,输入输出接口50可以是键盘、鼠标、显示屏、或者触控显示屏等。通过键盘、鼠标、显示屏、或者触控显示屏等可以实现用户和电子设备之间的动作交互或文字交互。
需要说明的是,图8中示出的结构并不构成对电子设备的限定,除图8所示的部件之外,电子设备可以包括比图示更多或更少的部件,或者某些部件的组合,或者不同的部件布置。
在示例性的实施例中,本发明实施例还提供一种项目语言切换装置,图9为本发明实施例提供的项目语言切换装置的组成示意图。如图9所示,该装置包括:获取模块901和处理模块902。
获取模块901,用于获取源代码。
处理模块902,用于基于预设的转换关系将源代码转换为中间态代码;转换关系包括多种编程语言中的每一种编程语言和中间态代码所使用的编程语言之间的转换关系;将中间态代码转换为目标编程语言的代码,以完成项目语言的切换。
一些可能的实施例中,处理模块902,具体用于确定源代码的编程语言种类;根据源代码的编程语言种类、以及预设的编程语言种类和子处理器之间的转换关系,确定源代码的编程语言种类对应的目标子处理器;编程语言种类和子处理器之间的转换关系中包括多个子处理器,每个子处理器用于表示一种编程语言和中间态代码所使用的编程语言之间的转换关系;利用目标子处理器将源代码转换为中间态代码。
另一些可能的实施例中,处理模块902,具体用于根据源代码转换的中间态代码,确定源代码对应的统一建模语言UML逻辑视图;基于源代码对应的UML逻辑视图,得到目标编程语言的代码。
又一些可能的实施例中,处理模块902,具体用于确定目标编程语言的种类;基于目标编程语言的种类、以及预设的编程语言的种类和UML生成器之间转换关系,确定目标编程语言的中类对应的目标UML生成器;编程语言的种类和UML生成器之间转换关系中包括多个UML生成器,每个UML生成器用于根据UML逻辑视图生成该UML生成器对应的编程语言的种类的代码;根据源代码对应的UML逻辑视图和目标UML生成器,得到目标编程语言的代码。
需要说明的是,图9中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,还可以将两个或两个以上的功能集成在一个处理模块中。本发明实施例对此不作限制。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
在示例性的实施例中,本发明实施例还提供一种可读存储介质,包括:软件指令,当其在电子设备上运行时,使得电子设备执行上述实施例提供的任意一种方法。
在示例性的实施例中,本发明实施例还提供一种包含计算机执行指令的计算机程序产品,当其在电子设备上运行时,使得电子设备执行上述实施例提供的任意一种方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机执行指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机执行指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机执行指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”
(Comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种项目语言切换方法,其特征在于,所述方法包括:
获取源代码;
基于预设的转换关系将源代码转换为中间态代码;所述转换关系包括多种编程语言中的每一种编程语言和所述中间态代码所使用的编程语言之间的转换关系;
将所述中间态代码转换为目标编程语言的代码,以完成项目语言的切换。
2.根据权利要求1所述的方法,其特征在于,所述基于预设的转换关系将源代码转换为中间态代码,包括:
确定所述源代码的编程语言种类;
根据所述源代码的编程语言种类、以及预设的编程语言种类和子处理器之间的对应关系,确定所述源代码的编程语言种类对应的目标子处理器;所述编程语言种类和子处理器之间的对应关系中包括多个子处理器,每个子处理器用于表示一种编程语言和所述中间态代码所使用的编程语言之间的转换关系;
利用所述目标子处理器将所述源代码转换为中间态代码。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述中间态代码转换为目标编程语言的代码,包括:
根据所述源代码转换的中间态代码,确定所述源代码对应的统一建模语言UML逻辑视图;
基于所述源代码对应的UML逻辑视图,得到目标编程语言的代码。
4.根据权利要求3所述的方法,其特征在于,所述基于所述源代码对应的UML逻辑视图,得到目标编程语言的代码,包括:
确定目标编程语言的种类;
基于所述目标编程语言的种类、以及预设的编程语言的种类和UML生成器之间的对应关系,确定所述目标编程语言的种类对应的目标UML生成器;所述编程语言的种类和UML生成器之间的对应关系中包括多个UML生成器,每个UML生成器用于根据UML逻辑视图生成该UML生成器对应的编程语言的种类的代码;
根据所述源代码对应的UML逻辑视图和所述目标UML生成器,得到所述目标编程语言的代码。
5.一种项目语言切换装置,其特征在于,所述装置包括:获取模块和处理模块;
所述获取模块,用于获取源代码;
所述处理模块,用于基于预设的转换关系将源代码转换为中间态代码;所述转换关系包括多种编程语言中的每一种编程语言和所述中间态代码所使用的编程语言之间的转换关系;将所述中间态代码转换为目标编程语言的代码,以完成项目语言的切换。
6.根据权利要求5所述的装置,其特征在于,所述处理模块,具体用于确定所述源代码的编程语言种类;根据所述源代码的编程语言种类、以及预设的编程语言种类和子处理器之间的转换关系,确定所述源代码的编程语言种类对应的目标子处理器;所述编程语言种类和子处理器之间的转换关系中包括多个子处理器,每个子处理器用于表示一种编程语言和所述中间态代码所使用的编程语言之间的转换关系;利用所述目标子处理器将所述源代码转换为中间态代码。
7.根据权利要求5或6所述的装置,其特征在于,所述处理模块,具体用于根据所述源代码转换的中间态代码,确定所述源代码对应的统一建模语言UML逻辑视图;基于所述源代码对应的UML逻辑视图,得到目标编程语言的代码。
8.根据权利要求7所述的装置,其特征在于,所述处理模块,具体用于确定目标编程语言的种类;基于所述目标编程语言的种类、以及预设的编程语言的种类和UML生成器之间转换关系,确定所述目标编程语言的中类对应的目标UML生成器;所述编程语言的种类和UML生成器之间转换关系中包括多个UML生成器,每个UML生成器用于根据UML逻辑视图生成该UML生成器对应的编程语言的种类的代码;根据所述源代码对应的UML逻辑视图和所述目标UML生成器,得到所述目标编程语言的代码。
9.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;
所述存储器中存储有所述处理器可执行的指令;
所述处理器被配置为执行所述指令时,使得所述电子设备实现如权利要求1-4任一项所述的方法。
10.一种可读存储介质,其特征在于,所述可读存储介质包括:软件指令;
当所述软件指令在电子设备中运行时,使得所述电子设备实现如权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310141042.6A CN116009878A (zh) | 2023-02-16 | 2023-02-16 | 项目语言切换方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310141042.6A CN116009878A (zh) | 2023-02-16 | 2023-02-16 | 项目语言切换方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116009878A true CN116009878A (zh) | 2023-04-25 |
Family
ID=86037501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310141042.6A Pending CN116009878A (zh) | 2023-02-16 | 2023-02-16 | 项目语言切换方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116009878A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117406965A (zh) * | 2023-10-26 | 2024-01-16 | 苏州爱医斯坦智能科技有限公司 | 人工智能模型的可视化输出方法、装置、设备及介质 |
-
2023
- 2023-02-16 CN CN202310141042.6A patent/CN116009878A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117406965A (zh) * | 2023-10-26 | 2024-01-16 | 苏州爱医斯坦智能科技有限公司 | 人工智能模型的可视化输出方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825488A (zh) | 一种业务处理方法、装置及电子设备和存储介质 | |
CA3050159C (en) | Artificial intelligence (ai) based automatic rule generation | |
CN109062952A (zh) | 一种数据查询方法、装置及电子设备 | |
EP2827244A1 (en) | Extension mechanism for scripting language compiler | |
US10613844B2 (en) | Using comments of a program to provide optimizations | |
CN112711581A (zh) | 医疗数据校验方法、装置、电子设备及存储介质 | |
US10884713B2 (en) | Transformations of a user-interface modality of an application | |
CN111125064B (zh) | 一种生成数据库模式定义语句的方法和装置 | |
CN110059456A (zh) | 代码保护方法、代码保护装置、存储介质与电子设备 | |
US10248535B2 (en) | On-demand automated locale seed generation and verification | |
CN116009878A (zh) | 项目语言切换方法、装置、设备及存储介质 | |
Bergmayr et al. | Cloud modeling languages by example | |
US20200302350A1 (en) | Natural language processing based business domain modeling | |
CN112558984A (zh) | 代码编译的方法、装置、电子设备以及服务器 | |
CN113268260A (zh) | 用于web前端的路由方法及装置 | |
CN111880785A (zh) | 程序代码转换方法、装置,电子设备 | |
US20220391529A1 (en) | Searching, matching, and masking of composite formats | |
CN106372152B (zh) | 一种在线表单开发系统 | |
CN109408057B (zh) | 自动生成代码的方法、装置、介质和计算设备 | |
US11182272B2 (en) | Application state monitoring | |
CN115834688A (zh) | 通信中间件、通信方法、电子设备及存储介质 | |
US11922129B2 (en) | Causal knowledge identification and extraction | |
CN111611004B (zh) | 使用基于枚举模式的注释进行程序合成 | |
CN109614104B (zh) | 基于模板预处理添加新语意结构的方法、装置及电子设备 | |
CN115827140B (zh) | 可视化大屏的生成方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |