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、可选的,所述获得模块,具体用于:
31、响应于量子程序的源代码不存在未含参的量子内核函数,基于所述源代码,生成中间代码。
32、可选的,所述获得模块,还具体用于:
33、响应于所述源代码中存在未含参的量子内核函数,将未含参的量子内核函数直接编译成对应的目标代码;
34、基于除未含参的量子内核函数的源代码,生成中间代码。
35、可选的,所述判断模块,具体用于:
36、识别编译过程中的量子内核函数的标记,并判断识别到的标记是否为预先针对量子内核函数设置的标记;
37、如果是,判断所述量子内核函数是否已经存在对应的目标代码。
38、可选的,所述量子内核函数的标记包括对量子内核函数执行语法糖操作的标记。
39、可选的,所述编译模块,具体用于:
40、利用解释器调用即时编译模块,将所述中间代码中的所述量子内核函数编译成对应的目标代码,其中,所述解释器加载有所述中间代码。
41、可选的,所述编译模块,还具体用于:
42、利用解释器调用即时编译模块,编译所述中间代码中所述量子内核函数,并对所述量子内核函数中未参与的部分进行线路优化,获得对应的目标代码,其中,所述优化至少包括无效门的移除。
43、可选的,所述调用模块,具体用于:
44、基于所述量子内核函数对应的目标代码,生成有向无环图,其中,所述有向无环图的起始节点和结束节点表征量子比特,中间节点表征量子逻辑门,边表征经过节点后的量子比特;
45、基于预先设置的优化规则,对所述有向无环图进行修改;
46、利用修改后的有向无环图,生成目标量子线路;
47、调用所述目标量子线路。
48、本申请的一个实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时实现上述任一项所述的方法。
49、本申请的一个实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现上述任一项所述的方法。
50、与现有技术相比,本专利技术先基于量子程序的源代码,获得中间代码;当编译到所述量子内核函数时,然后判断所述量子内核函数是否已经存在对应的目标代码;如果不存在,则将所述中间代码中所述量子内核函数编译成对应的目标代码;如果存在,则调用所述量子内核函数对应的目标代码。通过判断是否已经存在量子内核函数已经存在对应的目标代码决定是否对量子内核函数进行编译,减少了编译的耗时,提高编译效率。
本文档来自技高网...【技术保护点】
1.一种编译方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于量子程序的源代码,获得中间代码,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于量子程序的源代码,获得中间代码,还包括:
4.根据权利要求1所述的方法,其特征在于,当编译到所述量子内核函数时,判断所述量子内核函数是否已经存在对应的目标代码,包括:
5.根据权利要求4所述的方法,其特征在于,所述量子内核函数的标记包括对量子内核函数执行语法糖操作的标记。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述将中间代码中所述量子内核函数编译成对应的目标代码,包括:
7.根据权利要求6所述的方法,其特征在于,所述利用解释器调用即时编译模块,将所述中间代码中的所述量子内核函数编译成对应的目标代码,包括:
8.根据权利要求1所述的方法,其特征在于,所述调用所述量子内核函数对应的目标代码,包括:
9.一种编译装置,其特征在于,所述装置包括:
10.一种存储介质,其特征在于,所述存
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现所述权利要求1至8任一项所述的方法。
...【技术特征摘要】
1.一种编译方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于量子程序的源代码,获得中间代码,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于量子程序的源代码,获得中间代码,还包括:
4.根据权利要求1所述的方法,其特征在于,当编译到所述量子内核函数时,判断所述量子内核函数是否已经存在对应的目标代码,包括:
5.根据权利要求4所述的方法,其特征在于,所述量子内核函数的标记包括对量子内核函数执行语法糖操作的标记。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述将中间代码中所述量子内核函数编译成对应的目标代码,包括:<...
【专利技术属性】
技术研发人员:请求不公布姓名,请求不公布姓名,请求不公布姓名,
申请(专利权)人:本源量子计算科技合肥股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。