System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及程序编译的,尤其涉及一种应用程序的编译方法、装置、产品、设备和介质。
技术介绍
1、小程序可以具有公开的开发者工具,开发者可以在该开发者工具中编写小程序,而小程序通常具有其规范的开发语言,因此,开发者在该开发者工具中需要采用小程序规范的开发语言对小程序进行编写。
2、若开发者想要采用除该规范的开发语言之外的其他开发语言来编写小程序,则就需开发者自行去搭建用以采用该其他开发语言来编写小程序的第三方框架,可见,此种情况下,采用其他开发语言对小程序进行编写的难度就会很大。因此,如何提升对小程序进行编写的灵活性,并降低对小程序进行编写的难度,是一个亟待解决的问题。
技术实现思路
1、本申请提供了一种应用程序的编译方法、装置、产品、设备和介质,可提升对小程序进行编写的灵活性,并降低对小程序进行编写的难度。
2、本申请一方面提供了一种应用程序的编译方法,该方法应用于编译客户端,编译客户端中配置有用于编写应用程序的多种开发语言分别对应的编译插件,该方法包括:
3、响应针对开发语言的配置操作,获取为应用程序编译所配置的目标开发语言;目标开发语言是多种开发语言中的至少一种;
4、获取基于目标开发语言所编写的应用程序的程序源码包;
5、调用目标开发语言对应的编译插件,对程序源码包进行规范化编译处理,生成程序规范包;程序规范包采用应用程序的规范语言,程序规范包用于运行所编写的应用程序。
6、本申请一方面提供了一种应用程序的
7、响应模块,用于响应针对开发语言的配置操作,获取为应用程序编译所配置的目标开发语言;目标开发语言是多种开发语言中的至少一种;
8、获取模块,用于获取基于目标开发语言所编写的应用程序的程序源码包;
9、编译模块,用于调用目标开发语言对应的编译插件,对程序源码包进行规范化编译处理,生成程序规范包;程序规范包采用应用程序的规范语言,程序规范包用于运行所编写的应用程序。
10、可选的,多种开发语言中的任一开发语言对应的编译插件被定义有如下至少一种数据:
11、与规范化编译任一开发语言的源码相适配的钩子函数;任一开发语言下的每种文件类型与规范语言下的文件类型之间的转换对应关系;任一开发语言对应编译插件的线程配置信息;
12、其中,钩子函数用于在规范化编译任一开发语言的源码时,调用对应编译插件相关的编译程序;任一开发语言对应编译插件的线程配置信息,用于指示任一开发语言对应编译插件的插件任务是否需开启编译子线程进行执行。
13、可选的,程序源码包包括目标开发语言下的多种文件类型的源码文件;
14、编译模块调用目标开发语言对应的编译插件,对程序源码包进行规范化编译处理,生成程序规范包的方式,包括:
15、调用目标开发语言对应的编译插件,按照目标开发语言下的每种文件类型与规范语言下的文件类型之间的转换对应关系,将程序源码包中的每种源码文件,分别转换为规范语言下对应文件类型的规范文件;
16、基于程序源码包中每种源码文件分别对应的规范文件,生成程序规范包。
17、可选的,目标开发语言对应编译插件的插件任务包括文件转换任务,文件转换任务用于将程序源码包中的每种源码文件转换为规范语言下对应文件类型的规范文件;
18、编译模块调用目标开发语言对应的编译插件,按照目标开发语言下的每种文件类型与规范语言下的文件类型之间的转换对应关系,将程序源码包中的每种源码文件,分别转换为规范语言下对应文件类型的规范文件的方式,包括:
19、若目标开发语言对应编译插件的线程配置信息用于指示文件转换任务需开启编译子线程进行执行,则为目标开发语言对应编译插件的编译主线程创建编译子线程,并调用创建的编译子线程执行文件转换任务;
20、若目标开发语言对应编译插件的线程配置信息用于指示文件转换任务无需开启编译子线程进行执行,则调用编译主线程执行文件转换任务。
21、可选的,编译模块调用目标开发语言对应的编译插件,对程序源码包进行规范化编译处理,生成程序规范包的方式,包括:
22、调用目标开发语言对应的编译插件,从程序源码包中筛选用于构建应用程序的关键源码文件;
23、对关键源码文件进行规范化编译处理,生成关键源码文件对应的关键规范文件;
24、获取关键源码文件需调用的附加文件,并对附加文件与关键规范文件进行整合处理,生成程序规范包;附加文件属于非代码文件。
25、可选的,编译模块调用目标开发语言对应的编译插件,对程序源码包进行规范化编译处理,生成程序规范包的方式,包括:
26、调用目标开发语言对应的编译插件,对程序源码包进行语法分析处理,生成程序源码包的语法树;
27、对语法树进行语法解析处理,并基于语法解析的结果生成程序规范包。
28、可选的,上述应用程序的编译装置还包括落盘模块,该落盘模块用于:
29、将获取的程序源码包落盘至编译客户端的客户端磁盘中;
30、其中,落盘至客户端磁盘中的程序源码包包括所编写的应用程序的源码主包和n个源码分包,n为正整数,源码主包用于运行所编写的应用程序的主程序,n个源码分包用于运行所编写的应用程序的子程序。
31、可选的,编译客户端中配置有模拟器,模拟器用于模拟运行应用程序;上述应用程序的编译装置还包括模拟运行模块,该模拟运行模块用于:
32、响应针对所编写的应用程序的模拟运行操作,调用模拟器从客户端磁盘中读取源码主包;
33、调用模拟器将读取的源码主包,提交给目标开发语言对应的编译插件;
34、调用目标开发语言对应的编译插件,对源码主包进行规范化编译处理,生成源码主包对应的规范主包;
35、调用模拟器基于规范主包,模拟运行所编写的应用程序的主程序;
36、其中,编译的规范主包用于缓存在编译客户端的内存中。
37、可选的,在模拟运行主程序的过程中,模拟运行模块还用于:
38、在获取到针对模拟运行的主程序的触发操作时,调用模拟器从客户端磁盘中读取触发操作所触发运行的子程序对应的源码分包;
39、调用模拟器将读取的源码分包,提交给目标开发语言对应的编译插件;
40、调用目标开发语言对应的编译插件,对读取的源码分包进行规范化编译处理,生成读取的源码分包对应的规范分包;
41、调用模拟器基于规范分包,模拟运行所编写的应用程序对应的子程序;
42、其中,编译的规范分包用于缓存在编译客户端的内存中。
43、可选的,响应模块响应针对开发语言的配置操作,获取为应用程序编译所配置的目标开发语本文档来自技高网...
【技术保护点】
1.一种应用程序的编译方法,其特征在于,所述方法应用于编译客户端,所述编译客户端中配置有用于编写应用程序的多种开发语言分别对应的编译插件;所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述多种开发语言中的任一开发语言对应的编译插件被定义有如下至少一种数据:
3.如权利要求2所述的方法,其特征在于,所述程序源码包包括所述目标开发语言下的多种文件类型的源码文件;
4.如权利要求3所述的方法,其特征在于,所述目标开发语言对应编译插件的插件任务包括文件转换任务,所述文件转换任务用于将所述程序源码包中的每种源码文件转换为所述规范语言下对应文件类型的规范文件;
5.如权利要求1所述的方法,其特征在于,所述调用所述目标开发语言对应的编译插件,对所述程序源码包进行规范化编译处理,生成程序规范包,包括:
6.如权利要求1所述的方法,其特征在于,所述调用所述目标开发语言对应的编译插件,对所述程序源码包进行规范化编译处理,生成程序规范包,包括:
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
8.如
9.如权利要求8所述的方法,其特征在于,在模拟运行所述主程序的过程中,所述方法还包括:
10.如权利要求1所述的方法,其特征在于,所述响应针对开发语言的配置操作,获取为应用程序编译所配置的目标开发语言,包括:
11.如权利要求1所述的方法,其特征在于,所述方法还包括:
12.一种应用程序的编译装置,其特征在于,所述装置应用于编译客户端,所述编译客户端中配置有用于编写应用程序的多种开发语言分别对应的编译插件;所述装置包括:
13.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-11中任一项所述方法的步骤。
14.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1-11中任一项所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适用于由处理器加载并执行权利要求1-11中任一项所述方法的步骤。
...【技术特征摘要】
1.一种应用程序的编译方法,其特征在于,所述方法应用于编译客户端,所述编译客户端中配置有用于编写应用程序的多种开发语言分别对应的编译插件;所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述多种开发语言中的任一开发语言对应的编译插件被定义有如下至少一种数据:
3.如权利要求2所述的方法,其特征在于,所述程序源码包包括所述目标开发语言下的多种文件类型的源码文件;
4.如权利要求3所述的方法,其特征在于,所述目标开发语言对应编译插件的插件任务包括文件转换任务,所述文件转换任务用于将所述程序源码包中的每种源码文件转换为所述规范语言下对应文件类型的规范文件;
5.如权利要求1所述的方法,其特征在于,所述调用所述目标开发语言对应的编译插件,对所述程序源码包进行规范化编译处理,生成程序规范包,包括:
6.如权利要求1所述的方法,其特征在于,所述调用所述目标开发语言对应的编译插件,对所述程序源码包进行规范化编译处理,生成程序规范包,包括:
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
8.如权利要求7所述的方法,其特征在于,所述编译客户...
【专利技术属性】
技术研发人员:郭锋棉,冯科棉,黄灿辉,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。