[发明专利]一种支持多语言脚本执行的方法和装置有效
申请号: | 201910034541.9 | 申请日: | 2019-01-15 |
公开(公告)号: | CN110045962B | 公开(公告)日: | 2022-08-30 |
发明(设计)人: | 熊歆 | 申请(专利权)人: | 创新先进技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京晋德允升知识产权代理有限公司 11623 | 代理人: | 万铁占 |
地址: | 开曼群岛大开曼岛乔治镇医院路*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 语言 脚本 执行 方法 装置 | ||
本发明提供一种支持多语言脚本执行的方法和装置,该方法包括:在执行脚本之前,生成上下文数据的拷贝;其中,所述脚本由至少两种语言编写,所述上下文数据被至少两个脚本语言引擎共享;根据所述脚本的语言为所述脚本匹配与所述脚本的语言相对应的所述脚本语言引擎以进行编译执行。本发明提供的支持多语言脚本执行的方法和装置,可以轻量级支持多语言集成在一个工程中,并且语言之间可以互相调用。
技术领域
本发明涉及信息技术领域,尤其涉及一种支持多语言脚本执行的方法和装置。
背景技术
目前绝大部分软件工程都只使用一种编程语言,而面对不同的应用场景,不同的编程语言各有其特性。不同的编程语言,由于运行环境不同,往往无法使用工程里面的功能,编程语言之间的调用无法互相打通。
虽然有些编程语言自带的语法糖能够大大降低代码量和维护工作,但是目前并没有一种方案可以轻量级的让一个工程支持多种编程语言。
发明内容
本发明提供一种支持多语言脚本执行的方法和装置,以解决支持包含多种语言的脚本执行的问题。
本发明提供的支持多语言脚本执行的方法,包括:
在执行脚本之前,生成上下文数据的拷贝;其中,所述脚本由至少两种语言编写,所述上下文数据被至少两个脚本语言引擎共享;
根据所述脚本的语言为所述脚本匹配与所述脚本的语言相对应的所述脚本语言引擎以进行编译执行。
进一步,本发明所述的方法,还包括:
在执行脚本之前,将所述脚本的部分逻辑打包为函数;
在对所述函数编译时,将所述函数编译生成类文件;
将所述类文件的实例缓存至所述上下文数据。
进一步,本发明所述的方法,还包括:
使用类加载器运行所述类文件;其中,每个所述类文件对应一个所述类加载器。
进一步,本发明所述的方法,根据所述脚本的语言为所述脚本匹配与所述脚本的语言相对应的所述脚本语言引擎以进行编译执行的步骤还包括:
从所述上下文数据查询获取变量;
若在所述上下文数据未查询获取到所述变量,从缓存的所述类文件的实例查询获取所述变量;
若在缓存的所述类文件的实例未查询获取到所述变量,从工程的开源框架查询获取所述变量。
进一步,本发明所述的方法,根据所述脚本的语言为所述脚本匹配与所述脚本的语言相对应的所述脚本语言引擎以进行编译执行的步骤还包括:
若在所述工程的开源框架未查询到所述变量,则通过所述上下文数据的拷贝查询所述变量。
进一步,本发明所述的方法,还包括:
在每次所述脚本执行之前,使所述上下文数据的拷贝入栈;
在每次所述脚本执行之后,使所述上下文数据的拷贝出栈。
本发明提供的支持多语言脚本执行的装置,包括:
拷贝模块,用于在执行脚本之前,生成上下文数据的拷贝;其中,所述脚本由至少两种语言编写,所述上下文数据被至少两个脚本语言引擎共享;
编译执行模块,用于根据所述脚本的语言为所述脚本匹配与所述脚本的语言相对应的所述脚本语言引擎以进行编译执行。
进一步,本发明所述的装置,还包括:
缓存模块,用于:
在执行脚本之前,将所述脚本的部分逻辑打包为函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于创新先进技术有限公司,未经创新先进技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910034541.9/2.html,转载请声明来源钻瓜专利网。