掌桥专利:专业的专利平台
掌桥专利
首页

一种采用jupyter的自动编译方法及装置

文献发布时间:2023-06-19 10:35:20


一种采用jupyter的自动编译方法及装置

技术领域

本发明涉及编译领域,尤其涉及一种采用jupyter的自动编译方法及装置。

背景技术

对于计算机语言的应用,最难得是对程序的编译过程,当前存在很多的编译平台,但是每种编译平台仅能实现对单一语言的编译,例如jupyter,主要应用于python的程序的编译,不支持winform,apk等程序的编译。在实际应用的过程中,单一的编译环境无法满足用户的需求,因此亟需一种适应于不同程序的编译平台。

发明内容

有鉴于此,本发明公开了一种采用jupyter的自动编译方法,实现自动匹配编译环境,进而能够满足用户对不同编译环境的需求。

第一方面:

本发明实施例公开了一种采用jupyter的自动编译方法,所述方法应用于中心服务器,包括:

接收用户终端发送的待处理程序;

响应于编译请求,确定所述待处理程序的类型;

基于所述待处理程序的类型,确定所述待处理程序对应的目标编译环境;

根据所述目标编译环境,从预设的云编译系统中确定用于执行编译任务的第一编译终端;所述第一编译终端中包含所述目标编译环境;

将所述待处理程序发送给所述第一编译终端;所述待处理程序为所述第一编译终端通过安装的编译环境执行编译任务的基础信息;

所述云编译系统是由多个安装有编译环境的终端组成的;安装的编译环境至少包含jupyter。

可选的,还包括:

检测是否接收到指定的编译环境;

在包含指定的编译环境的情况下,将所述指定的编译环境作为目标编译环境。

可选的,所述根据所述目标编译环境,从预设的云编译系统中确定用于执行编译任务的目标终端,包括:

从所述预设的云编译系统中筛选出包含目标编译环境的终端;

从所述包含目标编译环境的终端中筛选出空闲的终端;

获取空闲的终端的空闲时间段;

预测所述待处理程序的编译时长;

根据所述待处理程序的编译时长、空闲的终端的空闲时间段,确定用于执行所述待编译程序的第一编译终端。

可选的,还包括:

检测第一编译终端的编译进程;

当第一编译终端在编译过程中出现预设的情形时,获取该编译终端当前的编译结果;

根据所述云编译系统资源的占用情况,再次分配用于对待处理程序进行编译的第三编译终端;

将所述编译结果和所述待处理程序发送给所述第三编译终端。

可选的,还包括:

当接收到共享编译环境的请求时,获取发起共享编译环境请求的终端的信息以及发起共享编译环境请求的终端上安装的编译环境的信息;

存储发起共享编译环境的请求的终端上安装的编译环境的信息,以及发起共享编译环境请求的终端的信息。

可选的,还包括:

接收第一编译终端反馈的错误信息;所述错误信息是所述第一编译终端在编译过程中产生的;

解析所述错误信息,得到与所述错误信息对应的原因和/或优化方案;

将所述错误信息、所述错误信息对应的原因和/或优化方案反馈给用户终端;所述用户终端为发送待编译程序的终端。

可选的,还包括:

响应于程序模拟请求,确定所述待处理程序的类型;

根据所述待处理程序的类型,确定所述待处理程序对应的目标模拟器;

根据所述目标模拟器,从预设的云编译系统中确定用于执行程序模拟任务的第二编译终端;

获取所述第二编译终端的信息,将所述第二编译终端的信息发送给发起用户终端;所述第二编译终端的信息为所述用户终端向所述第二编译终端发起远程控制的依据;

将所述待处理程序发送给所述第二编译终端,以在用户终端向所述第二编译终端发起远程控制后,使得用户终端控制所述第二编译终端上安装的目标模拟器模拟所述待处理程序。

可选的,所述错误信息是以视频的形式呈现的;所述视频是第一编译终端通过录屏得到的。

可选的,还包括:

当检测到用户终端执行代码编辑过程时,对用户终端当前编辑的代码进行分析,预测用户终端当前编辑的代码实现的功能;

调取与用户终端当前编辑的代码实现的功能相对应的参考代码;

获取参考代码的优化信息;

将所述参考代码和/或参考代码的优化信息发送给用户终端。

第二方面:

本发明实施例还公开了一种采用jupyter的自动编译方法,所述方法应用于用户终端,包括:

接收待处理程序;

将所述待处理程序发送给服务器,以使所述服务器基于上述第一方面所述的采用jupyter的自动编译方法对所述待编译的程序进行处理;

接收服务器发送的编译结果。

可选的,所述接收服务器发送的编译结果,包括:

接收中心服务器发送的安装包;

或者

接收中心服务器发送的可执行程序。

可选的,包括:

接收用户上传的共享程序;

确定所述共享程序的可编辑部分;

对所述工程程序的可编辑部分进行标记。

可选的,所述接收待处理程序,包括:

调取共享程序;

获取共享程序可编辑部分的修改结果,得到修改后的程序;

将所述修改后的程序作为待处理程序。

第三方面:

本发明实施例公开了一种采用jupyter的自动编译系统,包括:

用户终端、中心服务器和云编译系统;

所述云编译系统由多个安装有编译环境的终端组成的;安装的编译环境至少包含jupyter;

所述中心服务器用于执行第一方面所述的采用jupyter的自动编译方法;

所述用户终端用于执行第二方面所述的采用jupyter的自动编译。

第四方面:

本发明还公开了一种采用jupyter的自动编译装置,所述装置应用于中心服务器,所述方法包括:

第一接收单元,用于接收终端发送的待处理程序;

类型确定单元,用于响应于编译请求,确定所述待处理程序的类型;

第一编译环境确定单元,用于基于所述待处理程序的类型,确定所述待处理程序对应的目标编译环境;

编译终端确定单元,用于根据所述目标编译环境,从预设的云编译系统中确定用于执行编译任务的第一编译终端;所述目标终端中包含所述目标编译环境;

第一发送单元,用于将所述待处理程序发送给所述第一编译终端;所述待处理程序为所述第一编译终端通过安装的编译环境执行编译任务的基础信息;

所述云编译系统是由多个安装有编译环境的终端组成的;安装的编译环境至少包含jupyter。

第五方面:

本发明实施例还公开了一种采用jupyter的自动编译装置,所述装置应用于终端,所述装置包括:

第二接收单元,用于接收待处理程序;

第二发送单元,用于将所述待处理程序发送给服务器,以使所述服务器基于上述第一方面所述的采用jupyter的自动编译方法对待编译的程序进行处理;

第三接收单元,用于接收服务器发送的编译结果。

本发明实施例公开了一种采用jupyter的自动编译方法,该方法包括:响应于编译请求,确定所述待处理程序的类型;基于所述待处理程序的类型,确定所述待处理程序对应的目标编译环境;根据所述目标编译环境,从预设的云编译系统中确定用于执行编译任务的第一编译终端;所述目标终端中包含所述目标编译环境;将所述待处理程序发送给所述第一编译终端。由此,通过识别程序的类型,并确定出与程序的类型相对应的目标编译环境,实现自动匹配编译环境,进而能够满足用户对不同编译环境的需求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1示出了本发明实施例提供的一种采用jupyter的自动编译方法的流程示意图;

图2本发明实施例提供了一种资源分配方法的流程示意图;

图3示出了本发明实施例提供的一种采用jupyter的自动编译方法的又一流程示意图;

图4示出了本发明实施例提供的一种程序优化方法的流程示意图;

图5示出了本发明实施例提供的一种采用jupyter的自动编译方法的流程示意图;

图6示出了本发明实施例提供的一种采用jupyter的自动编译系统的结构示意图;

图7示出了本发明实施例公开的一种采用jupyter的自动编译装置的结构示意图;

图8示出了本发明实施例提供的一种采用jupyter的自动编译装置的又一结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参考图1,示出了本发明实施例提供的一种采用jupyter的自动编译方法的流程示意图,在本实施例中,该方法应用于服务器,该方法包括:

S101:接收终端发送的待处理程序;

S102:响应于编译请求,确定所述待处理程序的类型;

本实施例中,本实施例中,待编译的程序的类型可以理解为是某种类型的计算机语言,例如可以为JAVA、PHP、C#等。

其中,每种类型的程序都具有独特的编写格式,例如可以通过程序的编写格式确定程序的类型。

S103:基于所述待处理程序的类型,确定所述待处理程序对应的目标编译环境;

本实施例中,为了能够识别出程序的类型对应的目标编译环境,可以预先设置程序的类型与编译环境的对应关系。当确定了待处理程序的类型时,根据预先设置的程序的类型与编译环境的对应关系,从而确定出与待待处理程序对应的目标编译环境。

本实施例中,编译环境包括:winform、web、android、IOS、jupyter多种编译平台提供的编译环境,本实施例中,包括但不仅限于以上提到的编译环境。

S104:根据目标编译环境,从预设的云编译系统中确定用于执行编译任务的第一编译终端;所述第一编译终端中包含所述目标编译环境;

本实施例中,云编译系统是由多个安装有编译环境的终端组成的;安装的编译环境至少包含jupyter。

通过上述介绍可知,云编译系统包括winform、web、android、IOS、jupyter多种编译平台提供的编译环境,但是不仅限于上述提到的编译环境。

本实施例中,为了丰富云编译系统,可以将个人终端作为云编译系统,具体的,还包括:

当接收到共享编译环境的请求时,获取发起共享编译环境请求的终端的信息以及发起共享编译环境请求的终端上安装的编译环境的信息;

存储发起共享编译环境的请求的终端上安装的编译环境的信息,以及发起共享编译环境请求的终端的信息。

本实施例中,假设终端A向中心服务器发起共享编译环境的请求,中心服务器获取终端A的信息以及终端A上安装的编译环境的信息。

其中,终端A的信息可以为用于唯一表示终端A的信息,或者用于访问终端A的信息,例如为终端A的IP地址。

其中,安装在终端A上的编译环境的信息,可以为编译环境的名称,例如为winform、web、android、IOS、jupyter等。

本实施例中,可以根据待处理程序的预编译时长,以及当前云编译系统包含的终端的空闲情况,确定用于执行待处理程序的第一编译终端,具体的实现方法会在下文中进行介绍,本实施例中不再赘述。

S105:将所述待处理程序发送给第一编译终端;

本实施例中,当第一编译终端接收到待处理程序时,通过安装的编译环境对待处理程序进行编译。也就是说,待处理程序为第一编译终端通过安装的编译环境执行编译任务的基础信息。

本实施例中,响应于编译请求,确定所述待处理程序的类型;基于所述待处理程序的类型,确定所述待处理程序对应的目标编译环境;根据所述目标编译环境,从预设的云编译系统中确定用于执行编译任务的第一编译终端;所述目标终端中包含所述目标编译环境;将所述待处理程序发送给所述第一编译终端。由此,通过识别程序的类型,并确定出与程序的类型相对应的目标编译环境,实现自动匹配编译环境,进而能够满足用户对不同编译环境的需求。

进一步的,为了提供人性化的选择,用户可以自行选择采用哪种编译环境,具体的,还包括:

检测是否接收到指定的编译环境;

若接收到指定的编译环境,将指定的编译环境作为目标编译环境。

进而,根据所述指定的编译环境(即目标编译环境),从预设的云编译系统中确定用于执行编译任务的第一编译终端;所述目标终端中包含所述目标编译环境,将所述待处理程序发送给所述第一编译终端。

本实施例中,在第一编译终端执行编译任务的过程中,可能会出现一些报错的问题,为了方便用户及时了解编译的情况,第一编译终端会将编译过程中产生的错误信息发送给中心服务器。在中心服务器接收到报错的情况下,为了能够进一步的指示用户如何处理错误,可以对接收到的错误信息进行分析,进而确定出错误对应的原因和/或优化方案,具体的,还包括:

接收第一编译终端反馈的错误信息;所述错误信息是所述第一编译终端在编译过程中产生的;

解析所述错误信息,得到与所述错误信息对应的原因和/或优化方案;

将所述错误信息、所述错误信息对应的原因和/或优化方案反馈给用户终端;所述用户终端为发送待编译程序的终端。

本实施例中,可以预先设置了错误信息和原因以及优化方案的关联关系,通过该关联关系,可以找到错误信息产生的原因以及解决该错误信息的优化方案。

其中,错误信息的方式可以通过视频的方式反馈,也可以通过预设的错误信息的格式进行反馈。

其中,若错误信息是通过视频的方式反馈的,那么该视频是执行编译任务的第一编译终端通过录屏得到的。

进一步的,为了避免云编译系统的拥挤,可以基于云编译系统的资源分配编译终端,具体的还包括:

1)从所述预设的云编译系统中筛选出包含目标编译环境的终端;

2)从所述包含目标编译环境的终端中筛选出空闲的终端;

本实施例中,空闲的终端为当前没有执行编译任务的终端。

3)获取空闲的终端的空闲时间段;

本实施例中,云编译系统中包含的各个终端,可以预先设置可以用于执行编译任务的时间段,仅在该时间段内执行编译任务。

4)预测所述待处理程序的编译时长;

本实施例中,可以通过预设的预测模型,预测待处理程序的编译时长,其中,编译时长表示为对待处理程序进行编译时所需要的时间。

其中,预测模型可以是通过训练样本进行训练后得到的,其中训练样本包括:不同类型的程序,将包含不同类型的程序的训练样本作为输入,将每个程序执行编译的时间作为输出,对模型进行训练,从而得到预测模型。其中,预测模型可以为深度信念网络(DeepBelief Machines)、深度卷积神经网络等。

5)根据所述待处理程序的编译时长、空闲的终端的空闲时间段,确定用于执行编译任务的第一编译终端。

本实施例中,以当前时刻为基准,基于空闲的终端的空闲时间段,计算空闲的终端剩余的时长是否能够执行待处理程序的编译任务,其中,判断空闲的终端剩余的时长是否能够执行待处理程序的编译任务的方法包括多种,本实施例中不进行限定,例如可以通过如下的方式:判断空闲的终端剩余的时长是否大于待处理程序的编译时长,若大于,则认为该终端可以用于执行编译任务。

若筛选出一个可用于执行编译任务的终端,则将该终端作为第一编译终端;

若筛选出多个可用于执行编译任务的终端,则可以任务筛选其中的一个作为第一编译终端。

或者,还可以根据请求编译的客户的情况,选择哪个第一编译终端,若客户的级别较高,则可以选取性能较高的终端。

本实施例中,通过预测的待处理程序的编译时长、包含目标编译环境且空闲的终端的空闲时间段,确定用于执行所述待编译程序的第一编译终端,这样,实现了对资源的合理分配。

进一步的,还包括:

若云编译系统中不存在空闲的终端时,按照接收待处理程序的时间对接收到的待处理程序设置排队标识;当存在空闲的终端时,按照待处理程序的排队标识,为所述待处理程序分配用于编译的终端。

本实施例中,编译终端在编译的过程中可能会出现编译缓慢或者系统故障导致无法完成编译的问题,这就可能会影响编译的整体进程,甚至导致无法完成对程序的编译,为了不影响编译的结果,参考图2,示出了本发明实施例提供了一种资源分配方法的流程示意图,包括:

S201:检测第一编译终端的编译进程;

S202:当第一编译终端在编译过程中出现预设的情形时,获取该编译终端当前的编译结果;

本实施例中,预设的情形可以包括多种,本实施例中不进行限定,例如:编译缓慢或者系统故障等。

S203:根据所述云编译系统资源的占用情况,再次分配用于对待处理程序进行编译的第三编译终端;

S204:将所述编译结果和所述待处理的程序发送给所述第三编译终端。

本实施例中,在对程序进行编译时,可能会进行如下的过程:词法分析-->语法分析-->语义分析->库、类文件加载->中间代码生成-->优化-->目标代码生成。其中上述每一个阶段都会生成一个编译结果。当检测到编译终端的编译进程缓慢或者系统故障时,可以根据云编译系统的资源占用情况,分配其它的编译终端(第三编译终端),该第三编译终端可以根据之前第一编译终端得到的编译结果对程序进行编译,这样也能加快程序的编译进程。

参考图3,示出了本发明实施例提供的一种采用jupyter的自动编译方法的又一流程示意图,在本实施例中,该方法包括:

S301:响应于程序模拟请求,确定所述待处理程序的类型;

S302:根据所述待处理程序的类型,确定所述待处理程序对应的目标模拟器;

本实施例中,若待处理程序发起的是程序模拟指令,那么可以基于待处理程序的类型,确定用于模拟该待处理程序的模拟器。

本实施例中,可以预先设置了待处理程序的类型与模拟器的对应关系,可以根据该对应关系以及待处理程序的类型,确定出待处理程序对应的模拟器。

S303:根据所述目标模拟器,从预设的云编译系统中确定用于执行程序模拟任务的第二编译终端;

本实施例中,可以根据待处理程序的模拟时长,以及当前云编译系统包含的终端的空闲情况,确定用于执行待处理程序的第二编译终端。

其中,具体的确认方法与上述S201-S205一致,本实施例中不进行限定。

S304:获取所述第二编译终端的信息,将所述第二编译终端的信息发送给发起用户终端;所述第二编译终端的信息为所述用户终端向所述第二编译终端发起远程控制的依据;

S305:将所述待处理程序发送给所述第二编译终端,以在用户终端向所述第二编译终端发起远程控制后,使得发起程序模拟请求的终端控制所述第二编译终端上安装的目标模拟器模拟所述待处理程序。

本实施例中,当用户终端接收到第二编译终端的终端信息后,可以与第二编译终端发起远程控制,通过远程控制,将待处理程序安装到第二编译终端的模拟器中,并控制第二编译终端的模拟器对待处理程序进行模拟。

本实施例中,通过根据所述待处理程序的类型,确定所述待处理程序对应的目标模拟器;根据所述目标模拟器,从预设的云编译系统中确定用于执行程序模拟任务的第二编译终端;获取所述第二编译终端的信息,将所述第二编译终端的信息发送给发起用户终端;所述第二编译终端的信息为所述用户终端向所述第二编译终端发起远程控制的依据;将所述待处理程序发送给所述第二编译终端,以在用户终端向所述第二编译终端发起远程控制后,使得发起程序模拟请求的终端控制所述第二编译终端上安装的目标模拟器模拟所述待处理程序。这样,实现了对程序的模拟功能,丰富了程序编译的功能。

本实施例中,用户终端在编辑程序时,可能会出现一些错误或者没有采用较优的方案进行编辑,这就使得在编译过程中容易出现问题,为了避免这些问题,可以预先提示客户可能出现的问题或者为客户提供一些参考程序。具体的,参考图4,示出了本发明实施例提供的一种程序优化方法的流程示意图,在本实施例中,该方法包括:

S401:当检测到用户终端执行代码编辑过程时,对用户终端当前编辑的代码进行分析,预测用户终端当前编辑的代码实现的功能;

本实施例中,当用户调取版本库中的代码时,或者调取上传代码后,可以触发S401-S404的过程。

本实施例中,可以通过智能算法或者预先训练的预测模型对当前编辑的程序进行分析。

其中,预测模型可以通过代码以及代码的功能进行训练得到的。

S402:调取与用户终端当前编辑的代码实现的功能相对应的参考代码;

其中,版本库中存储的代码可以预先设置了功能标签,可以通过功能标签,查找参考代码。

S403:获取参考代码的优化信息;

参考代码的优化信息可以包括:代码中易于出错的位置,代码中可编辑部分较优的编写方式等。

S404:将所述参考代码和/或参考代码的优化信息发送给用户终端。

本实施例中,将参考代码和/或参考代码的优化信息发送给用户终端,用户可以参照参考代码对代码进行编辑。

本实施例中,通过获取与编辑的代码功能相同或者相似的参考代码,以及参考代码的优化信息,并将参考代码和/或优化信息发送给用户终端,使得用户终端可以根据参考代码以及优化信息对代码进行编辑,从而避免出现常见的错误,进而得到效果更优的代码程序。

参考图5,示出了本发明实施例提供的一种采用jupyter的自动编译方法的流程示意图,所述方法应用于终端,包括:

S501:获取待处理程序;

其中,待处理程序的获取方式可以包括多种,本实施例中不进行限定,例如可以包括如下的两种:

方式一、用户自行编写的程序;

方式二、用户对其它用户共享的程序进行修改后得到的程序,具体的,包括:

调取共享程序;

获取共享程序可编辑部分的修改结果,得到修改后的程序;

将所述修改后的程序作为待编译的程序。

其中,终端可以提供程序共享功能,具体的还包括:

接收用户上传的共享程序;

确定所述共享程序的可编辑部分;

对所述工程程序的可编辑部分进行标记。

S502:将所述待编译的程序发送给中心服务器;

其中以使所述中心服务器用于执行上述S101-S104的方法;

S503:接收中心服务器发送的编译结果。

其中,中心服务器反馈的编译结果可以包括:安装包或者可执行程序。

本实施例中,用户可以通过终端,向中心服务器发送待处理程序,并通过中心服务器为用户分配用于执行编译任务的终端,这样实现了自动匹配编译环境的目的,进而能够满足用户对不同编译环境的需求。

参考图6,示出了本发明实施例提供的一种采用jupyter的自动编译系统的结构示意图,在本实施例中,该系统包括:

用户终端601、中心服务器602和云编译系统603;

所述云编译系统603由多个安装有编译环境的编译终端组成的;安装的编译环境至少包含jupyter;

所述中心服务器602用于执行如下的方法:

接收用户终端发送的待处理程序;

响应于编译请求,确定所述待处理程序的类型;

基于所述待处理程序的类型,确定所述待处理程序对应的目标编译环境;

根据所述目标编译环境,从预设的云编译系统中确定用于执行编译任务的第一编译终端;所述第一编译终端中包含所述目标编译环境;

将所述待处理程序发送给所述第一编译终端;所述待处理程序为所述第一编译终端通过安装的编译环境执行编译任务的基础信息;

所述云编译系统是由多个安装有编译环境的终端组成的;安装的编译环境至少包含jupyter。

可选的,还包括:

检测是否接收到指定的编译环境;

在包含指定的编译环境的情况下,将所述指定的编译环境作为目标编译环境。

可选的,所述根据所述目标编译环境,从预设的云编译系统中确定用于执行编译任务的目标终端,包括:

从所述预设的云编译系统中筛选出包含目标编译环境的终端;

从所述包含目标编译环境的终端中筛选出空闲的终端;

获取空闲的终端的空闲时间段;

预测所述待处理程序的编译时长;

根据所述待处理程序的编译时长、空闲的终端的空闲时间段,确定用于执行所述待编译程序的第一编译终端。

可选的,还包括:

若云编译系统中不存在空闲的终端时,按照接收待处理程序的时间对接收到的待处理程序设置排队标识;

当存在空闲的终端时,按照待处理程序的排队标识,为所述待处理程序分配用于编译的终端。

可选的,当接收到共享编译环境的请求时,获取发起共享编译环境请求的终端的信息以及发起共享编译环境请求的终端上安装的编译环境的信息;

存储发起共享编译环境的请求的终端上安装的编译环境的信息,以及发起共享编译环境请求的终端的信息。

可选的,还包括:

接收第一编译终端反馈的错误信息;所述错误信息是所述第一编译终端在编译过程中产生的;

解析所述错误信息,得到与所述错误信息对应的原因和/或优化方案;

将所述错误信息、所述错误信息对应的原因和/或优化方案反馈给用户终端;所述用户终端为发送待编译程序的终端。

可选的,还包括:

响应于程序模拟请求,确定所述待处理程序的类型;

根据所述待处理程序的类型,确定所述待处理程序对应的目标模拟器;

根据所述目标模拟器,从预设的云编译系统中确定用于执行程序模拟任务的第二编译终端;

获取所述第二编译终端的信息,将所述第二编译终端的信息发送给发起用户终端;所述第二编译终端的信息为所述用户终端向所述第二编译终端发起远程控制的依据;

将所述待处理程序发送给所述第二编译终端,以在用户终端向所述第二编译终端发起远程控制后,使得用户终端控制所述第二编译终端上安装的目标模拟器模拟所述待处理程序。

可选的,所述错误信息是以视频的形式呈现的;所述视频是第一编译终端通过录屏得到的。

所述用户终端601用于执行如下的方法:

接收待处理程序;

将所述待处理程序发送给服务器;

接收服务器发送的编译结果。

可选的,所述接收服务器发送的编译结果,包括:

接收中心服务器发送的安装包;

或者

接收中心服务器发送的可执行程序。

可选的,包括:

接收用户上传的共享程序;

确定所述共享程序的可编辑部分;

对所述工程程序的可编辑部分进行标记。

可选的,所述获取待编译的程序,包括:

调取共享程序;

获取共享程序可编辑部分的修改结果,得到修改后的程序;

将所述修改后的程序作为待编译的程序。

本实施例中,用户终端在接收到待处理程序后,将待处理程序发送给中心服务器,中心服务器对确定待处理程序的类型,基于待处理程序的类型,确定所述待处理程序对应的目标编译环境,根据目标编译环境,从预设的云编译系统中确定用于执行编译任务的第一编译终端,将待处理程序发送给所述第一编译终端,第一编译终端对待处理程序进行编译。由此,通过用户终端、中心服务器和编译终端的交互,实现自动匹配编译环境,进而能够满足用户对不同编译环境的需求。

参考图7,示出了本发明实施例公开的一种采用jupyter的自动编译装置的结构示意图,该装置应用于中心服务器,该服务器包括:

第一接收单元701,用于接收终端发送的待处理程序;

类型确定单元702,用于响应于编译请求,确定所述待处理程序的类型;

第一编译环境确定单元703,用于基于所述待处理程序的类型,确定所述待处理程序对应的目标编译环境;

编译终端确定单元704,用于根据所述目标编译环境,从预设的云编译系统中确定用于执行编译任务的第一编译终端;所述目标终端中包含所述目标编译环境;

第一发送单元705,用于将所述待处理程序发送给所述第一编译终端;所述待处理程序为所述第一编译终端通过安装的编译环境执行编译任务的基础信息;

所述云编译系统是由多个安装有编译环境的终端组成的;安装的编译环境至少包含jupyter。

可选的,还包括:

第二编译环境确定单元,用于:

检测是否接收到指定的编译环境;

在包含指定的编译环境的情况下,将所述指定的编译环境作为目标编译环境。

可选的,所述编译终端确定单元,具体用于:

从所述预设的云编译系统中筛选出包含目标编译环境的终端;

从所述包含目标编译环境的终端中筛选出空闲的终端;

获取空闲的终端的空闲时间段;

预测所述待处理程序的编译时长;

根据所述待处理程序的编译时长、空闲的终端的空闲时间段,确定用于执行所述待编译程序的第一编译终端。

可选的,还包括:

排队单元,用于:

若云编译系统中不存在空闲的终端时,按照接收待处理程序的时间对接收到的待处理程序设置排队标识;

当存在空闲的终端时,按照待处理程序的排队标识,为所述待处理程序分配用于编译的终端。

可选的,还包括:

编译环境共享单元,用于:

当接收到共享编译环境的请求时,获取发起共享编译环境请求的终端的信息以及发起共享编译环境请求的终端上安装的编译环境的信息;

存储发起共享编译环境的请求的终端上安装的编译环境的信息,以及发起共享编译环境请求的终端的信息。

可选的,还包括:

错误反馈单元,用于:

接收第一编译终端反馈的错误信息;所述错误信息是所述第一编译终端在编译过程中产生的;

解析所述错误信息,得到与所述错误信息对应的原因和/或优化方案;

将所述错误信息、所述错误信息对应的原因和/或优化方案反馈给用户终端;所述用户终端为发送待编译程序的终端。

可选的,还包括:

模拟单元,用于:

响应于程序模拟请求,确定所述待处理程序的类型;

根据所述待处理程序的类型,确定所述待处理程序对应的目标模拟器;

根据所述目标模拟器,从预设的云编译系统中确定用于执行程序模拟任务的第二编译终端;

获取所述第二编译终端的信息,将所述第二编译终端的信息发送给发起用户终端;所述第二编译终端的信息为所述用户终端向所述第二编译终端发起远程控制的依据;

将所述待处理程序发送给所述第二编译终端,以在用户终端向所述第二编译终端发起远程控制后,使得用户终端控制所述第二编译终端上安装的目标模拟器模拟所述待处理程序。

可选的,所述错误信息是以视频的形式呈现的;所述视频是第一编译终端通过录屏得到的。

通过本实施例的装置,响应于编译请求,确定所述待处理程序的类型;基于所述待处理程序的类型,确定所述待处理程序对应的目标编译环境;根据所述目标编译环境,从预设的云编译系统中确定用于执行编译任务的第一编译终端;所述目标终端中包含所述目标编译环境;将所述待处理程序发送给所述第一编译终端。由此,通过识别程序的类型,并确定出与程序的类型相对应的目标编译环境,实现自动匹配编译环境,进而能够满足用户对不同编译环境的需求。

参考图8,示出了本发明实施例提供的一种采用jupyter的自动编译装置的结构示意图,该装置应用于终端,该装置包括:

第二接收单元801,用于接收待处理程序;

第二发送单元802,用于将所述待处理程序发送给服务器,以使所述服务器基于上述S101-S104的方法对所述待编译的程序进行处理;

第三接收单元803,用于接收服务器发送的编译结果。

可选的,所述第三接收单元,具体用于:

接收中心服务器发送的安装包;

或者

接收中心服务器发送的可执行程序。

可选的,程序共享单元,用于:

接收用户上传的共享程序;

确定所述共享程序的可编辑部分;

对所述工程程序的可编辑部分进行标记。

可选的,所述第二接收单元,具体用于:

调取共享程序;

获取共享程序可编辑部分的修改结果,得到修改后的程序;

将所述修改后的程序作为待编译的程序。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种采用jupyter的自动编译方法及装置
  • 一种薄板配件工艺台阶成型装置及制造方法和采用该成型装置的压型方法
技术分类

06120112607980