[发明专利]跨平台生成可运行程序的方法、装置、介质和电子设备在审
申请号: | 202010573869.0 | 申请日: | 2020-06-22 |
公开(公告)号: | CN111813381A | 公开(公告)日: | 2020-10-23 |
发明(设计)人: | 刘丰恺 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/41 |
代理公司: | 北京睿驰通程知识产权代理事务所(普通合伙) 11604 | 代理人: | 唐华;张文平 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 平台 生成 运行 程序 方法 装置 介质 电子设备 | ||
本公开提供了一种跨平台生成可运行程序的方法、装置、介质和电子设备。所述方法包括:在跨平台框架下,获取第一描述代码;所述第一描述代码是基于领域专用语言定义预设处理逻辑的代码;基于语法分析模型分析所述第一描述代码,获取所述第一描述代码对应的第一抽象语法树;利用跨平台框架编译器编译所述第一抽象语法树,生成核心二进制文件;所述核心二进制文件能够运行于跨平台框架的虚拟机中。本公开避免了采用Dart语言开发时复杂的层次结构,不断地层次缩进和嵌套。代码更优化,使执行更快。且在对抽象语法树编译过程中能发现错误,使类型更安全。且领域专用语言的语法特性有效提升了跨平台框架下代码的逻辑可读性。
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种跨平台生成可运行程序的方法、装置、介质和电子设备。
背景技术
目前跨平台式开发框架凭借其具有的跨平台性、高保真性和高性能等优点,已经被广泛适用,跨平台式开发框架提供丰富的组件、接口,方便开发者能够开发一套代码可适用于多种平台中。
以Flutter框架为例,其是一种开源的移动应用开发框架,基于Flutter框架开发的可运行在iOS平台或Android平台。Flutter框架提供了丰富的组件、接口,使开发者可以很快地为Flutter框架添加本地扩展。
Flutter框架采用Dart语言作为开发语言,Dart语言是一种使用特定Dart VM虚拟机运行的静态语言,提供高速的运行前编译(英文全称Ahead Of Time,简称AOT)方案与强调动态性的及时动态编译(英文全称just-in-time compiliation,简称JIT)方案。AOT方案程序运行前,直接把源码文件编译成本地机器码的过程。JIT方案在运行时把类文件字节码编译成本地机器码的过程。
但是,在Flutter框架下采用Dart语言进行开发时,通常采用组件堆积的方式,存在较大的开发难度,且代码可读性差,难于维护。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本公开的目的在于提供一种跨平台生成可运行程序的方法、装置、介质和电子设备,能够解决上述提到的至少一个技术问题。具体方案如下:
根据本公开的具体实施方式,第一方面,本公开提供一种跨平台生成可运行程序的方法,包括:
在跨平台框架下,获取第一描述代码;所述第一描述代码是基于领域专用语言定义预设处理逻辑的代码;
基于语法分析模型分析所述第一描述代码,获取所述第一描述代码对应的第一抽象语法树;
利用跨平台框架编译器编译所述第一抽象语法树,生成核心二进制文件;所述核心二进制文件能够运行于跨平台框架的虚拟机中。
根据本公开的具体实施方式,第二方面,本公开提供一种跨平台生成可运行程序的装置,包括:
获取单元,用于在跨平台框架下,获取第一描述代码;所述第一描述代码是基于领域专用语言定义预设处理逻辑的代码;
分析单元,用于基于语法分析模型分析所述第一描述代码,获取所述第一描述代码对应的第一抽象语法树;
生成单元,用于利用跨平台框架编译器编译所述第一抽象语法树,生成核心二进制文件;所述核心二进制文件能够运行于跨平台框架的虚拟机中。
根据本公开的具体实施方式,第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面任一项所述跨平台生成可运行程序的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010573869.0/2.html,转载请声明来源钻瓜专利网。