CN109816112B - 一种解析量子程序存储文件的方法及装置 - Google Patents
一种解析量子程序存储文件的方法及装置 Download PDFInfo
- Publication number
- CN109816112B CN109816112B CN201910028008.1A CN201910028008A CN109816112B CN 109816112 B CN109816112 B CN 109816112B CN 201910028008 A CN201910028008 A CN 201910028008A CN 109816112 B CN109816112 B CN 109816112B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- nodes
- quantum program
- quantum
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种解析量子程序存储文件的方法及装置,属于量子计算机技术领域,包括获取待解析量子程序存储文件的内存地址;通过内存地址访问待解析量子程序存储文件;获取待解析量子程序存储文件中的节点数据;将节点数据中所记录的节点信息读取到内存中;根据节点信息判断与该节点信息对应的节点数据的类型;根据所存储的数据节点类型创建对应的节点。本发明解决了在执行量子程序时,如何将量子程序存储文件转换为量子程序的问题。
Description
技术领域
本发明涉及量子计算机技术领域,特别涉及一种解析量子程序存储文件的方法及装置。
背景技术
量子计算机因其具有相对于普通计算机更高效的处理数学问题的能力,例如能将破解RSA秘钥的时间从数百年加速到数小时,故成为一种正在研究中的关键技术。现阶段的量计算机的原型机的量子位数量较少,实际处理速度还不及经典计算机。
为了解决这个问题,人们用量子虚拟机对量子计算机的行为进行预测,这种方法通常用来验证量子算法或量子计算机行为的正确性,对量子算法和量子计算机的设计进行指导。量子虚拟机是人们使用经典计算机语言实现的对代表量子逻辑门的幺正变换矩阵和代表量子态的复数矢量之积的模拟,人们可使用量子语言编写的量子程序在经典计算机上操控量子虚拟机对量子态的变化进行分析与仿真。
不管是量子虚拟机或量子计算机都需要通过量子程序控制其执行,而量子程序由量子逻辑门指令组成,故需要一种数据结构记录量子逻辑门指令的意义以及其执行顺序,称之为量子程序数据结构。利用量子程序数据结构对量子程序进行表示,然后对表示量子程序的量子程序数据结构做持久化储存,生成量子程序存储文件以保存量子程序,提高量子程序的可移植性。
但在实际应用中,如果要执行该量子程序还需要对该量子程序的存储文件进行解析,将量子程序存储文件转换为量子程序。
发明内容
本发明的目的在于提供一种解析量子程序存储文件的方法及装置,以将量子程序存储文件转换为量子程序。
为实现以上目的,第一方面,提供一种解析量子程序存储文件的方法,包括:
获取待解析量子程序存储文件的内存地址,其中:所述量子程序存储文件包括节点数据,所述节点数据包括头节点和数据存储节点,所述数据存储节点中存储有待解析量子程序中的数据节点;
通过所述内存地址访问所述待解析量子程序存储文件;
获取所述待解析量子程序存储文件中的所述节点数据;
将所述节点数据中所记录的节点信息读取到内存中;
根据所述节点信息判断与该所述节点信息对应的节点数据的类型;
根据所存储的数据节点类型创建对应的节点。
优选地,所述将所述节点数据中所记录的节点信息读取到内存中,包括:
读取所述待解析量子程序存储文件的头节点;其中:所述头节点保存有所述待解析量子程序存储文件的头数据结构,所述头数据结构记录有所述待解析量子程序的所述节点数据的总数量和总长度;
将所述待解析量子程序存储文件的总长度减去所述头节点的长度,得到所述数据存储节点的总长度;
根据所述头数据结构中记录的所述待解析量子程序的节点数据的总数量,依次将所述待解析量子程序存储文件中数据节点的对应节点信息读取到所述内存中,并创建判断表达式栈;
设置无符号整型node指向所述内存的首地址,将所述数据节点的总数量减1作为尾节点编号。
优选地,所述根据所述节点信息判断与该所述节点信息对应的节点数据的类型,包括:
创建量子程序节点,记为第一节点,设置当前第一节点的子节点链表所述尾节点编号;
以无符号整型为单位读取所述数据存储节点中所存储的数据节点的位置编号,并根据该所述数据节点的位置编号判断所述数据节点的位置编号与所述尾节点编号是否相同;
如果是,则结束解析过程;
如果否,则以无符号整型的数据类型读取所述数据存储节点中所存储的数据节点的类型。
优选地,所述根据所存储的数据节点类型创建对应的节点,包括:
将所述无符号整型node值自加1,并将所述数据节点的总长度自减m,其中:m为无符号整型的长度;
以无符号整型为单位读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点;
再令所述数据节点的总长度自减m后,并判断剩余长度是否小于等于零;
若是,则结束解析过程;
若否,则返回执行所述将所述无符号整型node值自加1,并将所述数据节点的总长度自减m。
优选地,所述数据节点的类型包括量子程序节点、量子逻辑门节点、表达式节点和控制节点,量子程序节点、表达式节点和控制节点均包含子节点;所述数据存储节点包括第一类数据存储节点、第二类数据存储节点和第三类数据存储节点,分别用于存储量子逻辑门节点、表达式节点和控制节点;
在当前遍历的数据存储节点中所存储的数据节点类型为量子逻辑门节点时,所述以无符号整型为单位读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点,包括:
将所述无符号整型node值自加1,并将所述数据节点的总长度自减m,并以无符号整型的数据类型读取所述第一类数据存储节点中所存储的量子比特信息;
以无符号整型的数据类型读取所述第一类数据存储节点中所存储的量子逻辑门转置信息;
根据所述量子比特信息和所述量子逻辑门转置信息,创建量子逻辑门节点;
将所述量子逻辑门节点加到所述第一节点的尾部。
优选地,在所述当前遍历的数据存储节点中所存储的数据节点类型为表达式节点时,所述以无符号整型为单位读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点,包括:
将所述无符号整型node值自加1,并将所述数据节点的总长度自减m,并以无符号整型的数据类型指针读取所述第二类数据存储节点中所存储的经典寄存器或表达式对应的运算符;
若所存储的为经典寄存器所对应的运算符,则将该运算符转换为与所述经典寄存器所对应的编号,创建经典寄存器节点;
将该经典寄存器节点入栈所述判断表达式栈;
若所存储的为表达式对应的运算符,创建与该表达式节点类型对应的节点。
优选地,所述表达式对应的运算符包括双操作数运算符和单操作数运算符;在所述存储的运算符信息为双操作数运算符时,所述若所存储的为表达式对应的运算符,创建与该表达式节点类型对应的节点,包括:
根据所述双操作数运算符,创建第一逻辑运算符节点;
从所述判断表达式栈中出栈两个判断表达式节点,与所述双操作数运算符组成二叉树;
将所述第一逻辑运算符节点入栈所述判断表达式栈;
将所述存储的运算符信息转换成经典寄存器的编号,并创建经典寄存器节点;
将该所述经典寄存器节点入栈所述判断表达式栈。
优选地,所述表达式对应的运算符包括双操作数运算符和单操作数运算符;在所述存储的运算符信息为单操作数运算符时,所述根据所存储的运算符信息,创建与该数据节点类型对应的节点,包括:
根据所述单操作数运算符,创建第二逻辑运算符节点;
从所述判断表达式栈中出栈一个判断表达式节点,与所述单操作数运算符组成二叉树;
将所述第二逻辑运算符节点入栈所述判断表达式栈。
优选地,所述控制节点包括条件判断控制节点和循环判断控制节点,在所述当前遍历的数据存储节点中所存储的数据节点为条件判断控制节点时,所述以无符号整型的数据类型指针读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点,包括:
将所述无符号整型node值自加1,并将所述数据节点的总长度自减m,并以无符号整型的数据类型指针读取所述第三类数据存储节点中所存储的正确分支节点的尾节编号信息和失败分支节点的尾节点编号信息;
创建量子程序节点,记为第二节点,并将正确分支节点的尾节编号设置为该第二节点的子节点链表尾节点编号;
判断失败分支节点的编号是否为0;
若否,则重新创建量子程序节点,记为第三节点,并将失败分支节点的尾节编号设置为该第三节点的子节点链表尾节点编号;
若是,则创建条件判断控制节点,所述条件判断控制节点输入参数为所述二叉树的头节点指针和正确分支节点的指针和/或失败分支节点的指针;
将创建的所述条件判断控制节点添加到所述第一节点的尾部。
优选地,所述控制节点包括条件判断控制节点和循环判断控制节点,在所述当前遍历的数据存储节点中所存储的数据节点为循环判断控制节点时,所述以无符号整型的数据类型指针读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点,包括:
将所述无符号整型node值自加1,并将所述数据节点的总长度自减m,并以无符号整型的数据类型指针读取所述第三类数据存储节点中所存储的正确分支节点的尾节编号信息;
重新创建量子程序节点,记为第四节点,并将正确分支节点的尾节编号设置为该第四节点的子节点链表尾节点编号;
创建循环判断控制节点,所述循环判断控制节点的输入参数为所述二叉树的头节点指针和正确分支节点的指针;
将该所述循环判断控制节点添加到所述第一节点的尾部。
优选地,在所述读取所述量子程序存储文件的头节点之后,还包括:
判断所述量子程序存储文件的大小与所述头节点中记录的文件大小是否相同;
若是,则计算所述数据节点的总长度;
若否,则结束解析过程。
第二方面,提供一种解析量子程序存储文件的装置,包括:第一获取模块、访问模块、第二获取模块、读取模块、判断模块以及节点创建模块;
第一获取模块用于获取待解析量子程序存储文件的内存地址,其中:所述量子程序存储文件包括节点数据,所述节点数据包括头节点和数据存储节点,所述数据存储节点中存储有待解析量子程序中的数据节点;
访问模块用于通过所述内存地址访问所述待解析量子程序存储文件;
第二获取模块用于获取所述待解析量子程序存储文件中的所述节点数据;
读取模块用于将所述节点数据中所记录的节点信息读取到内存中;
判断模块用于根据所述节点信息判断与该所述节点信息对应的节点数据的类型;
节点创建模块用于根据所存储的数据节点类型创建对应的节点。
第三方面,提供一种存储介质,包括与存储设备结合使用的量子计算机程序,所述量子计算机程序用于被处理器执行以对量子程序存储文件进行解析,执行步骤包括:
获取待解析量子程序存储文件的内存地址,其中:所述量子程序存储文件包括节点数据,所述节点数据包括头节点和数据存储节点,所述数据存储节点中存储有待解析量子程序中的数据节点;
通过所述内存地址访问所述待解析量子程序存储文件;
获取所述待解析量子程序存储文件中的所述节点数据;
将所述节点数据中所记录的节点信息读取到内存中;
根据所述节点信息判断与该所述节点信息对应的节点数据的类型;
根据所存储的数据节点类型创建对应的节点。
与现有技术相比,本发明存在以下技术效果:本发明中解析的量子程序存储文件的内容是存储量子程序的数据结构,其包括头节点和数据存储节点。其中:数据存储结构用于存储量子程序的节点,量子程序的节点包括量子逻辑门节点、表达式节点和控制节点;头节点用于保存文件头数据结构,文件头数据结构用于统计量子程序的节点和量子程序存储文件的总长度。通过按照对应的规则,将量子程序存储文件转换成量子程序,该量子程序的数据结构包括量子逻辑门节点、量子程序节点、量子线路节点、条件判断控制节点、循环判断控制节点和判断表达式节点。解决了在跨操作系统执行该量子程序时,将量子程序存储文件转换为量子程序的转换问题。
附图说明
下面结合附图,对本发明的具体实施方式进行详细描述:
图1是一种解析量子程序存储文件的方法的流程示意图;
图2是量子程序存储文件读取流程示意图;
图3是量子程序节点创建流程示意图;
图4是量子逻辑门节点创建流程示意图;
图5是判断表达式二叉树创建流程示意图;
图6是条件判断控制节点和循环判断控制节点的创建流程示意图;
图7是一种解析量子程序存储文件的装置结构示意图。
具体实施方式
为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。
如图1所示,本实施例公开了一种解析量子程序存储文件的方法,包括如下步骤S1至S6:
S1、获取待解析量子程序存储文件的内存地址;其中:待解析量子程序存储文件包括节点数据,所述节点数据包括头节点和数据存储节点,所述数据存储节点中存储有待解析量子程序中的数据节点;
S2、通过所述内存地址访问所述量子程序存储文件;
S3、读取所述量子程序存储文件中的所述节点数据;
S4、将所述节点数据中所记录的节点信息读取到内存中;
S5、根据所述节点信息判断与该所述节点信息对应的节点数据的类型;
S6、根据所存储的数据节点类型创建对应的节点。
需要说明的是,本实施例所解析的量子程序存储文件是采用同日申请的《一种持久化存储量子程序数据结构的方法》技术方案所存储的,量子程序存储文件包括头节点和数据存储节点,数据存储节点的数据类型为数据类型为无符号整型,用于存储量子程序的节点。数据存储节点包括第一类数据存储节点、第二类数据存储节点和第三类数据存储节点,量子程序的节点包括量子逻辑门节点、表达式节点和控制节点;第一类数据存储节点用于存储量子逻辑门节点,第二类数据存储节点用于存储表达式节点,第三类数据存储节点用于存储控制节点;头节点用于保存文件头数据结构,文件头数据结构用于统计量子程序的节点和量子程序存储文件的总长度;量子程序存储文件存储至存储单元,并得到存储单元的地址或文件句柄。
本实施例根据存储有量子程序存储文件的存储单元的地址或文件句柄读取量子程序存储文件,按照数据节点的类型所对应的规则,将量子程序存储文件转换成量子程序的数据结构,以在跨操作系统执行该量子程序等情况下,对该量子程序的存储文件进行解析,将量子程序存储文件转换为量子程序。
需要说明的是,量子程序存储文件的文件头数据结构如下表1所示:
表1
属性 | 简介 |
uiFileLength | 节点数据的总长度 |
uiNodeCounter | 数据节点的总数 |
表1中,uiFileLength的作用是保存当前存储量子程序存储文件的节点数据的总长度;uiNodeCounter的作用是保存量子程序数据节点的总数。
进一步地,如图2所示,上述步骤S4:将所述节点数据中所记录的节点信息读取到内存中;包括如下步骤S41至S44:
S41、读取所述待解析量子程序存储文件的头节点;其中:头节点保存有所述待解析量子程序存储文件的头数据结构,所述头数据结构记录有所述待解析量子程序的所述节点数据的总数量和总长度;
S42、将待解析量子程序存储文件的总长度减去所述头节点的长度,得到所述数据存储节点的总长度;
需要说明的是,头节点的长度为8字节,数据节点的总长度即为文件总长度减去8字节。
S43、根据所述头数据结构中记录的所述待解析量子程序的节点数据的总数量,依次将所述待解析量子程序存储文件中数据节点的对应节点信息读取到所述内存中,并创建判断表达式栈;
S44、设置无符号整型node指向所述内存的首地址,将所述数据节点的总数量减1作为尾节点编号。
本实施例中,首先利用待解析存储文件的总长度减去头节点的长度,得到数据存储节点的总长度,按照节点数据的总数量,将节点数据读取到内存中;并设置无符号整型node指向内存首地址,以无符号整型为单位读取数据节点,以便于后续对读取的数据节点的类型进行判断和解析。
进一步地,如图3所示,上述步骤S5:根据所述节点信息判断与该所述节点信息对应的节点数据的类型;包括如下步骤S51至S54:
S51、创建量子程序节点QProg,记为第一节点,设置当前第一节点的子节点链表尾节点编号;
S52、以无符号整型的数据类型读取所述数据存储节点中所存储的数据节点的位置编号,并根据该数据节点的位置编号判断该数据节点的位置编号与所述尾节点的编号是否相同,若否则执行步骤S53,若是则执行步骤S54;
具体为,以无符号整型的数据类型读取node的值uiTypeAndNum,获取uiTypeAndNum的第16~31位,uiTypeAndNum的第16~31位用于存储数据存储节点的种类和编号。
S53、以无符号整型的数据类型读取所述数据存储节点中所存储的数据节点的类型;
具体地,以无符号整型的数据类型读取node的值uiTypeAndNum,获取uiTypeAndNum的第1~15位,uiTypeAndNum的第1~15位记录了数据节点的类型。
S54、重新执行步骤S1。
需要说明的是,由于在将量子程序存储为量子程序存储文件时,将数据节点对应的数据存储节点(包括第一类数据存储节点、第二类数据存储节点以及第三类数据节点)的种类和编号存储在uiTypeAndNum的第16~31位,将数据节点的类型存储在uiTypeAndNum的第1~15位。因此,本实施中首先从uiTypeAndNum的第16~31位中解析出数据存储节点的编号和种类,再从uiTypeAndNum的第1~15位解析出数据节点的类型。
进一步地,上述步骤S6:根据所存储的数据节点类型创建对应的节点;包括如下步骤S61至S65:
S61、将所述无符号整型node的值自加1,并将所述数据节点的总长度自减m,m为无符号整型的长度,取值为4;
S62、以无符号整型的数据类型指针读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点;
S63、再令所述数据节点的总长度自减4后,并判断剩余长度是否小于等于零,若是执行步骤S64,若否执行步骤S65;
S64、结束解析过程;
S65、重复执行所述步骤S61~S64。
本实施例中,以无符号整型为单位读取数据节点,在读取一个数据节点后,并数据节点类型创建对应的节点,以对解析出的数据节点进行存储。同时将数据节点总长度自减4即无符号整型的长度,并以无符号整型数据类型指针读取下一数据节点,直至数据节点的总长度为零,即说明所有的数据节点被读取完毕。
进一步地,量子逻辑门节点存储在第一类数据存储节点中,第一类数据存储节点的数据结构如表2所示,包括32位的uiTypeAndNum1结构和2位的usQBitArray1结构。
表2
属性 | 作用 |
uiTypeAndNum | 当前逻辑门节点的类型和编号 |
usQBitArray[2] | 当前逻辑门节点相关的量子比特 |
表2中,usQBitArray[2]的作用是记录逻辑门相关的量子比特;uiTypeAndNum的作用是记录逻辑门节点的种类和编号,uiTypeAndNum的数据类型为无符号整型,无符号整型在32位或64位操作系统中都是32bit。uiTypeAndNum把第0位用来保存量子逻辑门是否为转置,第1~15位保存逻辑门节点的种类,第16~31位保存逻辑门节点的时序位置,该时序位置通过更新记录第一类数据存储节点的数量实现,如表3所示:
表3
编号 | 种类 | 转置 |
16~31 | 1~15 | 0 |
如图4所示,在当前遍历的数据存储节点中所存储的数据节点类型为量子逻辑门节点时,上述步骤S62:以无符号整型的数据类型指针读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点;具体包括如下步骤S621至S624:
S621、将所述无符号整型node的值自加1,并将所述数据节点的总长度自减4,并以无符号整型的数据类型指针读取所述第一类数据存储节点中所存储的量子比特信息;
具体地,以无符号整型的数据类型指针读取node的值usQBitArray,usQBitArray的作用是记录逻辑门相关的目标量子比特和记录逻辑门相关的控制量子比特。
S622、以无符号整型的数据类型指针读取所述第一类数据存储节点中所存储的量子逻辑门转置信息;
具体地,以无符号整型的数据类型指针读取node的值uiTypeAndNum,uiTypeAndNum的第0位用来保存量子逻辑门是否为转置。
S623、根据所述量子比特信息和量子逻辑门转置信息,创建量子逻辑门节点;
S624、将创建的量子逻辑门节点加到所述量子程序节点QProg的尾部。
需要说明的是,由于在将量子程序存储为量子存储文件时,利用uiTypeAndNum的第0位来保存量子逻辑门是否为转置,usQBitArray的作用是记录逻辑门相关的目标量子比特和记录逻辑门相关的控制量子比特。因此,在解析过程中,从uiTypeAndNum的第0位解析出量子逻辑门的转置信息,从usQBitArray存储的信息中解析出逻辑门相关的目标量子比特和逻辑门相关的控制量子比特,从而根据量子逻辑门的转置信息、相关的目标量子比特和逻辑门相关的控制量子比特,即可创建量子逻辑门节点。
需要说明的是,第二类数据存储节点的结构如表4所示,包括uiData结构和32位的uiTypeAndNum结构:
表4
属性 | 作用 |
uiTypeAndNum | 表达式节点的类型和编号 |
uiData | 表达式节点记录的信息 |
表4中,uiTypeAndNum的作用是记录数据节点的种类和编号;uiData的作用是记录目标经典寄存器或表达式对应的运算符,该运算符包括双操作数运算符和单操作数运算符。
iTypeAndNum结构的第16~31位实存储第二类数据存储节点的数量;第二类数据存储节点对应的表达式节点的类型保存在uiTypeAndNum结构的第1~15位,实现对应的表达式节点的类型存储;第二类数据存储节点对应的表达式节点记录的信息存放在uiData结构中,实现对应的表达式节点记录的信息存储。
进一步地,如图5所示,在所述当前遍历的数据存储节点中所存储的数据节点类型为表达式节点时,上述步骤S62:以无符号整型的数据类型指针读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点;包括如下步骤S625至S633:
S625、将所述无符号整型node的值自加1,并将所述数据节点的总长度自减4,并以无符号整型的数据类型指针读取所述第二类数据存储节点中所存储的运算符信息;
具体地,无符号整型的数据类型指针读取node的值uiData,uiData的作用是记录目标经典寄存器或表达式对应的运算符,表达式对应的运算符包括双操作数运算符和单操作数运算符。
S626、若所存储的为经典寄存器所对应的运算符,则将经典寄存器所对应的运算符转换为经典寄存器所对应的编号,创建经典寄存器节点;
S627、将经典寄存器节点入栈所述判断表达式栈,然后跳转执行步骤S63;
S628、若所存储的运算符信息为双操作数运算符,创建第一逻辑运算符节点;
S629、从所述判断表达式栈中出栈两个判断表达式节点,与所述双操作数运算符组成二叉树;其中:先出栈的判断表达式节点作为右叶子节点,后出栈的判断表达式节点作为左叶子节点,第一逻辑运算符节点为根节点;
S630、将第一逻辑运算符节点入栈所述判断表达式栈,然后跳转执行步骤S63;
S631、所存储的运算符信息为单操作数运算符,创建第二逻辑运算符节点;
S632、从所述判断表达式栈中出栈一个判断表达式节点,与所述单操作数运算符组成二叉树;将出栈的判断表达式节点作为右叶子节点,第二逻辑运算符节点作为根节点;
S633、将所述第二逻辑运算符节点入栈所述判断表达式栈,然后跳转执行步骤S63。
需要说明的是,由于在将量子程序存储为量子程序存储文件时,将表达式节点以二叉树的形式给出,并把相关信息保存在第二类数据存储节点中,第二类数据存储节点存储所述第二类数据存储节点的数量、对应的表达式节点的类型和对应的表达式节点记录的信息。uiTypeAndNum2的作用是记录数据节点的种类和编号;uiData2的作用是记录目标经典寄存器或表达式对应的运算符。本实施例中通过解析出目标经典寄存器和表达式对应的运算符,并创建相应类型的节点对其进行存储,完成表达式节点的解析。
需要说明的是,第三类数据存储节点用于存储控制节点,其数据结构包括32位的uiTypeAndNum结构和32位的uiTrueAndFalseNode结构,如表5所示:
表5
属性 | 简介 |
uiTypeAndNum | 当前节点的类型和编号 |
uiTrueAndFalseNode | 正确和失败节点顺序编号 |
表5中,uiTypeAndNum的作用是记录节点的种类和编号。uiTrueAndFalseNode的作用是记录当前节点对应的正确分支节点和错误分支节点的尾节点(即最后一个子节点)的编号。
uiTrueAndFalseNode的第0~15位是失败分支节点的尾节点编号,第16~31位是正确分支节点的的尾节点编号,如下表6所示:
表6
正确分支的节点编号 | 失败分支的节点编号 |
16~31 | 0~15 |
进一步地,如图6所示,控制节点包括条件判断控制节点和循环判断控制节点,在所述当前遍历的数据存储节点中所存储的数据节点为条件判断控制节点时,上述步骤S62:以无符号整型的数据类型指针读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点;包括如下步骤S634至S639:
S634、将所述无符号整型node的值自加1,并将所述数据节点的总长度自减4,并以无符号整型的数据类型指针读取所述第三类数据存储节点中所存储的正确分支节点的尾节编号信息和失败分支节点的尾节点编号信息;
具体地,以无符号整型的数据类型指针读取node的值uiTrueAndFalseNode,uiTrueAndFalseNode记录的是条件判断节点的正确分支的尾节点编号和失败分支的尾节点编号。正确分支的尾节点编号在uiTrueAndFalseNode的第16~31位,失败分支的尾节点编号在uiTrueAndFalseNode的第0~15位。
S635、重新创建量子程序节点QProg,记为第二节点,并将正确分支节点的尾节编号设置为该第二节点的子节点链表尾节点编号;
S636、判断失败分支节点的编号是否为0;若否,则执行步骤S637,若是,则执行步骤S638;
S637、重新创建量子程序节点QProg,记为第三节点,并将失败分支节点的尾节编号设置为该第三节点的子节点链表尾节点编号;
S638、创建条件判断控制节点,条件判断控制节点输入参数为所述二叉树的头节点指针、正确分支节点的指针和/或失败分支节点的指针;
S639、将创建的条件判断控制节点添加到第一节点的尾部。
需要说明的是,控制节点包括条件判断控制节点和循环判断控制节点控制节点,条件判断控制节点和循环判断控制节点控制节点均包括控制表达式节点、控制类型节点和控制分支节点;在将量子程序存储为量子程序存储文件过程中:先遍历存储所述控制表达式节点,再存储所述控制类型节点和所述控制分支节点。而且控制分支节点包括满足控制条件表达式的正确分支节点和不满足控制条件表达式的失败分支节点。
本实施例中,第三类数据存储节点存储所述第三类数据存储节点的数量、所述控制类型节点的类型、及所述正确分支节点的最后一个子节点的编号和所述失败分支节点的最后一个子节点的编号,具体为;利用uiTypeAndNum记录节点的种类和编号,利用uiTrueAndFalseNode的作用当前节点对应的正确分支节点和错误分支节点的尾节点(即最后一个子节点)的编号,利用uiTrueAndFalseNode的第0~15位是失败分支节点的尾节点编号,第16~31位是正确分支节点的尾节点编号。
本实施例中从第三类数据存储节点中解析出二叉树的头节点指针、正确分支节点的指针和/或失败分支节点的指针,即可作为输入参数创建条件判断控制节点,完成条件判断控制节点类的解析。
进一步地,在所述当前遍历的数据存储节点中所存储的数据节点为条件判断控制节点时,上述步骤S62:以无符号整型的数据类型指针读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点;包括如下步骤S640至S643:
S640、将所述无符号整型node的值自加1,并将所述数据节点的总长度自减4,并以无符号整型的数据类型指针读取所述第三类数据存储节点中所存储的正确分支节点的尾节编号信息;
具体地,以无符号整型的数据类型指针读取node的值uiTrueAndFalseNode3,获取循环控制节点的正确分支编号。
S641、重新创建量子程序节点QProg,记为第四节点,并将正确分支节点的尾节编号设置为该量子程序节点QProg的子节点链表尾节点编号;
S642、创建循环判断控制节点,循环判断控制节点的输入参数为所述二叉树的头节点指针和正确分支节点的指针;
S643、将创建的循环判断控制节点添加到第一节点尾部。
进一步地,如图2所示,在上述步骤S41:所述读取所述量子程序存储文件的头节点之后,还包括如下步骤:
判断所述量子程序存储文件的大小与所述头节点中记录的文件大小是否相同;
若是,则计算所述数据节点的总长度;
若否,则结束解析过程。
需要说明的是,在进行量子程序存储文件之前,先判断量子程序存储文件的大小与头节点中记录的文件大小是否相同,若不相同,说明量子程序存储文件出现损坏,则立即退出解析程序,避免解析出的量子程序出现错误。
本实施例通过如果不相同则说明量子程序存储文件出现损坏,退出解析程序;如果相同,则说明量子程序存储文件正常,获取文件的总节点数并执行上述步骤。
进一步地,本实施例对量子程序存储文件进行解析的具体过程为:
第1步:读取量子程序存储文件的文件头;
第2步:判断打开文件的大小与文件头中记录的文件大小是否相同;如果不相同文件出现损坏,退出解析程序;如果相同获取文件的总节点数。创建判断表达式栈,继续执行第3步;
第3步:根据文件头中记录的节点数量,把文件中记录的节点信息一次性读取到内存中,设置无符号整型node指向内存首地址,把总节点数减1作为尾节点编号;
第4步:创建量子程序节点QProg,设置当前QProg的子节点链表尾节点编号;
第5步:以无符号整形的数据类型读取node的值uiTypeAndNum;获取uiTypeAndNum的第16~31位为节点的位置编号,判断节点是否等于尾节点,如果是则返回;如果不是则获取uiTypeAndNum的第1~15位;uiTypeAndNum的1~15位记录的是节点对应的种类;判断节点种类;
第6步:如果是量子逻辑门节点类型,跳转到第9步同时传入QProg的尾节点位置和QProg指针;
如果是表达式节点类型,跳转到第11步;
如果是控制节点类型,跳转到第21步,并同时传入二叉树头节点、QProg的尾节点位置和QProg指针;
第7步:剩余节点总长度减4是否小于等于0,如果是算法结束;如果否则,node自加1,剩余节点总长度自减4,算法结束,否则执行下一步;
第8步:跳转到第5步;
第9步:node自加1,剩余节点总长度自减4,以无符号短整形的数据类型指针读取node的值usQBitArray,usQBitArray[0]是目标量子比特,usQBitArray[1]是控制量子比特。
根据量子逻辑门节点类型创建对应的量子逻辑门节点。根据uiTypeAndNum1的第0位设置量子逻辑门是否转置;
第10步:把量子逻辑门节点加到量子程序节点QProg尾部,跳转到第7步;
第11步:判断判断表达式数据节点类型,node自加1,剩余节点总长度自减4,获取node的值uiData;如果是逻辑运算符类型则跳转到第12步;如果是经典寄存器类型则跳转到第19步;
第12步:把uiData转换为逻辑运算符,如果逻辑运算符节点类型为双操作数运算符跳转到第13步;如果逻辑运算符为单操作数运算符跳转到第16步;
第13步:创建第一逻辑运算符节点;
第14步:从判断表达式栈中出栈两个判断表达式节点,与当前逻辑门运算符组成二叉树,先出栈的判断表达式节点作为右叶子节点,后出栈的判断表达式节点为左叶子节点,第一逻辑运算符节点为根节点;
第15步:第一逻辑运算符节点入栈判断表达式栈,跳转到第7步;
第16步:创建第二逻辑运算符节点;
第17步:从判断表达式栈中出栈一个判断表达式节点,与当前逻辑门运算符组成二叉树,出栈的判断表达式节点作为右叶子节点,第二逻辑运算符节点为根节点;
第18步:第二逻辑运算符节点入栈判断表达式栈,跳转到第7步;
第19步:把uiData2转换成经典寄存器的编号,创建经典寄存器节点;
第20步:把经典寄存器节点入栈判断表达式栈,跳转到第7步;
第21步:判断控制节点的类型,如果是条件判断控制节点类型,则跳转到第22步;如果是循环控制节点类型则跳转到第25步;
第22步:node自加1,剩余节点总长度自减4,获取node的值uiTrueAndFalseNode,uiTrueAndFalseNode记录的是条件判断节点的正确分支的尾节点编号和失败分支的尾节点编号。正确分支的尾节点编号在uiTrueAndFalseNode的第16~31位,失败分支的尾节点编号在uiTrueAndFalseNode3的第0~15位;获取条件判断节点的正确分支编号,跳转到第4步同时传入正确分支编号作为尾节点号;
第23步:获取条件判断节点的失败分支编号。如果不为0,跳转到第4步同时传入失败分支编号;如果为0,进行第24步;
第24步:创建条件判断表达式节点,输入参数为传入的判断表达式节点二叉树的头节点指针,正确分支量子程序指针,如果有失败分支则输入失败分支量子程序指针。把条件判断表达式节点添加到QProg尾部,返回;
第25步:node自加1,剩余节点总长度自减4,获取node的值uiTrueAndFalseNode,获取循环控制节点的正确分支编号,跳转到第4步同时传入正确分支编号作为尾节点号;
第26步:创建循环控制节点,输入参数为传入的判断表达式节点二叉树的头节点指针,正确分支量子程序指针。把循环表达式节点添加到QProg尾部,返回。
如图7所示,本实施例还公开了一种解析量子程序存储文件的装置,包括:第一获取模块10、访问模块20、第二获取模30、读取模块40、判断模块50以及节点创建模块60;
第一获取模块10用于获取待解析量子程序存储文件的内存地址,其中:所述量子程序存储文件包括节点数据,所述节点数据包括头节点和数据存储节点,所述数据存储节点中存储有待解析量子程序中的数据节点;
访问模块20用于通过所述内存地址访问所述待解析量子程序存储文件;
第二获取模块30用于获取所述待解析量子程序存储文件中的所述节点数据;
读取模块40用于将所述节点数据中所记录的节点信息读取到内存中;
判断模块50用于根据所述节点信息判断与该所述节点信息对应的节点数据的类型;
节点创建模块60用于根据所存储的数据节点类型创建对应的节点。
需要说明的是,本实施例提供的解析量子程序存储文件的装置,其功能具体参照上述方法实施例,此处不再赘述。
本发明实施例公开一种存储介质,包括与存储设备结合使用的量子计算机程序,所述量子计算机程序用于被处理器执行以对量子程序存储文件进行解析,执行步骤包括:
获取待解析量子程序存储文件的内存地址,其中:所述量子程序存储文件包括节点数据,所述节点数据包括头节点和数据存储节点,所述数据存储节点中存储有待解析量子程序中的数据节点;
通过所述内存地址访问所述待解析量子程序存储文件;
获取所述待解析量子程序存储文件中的所述节点数据;
将所述节点数据中所记录的节点信息读取到内存中;
根据所述节点信息判断与该所述节点信息对应的节点数据的类型;
根据所存储的数据节点类型创建对应的节点。
应当理解的是,实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在可读存储介质中,该程序在执行时,执行包括上述方法实施例的步骤。前述的存储介质包括ROM、RAM、磁碟或光盘等各种可以存储程序代码的介质。
本实施例中的处理器可以是中央处理器,也可以是其它通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者任何常规的处理器等。
存储器可包括只读存储器和随机存取存储器,并向处理器提供指令和数据。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种解析量子程序存储文件的方法,其特征在于,包括:
获取待解析量子程序存储文件的内存地址,其中:所述待解析量子程序存储文件包括节点数据,所述节点数据包括头节点和数据存储节点,所述数据存储节点中存储有待解析量子程序中的数据节点;
通过所述内存地址访问所述待解析量子程序存储文件;
获取所述待解析量子程序存储文件中的所述节点数据;
将所述节点数据中所记录的节点信息读取到内存中;
根据所述节点信息判断与该所述节点信息对应的节点数据的类型;
根据所存储的数据节点类型创建对应的节点。
2.如权利要求1所述的解析量子程序存储文件的方法,其特征在于,所述将所述节点数据中所记录的节点信息读取到内存中,包括:
读取所述待解析量子程序存储文件的头节点;其中:所述头节点保存有所述待解析量子程序存储文件的头数据结构,所述头数据结构记录有所述待解析量子程序的所述节点数据的总数量和总长度;
将所述待解析量子程序存储文件的总长度减去所述头节点的长度,得到所述数据存储节点的总长度;
根据所述头数据结构中记录的所述待解析量子程序的节点数据的总数量,依次将所述待解析量子程序存储文件中数据节点的对应节点信息读取到所述内存中,并创建判断表达式栈;
设置无符号整型node指向所述内存的首地址,将所述数据节点的总数量减1作为尾节点编号。
3.如权利要求2所述的解析量子程序存储文件的方法,其特征在于,所述根据所述节点信息判断与该所述节点信息对应的节点数据的类型,包括:
创建量子程序节点,记为第一节点,设置当前第一节点的子节点链表所述尾节点编号;
以无符号整型为单位读取所述数据存储节点中所存储的数据节点的位置编号,并根据该所述数据节点的位置编号判断所述数据节点的位置编号与所述尾节点编号是否相同;
如果是,则结束解析过程;
如果否,则以无符号整型的数据类型读取所述数据存储节点中所存储的数据节点的类型。
4.如权利要求3所述的解析量子程序存储文件的方法,其特征在于,所述根据所存储的数据节点类型创建对应的节点,包括:
将所述无符号整型node值自加1,并将所述数据节点的总长度自减m,其中:m为无符号整型的长度;
以无符号整型为单位读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点;
再令所述数据节点的总长度自减m后,并判断剩余长度是否小于等于零;
若是,则结束解析过程;
若否,则返回执行所述将所述无符号整型node值自加1,并将所述数据节点的总长度自减m。
5.如权利要求4所述的解析量子程序存储文件的方法,其特征在于,所述数据节点的类型包括量子程序节点、量子逻辑门节点、表达式节点和控制节点,量子程序节点、表达式节点和控制节点均包含子节点;所述数据存储节点包括第一类数据存储节点、第二类数据存储节点和第三类数据存储节点,分别用于存储量子逻辑门节点、表达式节点和控制节点;
在当前遍历的数据存储节点中所存储的数据节点类型为量子逻辑门节点时,所述以无符号整型为单位读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点,包括:
将所述无符号整型node值自加1,并将所述数据节点的总长度自减m,并以无符号整型的数据类型读取所述第一类数据存储节点中所存储的量子比特信息;
以无符号整型的数据类型读取所述第一类数据存储节点中所存储的量子逻辑门转置信息;
根据所述量子比特信息和所述量子逻辑门转置信息,创建量子逻辑门节点;
将所述量子逻辑门节点加到所述第一节点的尾部。
6.如权利要求5所述的解析量子程序存储文件的方法,其特征在于,在所述当前遍历的数据存储节点中所存储的数据节点类型为表达式节点时,所述以无符号整型为单位读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点,包括:
将所述无符号整型node值自加1,并将所述数据节点的总长度自减m,并以无符号整型的数据类型指针读取所述第二类数据存储节点中所存储的经典寄存器或表达式对应的运算符;
若所存储的为经典寄存器所对应的运算符,则将该运算符转换为与所述经典寄存器所对应的编号,创建经典寄存器节点;
将该经典寄存器节点入栈所述判断表达式栈;
若所存储的为表达式对应的运算符,创建与该表达式节点类型对应的节点。
7.如权利要求6所述的解析量子程序存储文件的方法,其特征在于,所述表达式对应的运算符包括双操作数运算符和单操作数运算符;在所述存储的运算符信息为双操作数运算符时,所述若所存储的为表达式对应的运算符,创建与该表达式节点类型对应的节点,包括:
根据所述双操作数运算符,创建第一逻辑运算符节点;
从所述判断表达式栈中出栈两个判断表达式节点,与所述双操作数运算符组成二叉树;
将所述第一逻辑运算符节点入栈所述判断表达式栈;
将所述存储的运算符信息转换成经典寄存器的编号,并创建经典寄存器节点;
将该所述经典寄存器节点入栈所述判断表达式栈。
8.如权利要求6所述的解析量子程序存储文件的方法,其特征在于,所述表达式对应的运算符包括双操作数运算符和单操作数运算符;在所述存储的运算符信息为单操作数运算符时,所述根据所存储的运算符信息,创建与该数据节点类型对应的节点,包括:
根据所述单操作数运算符,创建第二逻辑运算符节点;
从所述判断表达式栈中出栈一个判断表达式节点,与所述单操作数运算符组成二叉树;
将所述第二逻辑运算符节点入栈所述判断表达式栈。
9.如权利要求7或8所述的解析量子程序存储文件的方法,其特征在于,所述控制节点包括条件判断控制节点和循环判断控制节点,在所述当前遍历的数据存储节点中所存储的数据节点为条件判断控制节点时,所述以无符号整型的数据类型指针读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点,包括:
将所述无符号整型node值自加1,并将所述数据节点的总长度自减m,并以无符号整型的数据类型指针读取所述第三类数据存储节点中所存储的正确分支节点的尾节编号信息和失败分支节点的尾节点编号信息;
创建量子程序节点,记为第二节点,并将正确分支节点的尾节编号设置为该第二节点的子节点链表尾节点编号;
判断失败分支节点的编号是否为0;
若否,则重新创建量子程序节点,记为第三节点,并将失败分支节点的尾节编号设置为该第三节点的子节点链表尾节点编号;
若是,则创建条件判断控制节点,所述条件判断控制节点输入参数为所述二叉树的头节点指针和正确分支节点的指针和/或失败分支节点的指针;
将创建的所述条件判断控制节点添加到所述第一节点的尾部。
10.如权利要求7或8所述的解析量子程序存储文件的方法,其特征在于,所述控制节点包括条件判断控制节点和循环判断控制节点,在所述当前遍历的数据存储节点中所存储的数据节点为循环判断控制节点时,所述以无符号整型的数据类型指针读取所述数据存储节点中存储的数据节点的信息,并创建与该数据节点类型对应的节点,包括:
将所述无符号整型node值自加1,并将所述数据节点的总长度自减m,并以无符号整型的数据类型指针读取所述第三类数据存储节点中所存储的正确分支节点的尾节编号信息;
重新创建量子程序节点,记为第四节点,并将正确分支节点的尾节编号设置为该第四节点的子节点链表尾节点编号;
创建循环判断控制节点,所述循环判断控制节点的输入参数为所述二叉树的头节点指针和正确分支节点的指针;
将该所述循环判断控制节点添加到所述第一节点的尾部。
11.如权利要求2所述的解析量子程序存储文件的方法,其特征在于,在所述读取所述量子程序存储文件的头节点之后,还包括:
判断所述量子程序存储文件的大小与所述头节点中记录的文件大小是否相同;
若是,则计算所述数据节点的总长度;
若否,则结束解析过程。
12.一种解析量子程序存储文件的装置,其特征在于,包括:第一获取模块、访问模块、第二获取模块、读取模块、判断模块以及节点创建模块;
第一获取模块用于获取待解析量子程序存储文件的内存地址,其中:所述量子程序存储文件包括节点数据,所述节点数据包括头节点和数据存储节点,所述数据存储节点中存储有待解析量子程序中的数据节点;
访问模块用于通过所述内存地址访问所述待解析量子程序存储文件;
第二获取模块用于获取所述待解析量子程序存储文件中的所述节点数据;
读取模块用于将所述节点数据中所记录的节点信息读取到内存中;
判断模块用于根据所述节点信息判断与该所述节点信息对应的节点数据的类型;
节点创建模块用于根据所存储的数据节点类型创建对应的节点。
13.一种存储介质,其特征在于,包括与存储设备结合使用的量子计算机程序,所述量子计算机程序用于被处理器执行以对量子程序存储文件进行解析,执行步骤包括:
获取待解析量子程序存储文件的内存地址,其中:所述量子程序存储文件包括节点数据,所述节点数据包括头节点和数据存储节点,所述数据存储节点中存储有待解析量子程序中的数据节点;
通过所述内存地址访问所述待解析量子程序存储文件;
获取所述待解析量子程序存储文件中的所述节点数据;
将所述节点数据中所记录的节点信息读取到内存中;
根据所述节点信息判断与该所述节点信息对应的节点数据的类型;
根据所存储的数据节点类型创建对应的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910028008.1A CN109816112B (zh) | 2019-01-11 | 2019-01-11 | 一种解析量子程序存储文件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910028008.1A CN109816112B (zh) | 2019-01-11 | 2019-01-11 | 一种解析量子程序存储文件的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109816112A CN109816112A (zh) | 2019-05-28 |
CN109816112B true CN109816112B (zh) | 2021-01-05 |
Family
ID=66604211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910028008.1A Active CN109816112B (zh) | 2019-01-11 | 2019-01-11 | 一种解析量子程序存储文件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109816112B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144334B2 (en) | 2018-12-20 | 2021-10-12 | Red Hat, Inc. | Quantum computer task manager |
CN110780818B (zh) * | 2019-10-24 | 2023-05-30 | 山东浪潮科学研究院有限公司 | 一种基于量子测控系统软件读取任意数据的文件实现方法 |
CN111176774B (zh) * | 2019-12-30 | 2023-06-09 | 山东浪潮科学研究院有限公司 | 一种基于量子测控系统的ui架构系统及应用方法 |
US11886380B2 (en) | 2020-04-27 | 2024-01-30 | Red Hat, Inc. | Quantum file management system |
US11416221B2 (en) | 2020-05-12 | 2022-08-16 | Red Hat, Inc. | Quantum entanglement protection |
US11676059B2 (en) | 2020-06-23 | 2023-06-13 | Red Hat, Inc. | Performing quantum file pattern searching |
US11556833B2 (en) | 2020-06-25 | 2023-01-17 | Red Hat, Inc. | Performing quantum file concatenation |
US11562283B2 (en) | 2020-06-25 | 2023-01-24 | Red Hat, Inc. | Performing quantum file copying |
US11580247B2 (en) | 2020-06-25 | 2023-02-14 | Red Hat, Inc. | Systems and methods for quantum file permissions |
CN112181924A (zh) * | 2020-09-27 | 2021-01-05 | 深圳市元征科技股份有限公司 | 文件转换方法、装置、设备及介质 |
CN114638367B (zh) * | 2020-11-30 | 2023-08-04 | 本源量子计算科技(合肥)股份有限公司 | 一种数据的读取方法、装置、存储介质及电子装置 |
CN114638366B (zh) * | 2020-11-30 | 2023-08-08 | 本源量子计算科技(合肥)股份有限公司 | 量子地址数据的解析方法、装置、存储介质及电子装置 |
CN114626532B (zh) * | 2020-12-10 | 2023-11-03 | 本源量子计算科技(合肥)股份有限公司 | 基于地址读取数据的方法、装置、存储介质及电子装置 |
WO2022110704A1 (zh) * | 2020-11-30 | 2022-06-02 | 合肥本源量子计算科技有限责任公司 | 数据读取方法、装置、存储介质及电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647790A (zh) * | 2018-05-16 | 2018-10-12 | 合肥本源量子计算科技有限责任公司 | 用于统一量子计算机和量子虚拟机的接口系统及方法 |
CN108734302A (zh) * | 2018-05-24 | 2018-11-02 | 合肥本源量子计算科技有限责任公司 | 一种量子计算机的编程架构及运行流程 |
CN109063844A (zh) * | 2018-07-13 | 2018-12-21 | 合肥本源量子计算科技有限责任公司 | 一种表示量子程序的数据结构 |
CN109063843A (zh) * | 2018-07-12 | 2018-12-21 | 合肥本源量子计算科技有限责任公司 | 一种量子计算机软件架构系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10082539B2 (en) * | 2016-06-28 | 2018-09-25 | International Business Machines Corporation | Using direct sums and invariance groups to test partially symmetric quantum-logic circuits |
CN109213603B (zh) * | 2018-05-31 | 2021-04-06 | 合肥本源量子计算科技有限责任公司 | 一种用于对接量子计算机与用户的云平台运行方法 |
CN109376866B (zh) * | 2018-09-17 | 2021-03-12 | 合肥本源量子计算科技有限责任公司 | 元数据的记录方法及装置、量子程序的运行方法及装置 |
CN109995785B (zh) * | 2019-04-04 | 2021-02-09 | 长春大学 | 基于量子密码的局域网内文件安全解锁方法 |
-
2019
- 2019-01-11 CN CN201910028008.1A patent/CN109816112B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647790A (zh) * | 2018-05-16 | 2018-10-12 | 合肥本源量子计算科技有限责任公司 | 用于统一量子计算机和量子虚拟机的接口系统及方法 |
CN108734302A (zh) * | 2018-05-24 | 2018-11-02 | 合肥本源量子计算科技有限责任公司 | 一种量子计算机的编程架构及运行流程 |
CN109063843A (zh) * | 2018-07-12 | 2018-12-21 | 合肥本源量子计算科技有限责任公司 | 一种量子计算机软件架构系统 |
CN109063844A (zh) * | 2018-07-13 | 2018-12-21 | 合肥本源量子计算科技有限责任公司 | 一种表示量子程序的数据结构 |
Non-Patent Citations (1)
Title |
---|
卫迎辉.《基于μC/OS-Ⅱ的量子框架的移植研究》.《CNKI硕士论文数据库》.2007,第32-42页. * |
Also Published As
Publication number | Publication date |
---|---|
CN109816112A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109816112B (zh) | 一种解析量子程序存储文件的方法及装置 | |
CN109886412B (zh) | 一种量子程序的持久化存储方法、装置及存储介质 | |
Tsirogiannis et al. | PhyloMeasures: a package for computing phylogenetic biodiversity measures and their statistical moments | |
Neary et al. | P-completeness of cellular automaton Rule 110 | |
Beckett et al. | FALCON: a software package for analysis of nestedness in bipartite networks | |
Kutrib et al. | Reversible pushdown automata | |
CN112671726A (zh) | 工业控制协议解析方法、装置、电子设备和存储介质 | |
CN107451106A (zh) | 文本纠正方法及装置、电子设备 | |
Jones et al. | Even simple programs are hard to analyze | |
Murawski et al. | Algorithmic games for full ground references | |
CN111708760B (zh) | 模型迁移部署方法、装置、电子设备及存储介质 | |
CN116821646A (zh) | 数据处理链构建方法、数据缩减方法、装置、设备及介质 | |
US11501045B2 (en) | Method for analyzing a simulation of the execution of a quantum circuit | |
CN113190220A (zh) | Json文件差异化对比方法及装置 | |
CN113934851A (zh) | 用于文本分类的数据增强方法、装置及电子设备 | |
CN113360157A (zh) | 一种程序编译方法、设备以及计算机可读介质 | |
CN110795165A (zh) | 一种神经网络模型数据的加载方法及相关装置 | |
US20190146765A1 (en) | Utilizing created character index for switch statements | |
Simpson et al. | Binary-state speciation and extinction method is conditionally robust to realistic violations of its assumptions | |
Ibarra | On the computational complexity of membrane systems | |
CN115455945A (zh) | 基于实体-关系的漏洞数据纠错方法和系统 | |
Jürß et al. | Recursive algorithmic reasoning | |
US11954009B2 (en) | Method for analyzing a simulation of the execution of a quantum circuit | |
Heußen et al. | Dynamical subset sampling of quantum error-correcting protocols | |
CN107436728A (zh) | 规则分析结果存储方法、规则回溯方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |