当前位置: 首页 > 专利查询>贝宝公司专利>正文

无依赖性的快速编译源代码制造技术

技术编号:36737413 阅读:29 留言:0更新日期:2023-03-04 10:10
提供了用于源代码的超事实软件编译的技术。编译器接收软件代码并且可以将其划分为代码段。可以生成有序节点图谱,使得该图中的每个节点可以包括代码段,并且节点的顺序表示软件代码的执行顺序。可以与其他代码段并行地且独立于其他代码段来将每个代码段编译成可执行对象。二进制可执行文件可以通过链接从代码段生成的可执行对象来生成。该方法与现有的源代码编译技术存在显著不同,因为常规的编译器按顺序来建立可执行文件,而本实施方式将源代码划分成多个较小的代码段,并且单独地且并行地对它们进行编译。对多个代码段进行编译相对于常规技术在数量级上改进了编译工作。于常规技术在数量级上改进了编译工作。于常规技术在数量级上改进了编译工作。

【技术实现步骤摘要】
【国外来华专利技术】无依赖性的快速编译源代码
[0001]相关申请的交叉引用
[0002]本申请要求2020年6月25日提交的美国申请第16/912,507号和2020年6月25日提交的美国申请第16/912,517号的优先权,其全部内容通过引用并入本文。


[0003]本公开内容一般涉及软件操作的根本性变化,允许通过改变软件依赖性操作的方式来进行更快的行动,特别地在一些实施方式中涉及安装和更新操作系统以及将源代码编译为二进制可执行文件。

技术介绍

[0004]常规上,通过在计算设备上按顺序安装多个组件来安装操作系统。随着组件被安装,组件从未安装状态转变到已安装状态。此外,后续组件的安装往往依赖于先前的组件从未安装状态转变到已安装状态。例如,如果组件B依赖于组件A的成功安装,则在组件A完成之前无法完成(或者在许多情况下甚至不能开始)组件B的安装。由于这些依赖关系,操作系统的安装过程是高度顺序化的,因此很难并行化。此外,如果组件中的一个组件的安装失败,则在这个受阻组件之后的组件的安装也会失败。这导致整个安装过程失败,从而导致安装和处理时间的浪费。...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于对程序进行编译的方法,所述方法包括:接收软件代码的程序;将所述软件代码分割成多个代码段;生成通过至少一个边而链接的有序节点的图谱,其中,节点包括所述多个代码段中的一代码段,并且其他节点包括所述多个代码段中的其他代码段;将所述节点中的所述代码段编译成多个可执行对象中的一可执行对象,并且并行地且独立地将所述其他节点中的所述其他代码段编译成所述多个可执行对象中的其他可执行对象;以及根据所述多个可执行对象生成可执行文件,其中,所述可执行文件中的所述可执行对象的顺序与所述图谱中所述节点的顺序相对应。2.根据权利要求1所述的方法,其中,所述图谱包括键

值对,其中,所述键

值对中的键是所述节点并且包括所述图谱中的所述节点的顺序,以及所述键

值对中的值是来自所述软件代码的代码段。3.根据权利要求2所述的方法,其中,所述值附加有在所述图谱中的至少一个边中一个边以及所述边的顺序。4.根据权利要求1所述的方法,还包括:向所述节点分配未编译状态;以及当所述代码段被编译成所述可执行对象时,将所述节点切换到已编译状态。5.根据权利要求1所述的方法,其中,所述编译还包括:执行对所述节点中的所述代码段的词法分析,并且并行地执行对所述其他节点中的所述其他代码段的词法分析;基于所述代码段的词法分析生成所述代码段的抽象语法树,并且并行地生成所述其他代码段的抽象语法树;根据所述代码段的抽象语法树生成所述代码段的汇编代码,并且并行地根据所述其他代码段的抽象语法树生成所述其他代码段的其他汇编代码;以及根据所述代码段的汇编代码生成所述代码段的所述可执行对象,并且并行地根据所述其他汇编代码生成所述其他代码段的其他可执行对象。6.根据权利要求5所述的方法,其中,所述编译还包括:从所述其他汇编代码中识别与所述汇编代码重叠的第二汇编代码;以及从所述有序节点的图谱中删除与所述第二汇编代码相对应的第二节点。7.根据权利要求1所述的方法,其中,所述代码段包括以下中的至少一者:所述软件代码中的函数、所述软件代码中从所述函数返回的变量、所述软件代码中对所述变量的操作、所述软件代码中的循环、或所述软件代码中的决策语句。8.一种用于对程序进行编译的系统,所述系统包括:存储指令的非暂态存储器;以及一个或更多个硬件处理器,所述一个或更多个硬件处理器耦接到所述非暂态存储器,并且所述一个或更多个硬件处理器被配置成从所述非暂态存储器中读取指令以使所述系统执行操作,所述操作包括:接收软件代码的程序;
将所述软件代码分割成多个代码段;生成通过至少一个边而链接的有序节点的图谱,其中,节点包括所述多个代码段中的一代码段,并且其他节点包括所述多个代码段中的其他代码段;将所述节点中的所述代码段编译成多个可执行对象中的一可执行对象,并且并行地将所述其他节点中的所述其他代码段编译成所述多个可执行对象中的其他可执行对象;以及将所述可执行对象链接至可执行文件,其中,所述可执行文件中的所述可执行对象的顺序与所述图谱中所述节点的顺序相对应。9.根据权利要求8所述的系统,其中,所述图谱包括键

值对,其中,所述键

值对中的键是所述节点和所述图谱中的所述节点的顺序,以及所述键

值对中的值是来自所述软件代码的代码段。10.根据权利要求8所述的系统,其中,所述操作还包括:向所述节点分配未编译状态;以及当所述代码段被编译成所述可执行对象时,将所述节点切换到已编译状态。11.根据权利要求10所述的系统,其中,所述...

【专利技术属性】
技术研发人员:亚伯拉罕
申请(专利权)人:贝宝公司
类型:发明
国别省市:

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

1