一种代码系统、代码执行方法、代码编译方法、及其装置制造方法及图纸

技术编号:34367999 阅读:44 留言:0更新日期:2022-07-31 09:44
本申请分别提供一种代码系统,以及相关的代码执行方法、代码执行装置、代码编译方法、代码编译装置、电子设备以及计算机存储介质。在上述代码系统的执行端中,同时设置虚拟机与动态代码解释器,虚拟机单独执行非动态代码,同时还能与动态代码解释器共同执行动态代码,使得该系统能够混合执行非动态代码与动态代码,充分利用两种代码执行模式的优点。进一步地,由于虚拟机与动态代码解释器之间以双向联动机制的方式连接,进而在执行非动态代码时调用动态代码中的类,或者,在执行动态代码时调用非动态代码中的类,实现了两种代码执行模式下相互调用对方的类、函数。本申请的技术方案实现了非动态和动态代码的混合执行,结合了两种形式代码的优势。形式代码的优势。形式代码的优势。

A code system, code execution method, code compilation method, and its device

【技术实现步骤摘要】
一种代码系统、代码执行方法、代码编译方法、及其装置


[0001]本申请涉及计算机
,具体涉及一种代码系统,以及相关的一种代码执行方法、一种代码执行装置、一种代码编译方法、一种代码编译装置、电子设备以及计算机存储介质。

技术介绍

[0002]代码开发包括代码的编写、调整、编译、解释等技术,是计算机领域的核心技术,其最终工作成果为可执行的指令集,指令集可以提供给计算设备执行,执行设备可以根据指令集提供的指令执行相关的运算。其中,指令集可以编译形成二进制机器码或者汇编语言提供给计算设备执行,这种模式称为汇编方式;指令集也可以形成为可解释执行的语句,由解释器逐句解释并转换为二进制机器语言,提供给计算设备执行,此种模式称为解释方式。
[0003]为了便于代码的开发,尤其是便于在一个框架下实现适应多个平台的代码开发,现有技术下提供了一些代码开发框架,Flutter框架就是目前广泛使用的跨平台移动端代码开发平台,其侧重于满足iOS系统、Android系统、以及Web系统等多个平台下的代码开发,实现代码在多平台的通用。通过Flutter框架编写生本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种代码系统,其特征在于,包括:业务端与执行端;所述业务端中设有非动态代码处理模块、动态代码处理模块;所述非动态代码处理模块,用于将源代码转换为非动态代码;所述动态代码处理模块,用于将源代码转换为可解释执行的动态代码;执行端中设有虚拟机与动态代码解释器;所述虚拟机分别可以读取加载到执行端的非动态代码、和动态代码;所述虚拟机用于执行所述非动态代码;并将所述动态代码提供给所述动态代码解释器,并与所述动态代码解释器共同执行所述动态代码;所述虚拟机与所述动态代码解释器之间以双向联动机制的方式连接,实现混合代码的执行。2.根据权利要求1所述的代码系统,其特征在于,所述将源代码转换为非动态代码,包括:将所述源代码转换为适用于在目标平台上执行的机器码;所述虚拟机具体用于执行所述机器码。3.根据权利要求1所述的代码系统,其特征在于,所述将源代码转换为可解释执行的动态代码,包括:将所述源代码转换为适用于在目标平台上执行的字节码;所述虚拟机与所述动态代码解释器共同执行所述字节码。4.根据权利要求1所述的代码系统,其特征在于,所述业务端中还包括:优化模块;所述优化模块,用于确定所述非动态代码中的类的最大标识数值,并作为当前最大标识数值的初始值;在需要加载动态代码中的类时,将当前最大标识数值加1作为需要调用的所述动态代码中的类的标识数值,并使用所述标识数值更新所述当前最大标识数值。5.根据权利要求1所述的代码系统,其特征在于,还包括:调用模块;所述调用模块,用于根据类的标识数值判断所调用的类是否属于动态代码的类,若属于动态代码的类,则根据该代码本身的记录处理其继承关系。6.根据权利要求5所述的代码系统,其特征在于,包括去虚化模块,用于判断正在处理的动态调用函数属于动态代码还是非动态代码;若属于非动态代码,则采用第一调用机制处理;若属于动态代码,则采用第二调用机制处理。7.根据权利要求6所述的代码系统,其特征在于,所述去虚化模块判断正在处理的动态调用函数属于动态代码还是非动态代码的依据,是根据所述动态调用函数所属的类的标识数值进行判断的。8.根据权利要求7所述的代码系统,其特征在于,所述第一调用机制为D...

【专利技术属性】
技术研发人员:周科羽
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1