代码运行方法、装置、电子设备及存储介质与流程
- 国知局
- 2024-07-31 23:20:11
本发明涉及计算机应用,尤其涉及一种代码运行方法、装置、电子设备及存储介质。
背景技术:
1、随着web技术的发展,浏览器的功能和性能得到了极大的提升。用户对于浏览器的在线应用的需求也越来越高,目前常用且简洁易学的编程语言包括python、c++以及java等,因此,通常有通过浏览器在线运行python、c++或java等代码的需求,但浏览器无法直接支持运行上述编程语言(python、c++或java等)所编译的代码。
2、相关技术中,实现浏览器运行python、c++或java等代码的方法包括:1、将解释器或虚拟机嵌入到浏览器网页中,通过javascript来调用执行python代码,但代码会暴露给用户,代码运行的安全性较差,且此种方法不适用于c++或java等代码,通用性较差。2、通过安装相关插件的方式,实现浏览器运行c++或java等代码,但通过安装相关插件运行代码,存在代码运行的安全性和效率较低的问题,且此种方法只支持部分主流浏览器,浏览器兼容性略差。因此,目前缺乏一种通过浏览器在线运行基于浏览器不支持的编译语言编译的代码,并保证代码运行安全性、通用性、效率以及浏览器兼容性的方法。
技术实现思路
1、本发明提供了一种代码运行方法、装置、电子设备及存储介质,以解决目前缺乏一种通过浏览器在线运行基于浏览器不支持的编译语言编译的代码,并保证代码运行安全性、通用性、效率以及浏览器兼容性的方法的技术问题。
2、根据本发明的一方面,提供了一种代码运行方法,其中,该方法包括:
3、获取基于第一编译语言编译的待运行于目标浏览器的目标代码,并通过目标编译工具对所述目标代码进行编译,确定所述目标代码对应的目标格式的编译字节码,其中,所述目标格式为目标虚拟机支持的代码格式,所述目标虚拟机运行在所述目标浏览器中;
4、通过目标浏览器加载所述编译字节码,并通过在所述目标浏览器中运行的目标虚拟机运行所述编译字节码,得到所述目标代码的代码运行结果,以使所述目标浏览器获得所述目标运行结果。
5、根据本发明的另一方面,提供了一种代码运行装置,其中,该装置包括:
6、代码编译模块,用于获取基于第一编译语言编译的待运行于目标浏览器的目标代码,并通过目标编译工具对所述目标代码进行编译,确定所述目标代码对应的目标格式的编译字节码,其中,所述目标格式为目标虚拟机支持的代码格式,所述目标虚拟机运行在所述目标浏览器中;
7、代码运行模块,用于通过目标浏览器加载所述编译字节码,并通过在所述目标浏览器中运行的目标虚拟机运行所述编译字节码,得到所述目标代码的代码运行结果,以使所述目标浏览器获得所述目标运行结果。
8、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
9、至少一个处理器;以及
10、与所述至少一个处理器通信连接的存储器;其中,
11、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的代码运行方法。
12、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的代码运行方法。
13、本发明实施例的技术方案,通过获取基于第一编译语言编译的待运行于目标浏览器的目标代码,并通过目标编译工具对所述目标代码进行编译,确定所述目标代码对应的目标格式的编译字节码,其中,所述目标格式为目标虚拟机支持的代码格式,所述目标虚拟机运行在所述目标浏览器中;通过目标浏览器加载所述编译字节码,并通过在所述目标浏览器中运行的目标虚拟机运行所述编译字节码,得到所述目标代码的代码运行结果,以使所述目标浏览器获得所述目标运行结果。实现了在浏览器中在线运行基于浏览器不支持的编译语言编译的代码并实现代码功能的效果,本申请避免了传统的浏览器运行代码所存在的代码暴露导致的安全性差以及只支持个别浏览器所导致的兼容性差的技术问题,本申请在通过浏览器运行目标代码过程中不会将代码暴露给用户,提高了代码运行的安全性,且本申请所适用的编译语言和浏览器十分广泛,提高了代码运行的通用性和兼容性,本申请无需安装相关插件,提高了代码运行的效率。
14、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
技术特征:1.一种代码运行方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述目标虚拟机通过所述目标浏览器的目标接口与所述目标浏览器进行交互,所述目标接口包括支持第二编译语言的应用程序接口和/或文档对象模型。
3.根据权利要求1所述的方法,其特征在于,在所述获取基于第一编译语言编译的待运行于目标浏览器的目标代码之后,还包括:
4.根据权利要求1所述的方法,其特征在于,所述目标虚拟机包括webassembly虚拟机,所述目标格式包括webassembly,所述第一编译语言包括python、c++或java。
5.根据权利要求2所述的方法,其特征在于,所述通过在所述目标浏览器中运行的目标虚拟机运行所述编译字节码,得到所述目标代码的代码运行结果,包括:
6.根据权利要求1所述的方法,其特征在于,还包括:
7.根据权利要求1所述的方法,其特征在于,还包括:
8.一种代码运行装置,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的代码运行方法。
技术总结本发明公开了一种代码运行方法、装置、电子设备及存储介质。其中,所述方法包括:获取基于第一编译语言编译的待运行于目标浏览器的目标代码,并通过目标编译工具对目标代码进行编译,确定目标代码对应的目标格式的编译字节码,其中,目标格式为目标虚拟机支持的代码格式,目标虚拟机运行在目标浏览器中;通过目标浏览器加载编译字节码,并通过在目标浏览器中运行的目标虚拟机运行编译字节码,得到目标代码的代码运行结果,以使目标浏览器获得目标运行结果。基于本发明实施例结束方案,能够实现在浏览器中在线运行基于浏览器不支持的编译语言编译的代码并实现代码功能的效果,并提高代码运行的安全性、通用性、效率以及兼容性。技术研发人员:何翊卓,何亚东,张春茹受保护的技术使用者:北京嘉辰永成软件技术有限公司技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/197055.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。