实现跨平台多语言开发的方法、装置、介质和电子设备制造方法及图纸

技术编号:24798773 阅读:26 留言:0更新日期:2020-07-07 20:55
本公开提供了一种实现跨平台多语言开发的方法、装置、介质和电子设备。所述方法包括:获取第一混合代码集合;分析所述第一混合代码集合,获取每种编程语言对应的第一片段代码;基于每种编程语言的语法分析模型分析对应所述编程语言的所有第一片段代码,分别生成对应所述编程语言的第一抽象语法树;利用每种编程语言的跨平台框架编译器分别编译对应所述编程语言的第一抽象语法树,分别生成对应所述编程语言的核心二进制文件;所述核心二进制文件能够运行于跨平台框架的虚拟机中。

【技术实现步骤摘要】
实现跨平台多语言开发的方法、装置、介质和电子设备
本公开涉及计算机
,具体而言,涉及一种实现跨平台多语言开发的方法、装置、介质和电子设备。
技术介绍
Flutter框架是一种开源的移动应用开发框架,可使可运行程序实现跨平台、高保真和高性能。也就是可运行程序的一套代码可运行在iOS平台或Android平台。Flutter框架提供了丰富的组件、接口,使开发者可以很快地为Flutter框架添加本地扩展。Flutter框架采用Dart语言作为开发语言,Dart语言是一种使用特定DartVM虚拟机运行的静态语言,提供高速的运行前编译(英文全称AheadOfTime,简称AOT)方案与强调动态性的及时动态编译(英文全称just-in-timecompiliation,简称JIT)方案。DartVM虚拟机为高级编程语言Dart语言提供运行环境。DartKernel是DartVM虚拟机支持的IR级别的专用语言。采用Dart语言编写的代码编译后可转换到DartKernel中,并在DartVM虚拟机中运行。但是,在Flutter框架下仅支持Dart语言的开发,而Dart语言由于自身特点和生态环境的限制,使开发过程受到语法及工程特性限制,制约了开发效果。
技术实现思路
提供该
技术实现思路
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该
技术实现思路
部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。本公开的目的在于提供一种实现跨平台多语言开发的方法、装置、介质和电子设备,能够解决上述提到的至少一个技术问题。具体方案如下:根据本公开的具体实施方式,第一方面,本公开提供一种实现跨平台多语言开发的方法,包括:获取第一混合代码集合;所述第一混合代码集合,包括基于多种编程语言的多个第一片段代码,且每个第一片段代码包括一种编程语言的代码;分析所述第一混合代码集合,获取每种编程语言对应的第一片段代码;基于每种编程语言的语法分析模型分析对应所述编程语言的所有第一片段代码,分别生成对应所述编程语言的第一抽象语法树;利用每种编程语言的跨平台框架编译器分别编译对应所述编程语言的第一抽象语法树,分别生成对应所述编程语言的核心二进制文件;所述核心二进制文件能够运行于跨平台框架的虚拟机中。根据本公开的具体实施方式,第二方面,本公开提供一种实现跨平台多语言开发的装置,包括:获取单元,用于获取第一混合代码集合;所述第一混合代码集合用于定义预设处理逻辑,包括多个第一片段代码;其中,每个第一片段代码包括多种编程语言中一种编程语言的代码;获取第一片段代码单元,用于分析所述第一混合代码集合,获取每种编程语言对应的至少一个或多个第一片段代码;分析单元,用于基于每种编程语言的语法分析模型分析对应所述编程语言的所有第一片段代码,分别生成对应所述编程语言的第一抽象语法树;生成单元,用于利用每种编程语言的跨平台框架编译器分别编译对应所述编程语言的第一抽象语法树,分别生成对应所述编程语言的核心二进制文件;所述核心二进制文件能够运行于跨平台框架的虚拟机中;调用单元,用于通过预设平台应用程序依次调用运行于所述跨平台框架虚拟机中的所述核心二进制文件。根据本公开的具体实施方式,第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面任一项所述实现跨平台多语言开发的方法。根据本公开的具体实施方式,第四方面,本公开提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如第一方面任一项所述实现跨平台多语言开发的方法。本公开实施例的上述方案与现有技术相比,至少具有以下有益效果:本公开提供了一种实现跨平台多语言开发的方法、装置、介质和电子设备。本公开提供了一种基于Flutter框架下的多语言混合开发的解决方案,能够支持不同编程语言的混合开发,通过将不同编程语言的代码片段生成抽象语法树,基于抽象语法树转换程二进制文件,如此就能够实现对DartKernel语言的混合加载,该方案能够兼容不同编程语言发挥不同编程语言的语法优势和工程优势,使得开发的代码更简洁,更便于执行。附图说明结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:图1示出了根据本公开实施例的实现跨平台多语言开发的方法的流程图;图2示出了根据本公开实施例的实现跨平台多语言开发的方法的示意图;图3示出了根据本公开实施例的实现跨平台多语言开发的装置的单元框图;图4示出了根据本公开的实施例的电子设备连接结构示意图。具体实施方式下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。下面结合附图详细说明本公开的可选实施例。对本公开提供的第一实施例,即一种实现跨平台多语言开发的方法的实施例。下面结合图1和图2对本公开实施例进行详细说明。步骤S101,获取第一混合代码集合。本公开实施例中应用于跨平台框架,在跨平台框架下一套开发代码能够运行在多个系统平台中。所有存在代码复杂性高、难维护问题的跨平台框架都可以适用于本公开实施例所述方法。跨平台框架包括Flutter框架。Flutter框架是一种开源的移动应用开发框架本文档来自技高网...

【技术保护点】
1.一种实现跨平台多语言开发的方法,其特征在于,包括:/n获取第一混合代码集合;所述第一混合代码集合,包括基于多种编程语言的多个第一片段代码,且每个第一片段代码包括一种编程语言的代码;/n分析所述第一混合代码集合,获取每种编程语言对应的第一片段代码;/n基于每种编程语言的语法分析模型分析对应所述编程语言的所有第一片段代码,分别生成对应所述编程语言的第一抽象语法树;/n利用每种编程语言的跨平台框架编译器编译对应所述编程语言的第一抽象语法树,生成对应所述编程语言的核心二进制文件;所述核心二进制文件能够运行于跨平台框架的虚拟机中。/n

【技术特征摘要】
1.一种实现跨平台多语言开发的方法,其特征在于,包括:
获取第一混合代码集合;所述第一混合代码集合,包括基于多种编程语言的多个第一片段代码,且每个第一片段代码包括一种编程语言的代码;
分析所述第一混合代码集合,获取每种编程语言对应的第一片段代码;
基于每种编程语言的语法分析模型分析对应所述编程语言的所有第一片段代码,分别生成对应所述编程语言的第一抽象语法树;
利用每种编程语言的跨平台框架编译器编译对应所述编程语言的第一抽象语法树,生成对应所述编程语言的核心二进制文件;所述核心二进制文件能够运行于跨平台框架的虚拟机中。


2.根据权利要求1所述的方法,其特征在于,所述跨平台框架包括Flutter框架;所述虚拟机包括DartVM虚拟机;所述核心二进制文件包括后缀为dill的文件。


3.根据权利要求1所述的方法,其特征在于,所述跨平台框架编译器包括核心编译器和转换器;
所述利用每种编程语言的跨平台框架编译器分别编译对应所述编程语言的第一抽象语法树,分别生成对应所述编程语言的核心二进制文件,包括:
利用每种编程语言的核心编译器分别编译对应所述编程语言的所述第一抽象语法树,分别生成对应所述编程语言的第一编译码;
利用每种编程语言的转换器分别对所述编程语言的第一编译码进行转换,生成对应所述编程语言的核心二进制文件。


4.根据权利要求1所述的方法,其特征在于,所述语法分析模型包括前端编译器;
所述基于每种编程语言的语法分析模型分析对应所述编程语言的所有第一片段代码,分别生成对应所述编程语言的第一抽象语法树,包括:
基于每种编程语言的前端编译器分析对应所述编程语言的所有第一片段代码,分别生成对应所述编程语言的第一抽象语法树。


5.一种实现跨平台多语言开发的装置,其特征在于,包括:
获取单元,用于获取第一混合代码集合;所述第一混合代码集合,包括基于多种编程语言的多个第一片段代...

【专利技术属性】
技术研发人员:刘丰恺
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

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

1