一种编程语言调用的方法及其相关设备与流程

文档序号:21817534发布日期:2020-08-11 21:30阅读:126来源:国知局
一种编程语言调用的方法及其相关设备与流程

本申请涉及计算机技术领域,尤其涉及一种编程语言调用的方法及其相关设备。



背景技术:

在计算机技术中,powerbuilder用于开发应用程序。在编程过程中,powerbuilder通常需要跨语言调用。传统的powerbuilder在跨语言调用时,需要通过组件对象模型(componentobjectmodel,com)方式调用基于其他编程语言编写的动态链接库(dynamiclinklibrary,dll),进而完成跨语言调用。

然而,在上述跨语言调用中,需要将dll注册为com组件,powerbuilder才能对其进行调用,其操作繁杂,效率低下。



技术实现要素:

本申请实施例提供了一种编程语言调用的方法及其相关设备,可以方便快捷地实现基于powerbuilder的跨语言调用,提高效率。

本申请实施例的第一方面提供了一种编程语言调用的方法,该方法包括:

调用模块根据来自powerbuilder的调用信息,其中,调用信息用于指示第一编程语言,第一编程语言为powerbuilder不能识别的语言,且为目标平台能识别的语言;

调用模块将调用信息发送至目标平台,以使得目标平台发送与调用信息对应的第一编程语言至调用模块;

调用模块将第一编程语言转换为第二编程语言,并将第二编程语言发送至powerbuilder,其中,第二编程语言为powerbuilder能识别的语言,且为目标平台不能识别的语言。

结合第一方面,在本申请实施例第一方面的第一种实现方式中,调用模块根据来自powerbuilder的调用信息之后,调用模块将调用信息发送至目标平台之前,该方法还包括:

调用模块根据调用信息,确定与第一编程语言对应的目标平台。

结合第一方面或第一方面的第一种实现方式,在本申请实施例第一方面的第三种实现方式中,目标平台为.netframework。

结合第一方面或第一方面的第一种实现方式,在本申请实施例第一方面的第四种实现方式中,目标平台为.netcore。

本申请实施例的第二方面提供了一种编程语言调用的装置,该装置包括:powerbuilder、调用模块与目标平台,powerbuilder通过调用模块与目标平台通信连接;

其中,调用模块用于:

根据来自powerbuilder的调用信息,其中,调用信息用于指示第一编程语言,第一编程语言为powerbuilder不能识别的语言,且为目标平台能识别的语言;

将调用信息发送至目标平台,以使得目标平台发送与调用信息对应的第一编程语言至调用模块;

将第一编程语言转换为第二编程语言,并将第二编程语言发送至powerbuilder,其中,第二编程语言为powerbuilder能识别的语言,且为目标平台不能识别的语言。

结合第二方面,在本申请实施例第二方面的第一种实现方式中,调用模块还用于根据调用信息,确定与第一编程语言对应的目标平台。

结合第二方面或第二方面的第一种实现方式,在本申请实施例第二方面的第三种实现方式中,目标平台为.netframework。

结合第二方面或第二方面的第一种实现方式,在本申请实施例第二方面的第四种实现方式中,目标平台为.netcore。

本申请第三方面提供了一种编程语言调用的装置,包括:

一个或多个处理器、存储器、总线系统、以及一个或多个程序,所述处理器和所述存储器通过所述总线系统相连;

其中,所述一个或多个程序被存储在所述存储器中,所述一个或多个程序包括指令,所述指令当被所述基站执行时使所述基站执行如第一方面及第一方面的任意一种实现方式所述的方法。

本申请第四方面提供了一种计算机可读存储介质,包括指令,当该指令在计算机上运行时,使得计算机执行如第一方面及第一方面的任意一种实现方式所述的方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请实施例提供了一种编程语言调用的方法及其相关设备,其中,该方法包括:调用模块根据来自powerbuilder的调用信息,其中,调用信息用于指示第一编程语言,第一编程语言为powerbuilder不能识别的语言,且为目标平台能识别的语言;调用模块将调用信息发送至目标平台,以使得目标平台发送与调用信息对应的第一编程语言至调用模块;调用模块将第一编程语言转换为第二编程语言,并将第二编程语言发送至powerbuilder,其中,第二编程语言为powerbuilder能识别的语言,且为目标平台不能识别的语言。基于本申请,可以方便快捷地实现基于powerbuilder的跨语言调用,提高效率。

附图说明

图1为本申请实施例提供的编程语言调用的装置的一个结构示意图;

图2为申请实施例提供的编程语言调用的方法的一个流程示意图;

图3为本申请实施例提供的编程语言调用的装置的另一结构示意图。

具体实施方式

本申请实施例提供了一种编程语言调用的方法及其相关设备,可以方便快捷地实现基于powerbuilder的跨语言调用,提高效率。

图1为本申请实施例提供的编程语言调用的装置的一个结构示意图,如图1所示,本申请实施例提供的编程语言调用的方法可通过该装置实现。该装置上设置有通过c++语言编写的虚拟机,且该虚拟机包含powerbuilder101、调用模块102和目标平台103,其中,powerbuilder101通过调用模块102和目标平台103进行通信连接。

图2为申请实施例提供的编程语言调用的方法的一个流程示意图,如图2所示,该方法包括:

201、调用模块根据来自powerbuilder的调用信息,其中,调用信息用于指示第一编程语言,第一编程语言为powerbuilder不能识别的语言,且为目标平台能识别的语言;

当powerbuilder需要进行跨语言调用时,可先生成调用信息并发送至调用模块。需要说明的是,调用信息用于指示第一编程语言,第一编程语言为powerbuilder不能识别的语言,且为目标平台能识别的语言。

应理解,本实施例中的编程语言通常指某种特定格式下用于编程的语言,例如,c#语言中的函数a,vb语言中的函数b,某种语言规范下(综合c#语言和vb语言)的函数c等等,均可为本实施例中的编程语言。由于powerbuilder有其自身能够识别的语言,若用户向powerbuilder输入函数a或函数b的函数名时,powerbuilder无法识别c#语言或vb语言,则需要进行跨语言调用,以将函数a或函数b转化为自身能够识别的编程语言。因此,powerbuilder可生成调用信息,该调用信息用于指示函数a或函数b,并将调用信息发送至调用模块。

202、调用模块将调用信息发送至目标平台,以使得目标平台发送与调用信息对应的第一编程语言至调用模块;

调用模块接收到调用信息后,则将调用信息发送至目标平台。由于调用信息指示第一编程语言,目标平台可将第一编程语言返回至调用模块。

在一种可能实现的方式中,调用模块根据来自powerbuilder的调用信息之后,调用模块将调用信息发送至目标平台之前,还包括:调用模块根据调用信息,确定与第一编程语言对应的目标平台。具体地,调用模块接收到调用信息后,可先对调用信息进行解析,获取与第一编程语言相关的子信息。基于该子信息,调用模块可确定从哪个目标平台中获取第一编程语言,再将调用信息发送目标平台。例如,若调用信息中的子信息指向函数c,调用模块基于该子信息可确定可从某一个目标平台获取函数c,则将该平台确定为目标平台。

在一种可能实现的方式中,该目标平台.netframework或该目标平台为.netcore。由于.netframework和.netcore为两种不同的平台(.netframework只允许在windows操作系统下运行,而.netcore可以在windows、mac、linux等操作系统下运行),因此,基于调用信息,调用模块可从这两种平台中选择一个平台作为目标平台。例如,函数c为.netframework下的函数,调用模块基于调用信息确定.netframework为目标平台后,则将调用信息发送至.netframework。.netframework解析调用信息后,确定调用模块需要函数c,则将函数c发送至调用模块。

203、调用模块将第一编程语言转换为第二编程语言,并将第二编程语言发送至powerbuilder,其中,第二编程语言为powerbuilder能识别的语言,且为目标平台不能识别的语言。

调用模块接收到来自目标平台的第一编程语言后,则将第一编程语言转换为第二编程语言,并将第二编程语言发送至powerbuilder,其中,第二编程语言为powerbuilder能识别的语言,且为目标平台不能识别的语言。需要说明的是,由于第二编程语言为powerbuilder能识别的语言,即powerbuilder自身所能识别的语言,则powerbuilder完成了跨语言调用。依旧如上述例子,当调用模块接收到函数c后,由于powerbuilder并不能识别函数c,因此,调用模块可对函数c的格式进行转换,使得转换后的函数c的格式werbuilder所能识别的格式,即转换后的函数c为powerbuilder自身所能识别的编程语言,再讲转换后的函数c发送至powerbuilder,以完成跨语言调用。

本实施例中,调用模块在接受到来自powerbuilder的调用信息后,调用模块可基于调用信息从目标平台获取第一编程语言,再将powerbuilder101无法识别的第一编程语言转换为powerbuilder101可识别的第二编程语言,最后发送至powerbuilder101,能够方便快捷地完成跨语言调用,提高效率。

以上是对本申请实施例提供的编程语言调用的方法所进行的介绍,以下将对本申请实施例提供的编程语言调用的装置进行说明,请参阅图1,该装置包括:

powerbuilder101、调用模块102与目标平台103,powerbuilder101通过调用模块102与目标平台103通信连接;

其中,调用模块102用于:

根据来自powerbuilder101的调用信息,其中,调用信息用于指示第一编程语言,第一编程语言为powerbuilder101不能识别的语言,且为目标平台103能识别的语言;

将调用信息发送至目标平台103,以使得目标平台103发送与调用信息对应的第一编程语言至调用模块102;

将第一编程语言转换为第二编程语言,并将第二编程语言发送至powerbuilder101,其中,第二编程语言为powerbuilder101能识别的语言,且为目标平台103不能识别的语言。

在一种可能实现的方式中,调用模块102还用于根据调用信息,确定与第一编程语言对应的目标平台103。

在一种可能实现的方式中,目标平台103为.netframework。

在一种可能实现的方式中,目标平台103为.netcore。

需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

图3为本申请实施例提供的编程语言调用的装置的另一结构示意图,本申请实施例提供的一种编程语言调用的装置,如图3所示,该装置包括:一个或一个以上中央处理器3001,存储器3002,输入输出接口3003,有线或无线网络接口3004,电源3005。

存储器3002可以是短暂存储或持久存储。更进一步地,中央处理器3001可以配置为与存储器3002通信,在用户面功能实体上执行存储器3002中的一系列指令操作。

本实施例中,中央处理器3001可以执行前述图1所示实施例中编程语言调用的装置所执行的操作,具体此处不再赘述。

本实施例中,中央处理器3001中的具体功能模块划分可以与前述图1所描述的第一powerbuilder、调用模块和目标平台的功能模块划分方式类似,此处不再赘述。

本申请实施例还提供了一种计算机可读存储介质,包括指令,当该指令在计算机上运行时,使得计算机执行如图2所对应的方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1