不同语言之间的对接转换方法、语言接口系统及程序运行方法与流程
【】本发明涉及跨语言编程接口,特别涉及一种不同语言之间的对接转换方法、语言接口系统、计算机设备和介质。
背景技术
0、 背景技术:
1、tcl(tool command language)是一种动态解释型脚本语言,其核心运行环境为命令行交互界面。用户可通过交互界面输入特定格式的文本命令,逐行执行解析、调用功能、自动化控制等操作。c++语言是一个编译型的高级语言,因其高性能和系统级控制能力,常被用于核心算法或底层模块开发。为实现两者协同,开发者需构建c++与tcl的接口层,使tcl脚本能够直接调用c++函数或类,同时允许c++代码动态执行tcl指令。
2、现有的方法通常是采用手动封装tcl扩展库,该方法开发者需要逐一手工注册c++函数,并处理类型转换与错误处理。每个c++函数均需重复上述参数校验、解析与注册流程;若函数参数变动,需同步修改相关代码非常繁琐。现有的另一种方法是利用swig(simplified wrapper and interface generator)工具自动生成c++到tcl的绑定代码,而swig无法自动关联字符串与c++的枚举值,需开发者编写字符串到整数的转换逻辑,具有两个痛点,第一个痛点是手动编码或复杂配置耗时,难以快速迭代,第二个痛点是维护过程时易引发兼容性问题。也即现有的方法无法便捷地将c++语言与tcl语言进行对接转换。
技术实现思路
0、 技术实现要素:
1、为了寻求一种能够便捷地将c++语言与tcl语言进行相互对接转换的方法,本发明提供一种不同语言之间的对接转换方法、语言接口系统、计算机设备和介质。
2、本发明为解决上述技术问题,提供如下的技术方案:一种不同语言之间的对接转换方法,用于将c++语言与t c l语言进行对接转换,包括以下步骤:
3、设定t cl语言为第一语言,对第一语言的不同部分进行定义,以将第一语言分成第一语言命令、第一语言选项和/或参数和第一语言返回值三个部分;
4、设定c++语言为第二语言,对第二语言的不同部分进行定义,以将第二语言分成第二语言函数过程、第二语言变量赋值和第二语言运行结果三个部分;
5、建立由第一语言命令至第二语言函数过程的第一映射关系;
6、建立由第一语言选项和/或参数至第二语言变量赋值的第二映射关系;
7、建立由第二语言运行结果至第一语言返回值的第三映射关系;
8、将第一映射关系、第二映射关系、第三映射关系输入至语言接口系统进行编译;将新的t cl命令输入至编译后的语言接口系统进行t cl语言与c++语言的对接转换。
9、优选地,第一语言命令为t c l命令的名称,第二语言函数过程为c++语言中函数的整个过程,当建立第一映射关系后,输入对应的t cl命令,语言接口系统将自动调用c++语言中对应的函数。
10、优选地,当建立第二映射关系后,选项和/或参数可以设置为整数、浮点数或字符串。
11、优选地,建立第二映射关系之后还包括:
12、增加设置第一语言的第四部分,第四部分为第一语言字符串;
13、增加设置第二语言的第四部分,第四部分为第二语言枚举量;
14、建立由第一语言字符串至第二语言枚举量的第四映射关系;
15、其中,当建立第四映射关系后,选项和/或参数可以设置为整数、浮点数、字符串或枚举量。
16、优选地,第一映射关系、第二映射关系、第三映射关系和第四映射关系具体为四个不同的程序构造,使用上述转换方法能够快速定义这四种映射关系。
17、优选地,完成c++语言与t c l语言的对接转换后还包括:
18、若开发者提供建立新的自定义t c l命令,新的自定义t c l命令经过语言接口系统转换到c++语言分析后获得c++语言的运行结果,再将运行结果通过语言接口返回t c l,并在t c l语言的输入界面获得返回值。
19、本发明为解决上述技术问题,提供又一技术方案如下:一种语言接口系统,应用于上述的不同语言之间的对接转换方法,所述语言接口系统包括相互连接的显示模块和处理模块,所述处理模块包括依次连接的t c l命令解释器、命令注册模块、命令管理模块、参数解析模块;
20、当第一映射关系、第二映射关系、第三映射关系使用本专利所发明的方案对接至语言接口系统后,与所述命令注册模块和命令管理模块共同生成编译后的可执行程序;
21、当将处理模块与显示模块共同编译后,可以在显示模块提供t c l语言的输入界面,当在输入界面上输入t c l命令时,所述参数解析模块对所述输入的t c l命令进行解析以转化为c++语言进行运行。
22、优选地,所述命令管理模块包括执行命令运行管理模块、注册命名选项模块、注册位置参数模块和设置命令结果模块,所述执行命令运行管理模块与所述命令注册模块连接,用于实现第一映射关系的建立,注册命名选项模块和注册位置参数模块用于实现第二映射关系和第四映射关系的建立,所述设置命令结果模块用于实现第三映射关系的建立。
23、本发明为解决上述技术问题,提供又一技术方案如下:一种计算机可读存储介质,其中,所述计算机可读存储介质中存储有计算机指令,所述计算机指令用于使所述计算机执行根据上述的不同语言之间的对接转换方法。
24、本发明为解决上述技术问题,提供又一技术方案如下:一种计算机设备,应用于上述不同语言之间的对接转换方法,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行上述计算机程序以实现所述不同语言之间的对接转换方法。
25、与现有技术相比,本发明所提供的一种不同语言之间的对接转换方法、语言接口系统、计算机设备和介质,具有如下的有益效果:
26、本发明实施例提供的不同语言之间的对接转换方法包括以下步骤:设定t c l语言为第一语言,对第一语言的不同部分进行定义,以将第一语言分成第一语言命令、第一语言选项和/或参数和第一语言返回值三个部分;设定c++语言为第二语言,对第二语言的不同部分进行定义,以将第二语言分成第二语言函数过程、第二语言变量赋值和第二语言运行结果三个部分;建立由第一语言命令至第二语言函数过程的第一映射关系;建立由第一语言选项和/或参数至第二语言变量赋值的第二映射关系;建立由第二语言运行结果至第一语言返回值的第三映射关系;将第一映射关系、第二映射关系、第三映射关系输入至语言接口系统进行编译,将新的t c l命令输入至编译后的语言接口系统进行t c l语言与c++语言的对接转换。本实施例通过将t c l命令拆解为命令、参数和/或选项、返回值三大模块,并与c++的函数过程、变量赋值、运行结果建立映射关系,实现了两种语言的结构化对接。开发者只需定义模块间的对应规则,系统便捷自动完成语义翻译和类型转换。
1.一种不同语言之间的对接转换方法,用于将c++语言与t c l语言进行对接转换,其特征在于:不同语言之间的对接转换方法包括以下步骤:
2.如权利要求1所述的不同语言之间的对接转换方法,其特征在于:
3.如权利要求1所述的不同语言之间的对接转换方法,其特征在于:当建立第二映射关系后,选项和/或参数可以设置为整数、浮点数或字符串。
4.如权利要求1所述的不同语言之间的对接转换方法,其特征在于:建立第二映射关系之后还包括:
5.如权利要求1所述的不同语言之间的对接转换方法,其特征在于:第一映射关系、第二映射关系、第三映射关系和第四映射关系分别为四个不同的程序构造。
6.如权利要求1所述的不同语言之间的对接转换方法,其特征在于:完成c++语言与t cl语言的对接转换后还包括:
7.一种语言接口系统,应用于如权利要求1-6中任意一项所述的不同语言之间的对接转换方法,其特征在于:所述语言接口系统包括相互连接的显示模块和处理模块,所述处理模块包括依次连接的t c l命令解释器、命令注册模块、命令管理模块、参数解析模块;
8.如权利要求7所述的语言接口系统,其特征在于:
9.一种计算机可读存储介质,其中,所述计算机可读存储介质中存储有计算机指令,所述计算机指令用于使所述计算机执行根据权利要求1~6中任一项所述的不同语言之间的对接转换方法。
10.一种计算机设备,应用于如权利要求1~6中任一项所述不同语言之间的对接转换方法,其特征在于:包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行上述计算机程序以实现所述不同语言之间的对接转换方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com