功能编程语言的现代理论使用单子来编码计算侧面的ff ect和侧视上下文,而超越了骨头程序逻辑。即使量子计算本质上是侧面的ff ectful(如量子测量)和上下文依赖性的(如在混合辅助状态下),但以前几乎没有对量子编程语言的支持。在这里,我们在参数化模块光谱类别上系统地分析了(CO)单元,该类别是由Grothendieck的“动机瑜伽”诱导的 - 对于当前目的而言,专门针对H C模型,并在设置索引复杂的矢量空间中进行了进一步的目的,如在同伴文章[SS23-EOS]中所讨论的。将索引矢量空间解释为量子测量结果参数的替代量子状态空间的集合,正如原始词语 - 语义上所熟悉的那样,我们发现这些(CO)单子为具有经典测量结果的“动力提升”的“动力提升”的综合自然语言提供了一种综合的自然语言。我们通过指示特异性的量子编程语言(QS)来结束,该语言(QS)在透明的do中表达了这些单调的量子e ff ects,可嵌入到最近构建的线性同拷贝类型理论(LHOTT)中,该理论(LHOTT)将其解释为参数化模块光谱。一旦嵌入了Lhott,这应该使具有线性量子类型,经典控制,动态提升的正式可验证的通用量子编程,尤其是与拓扑e ff ects(如伴侣文章[TQP]中所述)。
联系方式:马丁·韦切夫教授,苏黎世联邦理工学院,瑞士,silq@inf.ethz.ch 背景:最近的努力已经将量子计算机改进到可以在某些任务上超越传统计算机的程度,这种情况被称为量子霸权。量子计算机运行量子算法,通常用低级量子语言 Silq 表示。我们发布了 Silq,这是第一种旨在从量子算法的低级实现细节中抽象出来的高级量子语言。Silq 在 GitHub(https://github.com/eth-sri/silq)上公开可用,并根据免费开源 Boost 软件许可证 1.0 获得许可。作为一项关键的创新,Silq 有助于弥合经典语言和量子语言之间的概念差距。因此,Silq (i) 降低了非专业量子程序员的入门门槛,(ii) 通常有助于简洁明了地表达复杂算法,以及 (iii) 促进了 50 多年来为传统计算开发的编程和分析技术向量子编程领域的技术转移。比较。虽然传统上量子算法通常以电路的形式指定,但量子语言更方便地将量子算法表达为源代码。然而,现有的量子语言迫使程序员在较低的抽象层次上工作,仍然本质上指定将量子操作明确应用于单个量子位的量子电路。因此,用这些语言实现量子算法是繁琐且容易出错的。相比之下,Silq 支持对量子算法的描述性视图,表达了程序员的高级意图。然后,将这些算法编译成低级量子电路成为二阶关注点,可以由专门的编译器处理,就像在传统编程语言中一样。我们的实验评估表明,Silq 程序比其他量子语言中的等效程序短得多(Q# 平均缩短 46%,Quipper 缩短 38%),同时仅使用一半的量子原语。因此,Silq 程序不仅更短,而且更易于读写,因为它们需要的原语和概念更少。大部分评估都集中在 Q# 上,因为 (i) 它是使用最广泛的量子语言之一,(ii) 我们认为它比 Cirq 或 QisKit 更高级,(iii) 2018 年和 2019 年的 Q# 编码竞赛提供了大量 Q# 实现,我们可以利用它们进行比较。