用于程序语言转换的方法技术

技术编号:39500357 阅读:5 留言:0更新日期:2023-11-24 11:30
本申请提供一种用于程序语言转换的方法

【技术实现步骤摘要】
用于程序语言转换的方法、编译方法及相关设备


[0001]本申请涉及计算机
,尤其涉及一种用于程序语言转换的方法

编译方法及相关设备


技术介绍

[0002]利用
C++
语言提供的模板支持,可以在程序编译时,根据给定的模板代码和给定模板实参,编译器会将其实例化,以生成实际代码并编译到二进制程序中

[0003]在利用
Tcl
命令调用
C++
接口函数的应用场景中,需要利用包装函数,将
Tcl
命令行中输入的字符串按某种格式一一转化为
C++
接口函数的参数类型,从而对
C++
接口函数进行转调用

若输入信息有误,则需要进行相应的报错处理
。C++
接口函数调用完成后,若有返回值,则需要将其按某种格式转化为相应的字符串,作为
Tcl
命令的输出结果

[0004]然而,包装函数的编写较为繁琐,会增加程序开发人员的负担

如何简化包装函数的编写流程是亟待解决的问题


技术实现思路

[0005]有鉴于此,本申请的目的在于提出一种用于程序语言转换的方法

编译方法及相关设备

[0006]基于上述目的,本申请第一方面,提供了一种用于程序语言转换的方法,包括:获取目标函数;其中,所述目标函数包括用第一语言编写的调用函数;利用预设的解析模板,解析所述目标函数,以得到所述目标函数的信息;根据所述目标函数的信息,生成包装函数;其中,所述包装函数用于将第二语言的指令转换为对第一语言目标函数的调用

[0007]可选地,所述预设的解析模板包括第一解析模板

第二解析模板和第三解析模板;所述利用预设的解析模板,解析所述目标函数,以得到所述目标函数的信息进一步包括:利用所述第三解析模板和所述目标函数的静态信息,将所述第一解析模板和所述第二解析模板实例化,以解析所述目标函数,得到所述目标函数的信息

[0008]可选地,所述目标函数的信息包括标识符;所述根据所述目标函数的信息,生成包装函数进一步包括:响应于所述标识符的数量与预设标识符的数量一致,调用第一函数;其中,所述第一函数用于将所述第一语言支持的数据类型转换为所述第二语言支持的数据类型

[0009]可选地,所述目标函数的信息还包括参数的类型;所述方法还包括:根据所述参数的类型调用反射模板;其中,所述反射模板定义了所述第一语言的数据结构和所述第二语言的输入信息的转换规则

[0010]可选地,所述方法还包括:调用第二语言提供的注册接口在程序中注册所述包装函数

[0011]可选地,所述第一语言支持的数据类型包括整型

双精度浮点型

浮点型;所述第二语言支持的数据类型包括字符串型

[0012]可选地,所述第一语言包括
C++
语言,所述第二语言包括
Tcl
语言

[0013]本申请第二方面,提供了一种编译方法,包括:获取利用第一语言编写的源代码,所述源代码包括采用如第一方面所述的方法得到的包装函数;将所述源代码编译为目标代码

[0014]本申请第三方面,提供了一种计算机设备,包括:一个或者多个处理器

存储器;以及一个或多个程序;其中,所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据如第一方面所述的方法的指令

[0015]本申请第四方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行如第一方面所述的方法

[0016]从上面所述可以看出,本申请提供的一种用于程序语言转换的方法

编译方法及相关设备,通过预设的解析模板,解析目标函数的信息,其中,所述目标函数包括用第一语言编写的调用函数,以根据目标函数的信息生成用于将第二语言编写的指令转换为第一语言的指令,并根据第一语言的指令调用目标函数的包装函数

利用本申请提供的方法,简化了包装函数的编写流程,减轻了程序开发人员的负担

附图说明
[0017]为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图

[0018]图1示出了本申请实施例所提供的一种电子设备的结构示意图

[0019]图2示出了根据本申请实施例的仿真工具的基本结构示意图

[0020]图3示出了本申请实施例所提供的用于程序语言转换方法的流程示意图

[0021]图4示出了根据本申请实施例的示例性编译器的示意图

[0022]图5示出了根据本申请实施例的示例性编译方法的示意图

[0023]图6示出了根据本申请实施例的示例性应用场景的示意图

具体实施方式
[0024]为使本申请的目的

技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明

[0025]需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义

本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序

数量或者重要性,而只是用来区分不同的
组成部分
。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件
。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的
。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变

[0026]图1示出了本申请实施例所提供的一种电子设备
100
的结构示意图

电子设备
100
例如可以是计算机主机

该电子设备
100
可以包括:处理器
102、
存储器
104、
网络接口
106、
外围接口
108
和总线
110。
其中处理器
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种用于程序语言转换的方法,包括:获取目标函数;其中,所述目标函数包括用第一语言编写的调用函数;利用预设的解析模板,解析所述目标函数,以得到所述目标函数的信息;根据所述目标函数的信息,生成包装函数;其中,所述包装函数用于将第二语言的指令转换为对第一语言目标函数的调用
。2.
如权利要求1所述的方法,其中,所述预设的解析模板包括第一解析模板

第二解析模板和第三解析模板;所述利用预设的解析模板,解析所述目标函数,以得到所述目标函数的信息进一步包括:利用所述第三解析模板和所述目标函数的静态信息,将所述第一解析模板和所述第二解析模板实例化,以解析所述目标函数,得到所述目标函数的信息
。3.
如权利要求1所述的方法,其中,所述目标函数的信息包括标识符;所述根据所述目标函数的信息,生成包装函数进一步包括:响应于所述标识符的数量与预设标识符的数量一致,调用第一函数;其中,所述第一函数用于将所述第一语言支持的数据类型转换为所述第二语言支持的数据类型
。4.
如权利要求1所述的方法,其中,所述目标函数的信息还包括参数的类型;所述方法还包括:根据所述参数的类型调用反射模板;其中,所述反射模板定义了所述第一语言的数据结构和所述第二语言的输入信息的转换规则
...

【专利技术属性】
技术研发人员:胡浩任
申请(专利权)人:芯行纪科技有限公司
类型:发明
国别省市:

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

1