Emerging quantum algorithms for problems such as element distinctness, subset sum, and closest pair demonstrate computational advantages by relying on abstract data structures. Practically realizing such an algorithm as a program for a quantum computer requires an efficient implementation of the data structure whose operations correspond to unitary operators that manipulate quantum superpositions of data. To correctly operate in superposition, an implementation must satisfy three properties -- reversibility, history independence, and bounded-time execution. Standard implementations, such as representing an abstract set as a hash table, fail these properties, calling for tools to develop specialized implementations. In this work, we present Core Tower, the first language for quantum programming with random-access memory. Core Tower enables the developer to implement data structures as pointer-based, linked data. It features a reversible semantics enabling every valid program to be translated to a unitary quantum circuit. We present Boson, the first memory allocator that supports reversible, history-independent, and constant-time dynamic memory allocation in quantum superposition. We also present Tower, a language for quantum programming with inductive data structures. Tower features a type system that bounds all recursion using classical parameters. Using Tower, we implement Ground, the first quantum library of data structures, including lists, stacks, queues, strings, and sets. We provide the first executable implementation of sets that satisfies all three mandated properties of reversibility, history independence, and bounded-time execution.
翻译:针对元素差异性、子数和最接近对等问题的新兴量算算法通过依靠抽象数据结构来显示计算优势。在实际实现像量子计算机程序这样的算法时,需要高效率地实施数据结构,其操作与操纵量子叠加数据的统一操作者相对应。为了在叠加状态中正确运行,执行必须满足三种特性 -- -- 可逆性、历史独立和捆绑时间执行。标准执行,如代表散列的抽象数据集,无法满足这些特性,需要开发专门执行的工具。在这个工作中,我们展示核心塔,这是随机存取存储存储的量编程的第一语言。核心塔使开发者能够将数据结构作为基于点的链接数据执行。它具有可逆性静音,使每个有效的程序能够转换成一个统一的量子电路路路。我们介绍第一个内存感应源,所有支持可逆性、历史依赖性和可恒定时动态记忆分配的音量超置状态。我们还展示塔,一种具有感应性数据结构的量编程语言, 塔使开发者能够将数据结构作为基于点基的、直径直径立的系统结构结构,我们使用直立的立的直径序列结构, 提供了所有直立的立的直径结构,我们使用直径径序列的立的立的立的立的序列的立的立的序列的系统,提供。