Quipper:可扩展的量子编程语言
Quipper: A Scalable Quantum Programming Language
Green 等人提出 Quipper,一种函数式、高阶且可扩展的量子编程语言,能够生成大规模量子线路。
论文信息(2013,PLDI;ACM SIGPLAN Notices 48(6):333–342):Alexander S. Green、Peter LeFanu Lumsdaine、Neil J. Ross、Peter Selinger、Benoît Valiron。DOI;arXiv:1304.3390
工作
本文介绍 Quipper,目标是用函数式、高阶语言描述超出玩具规模的量子算法。Quipper 由经典计算机控制量子设备,支持组合式程序生成和量子线路表示;论文报告它已用于多类非平凡算法,并能生成规模达到万亿门量级的线路表示。设计不依赖特定硬件模型。
主要贡献
- 提出可扩展、可表达的函数式高阶量子编程语言。
- 将经典控制、抽象程序和量子线路生成结合起来。
- 展示 Quipper 能描述多种非平凡量子算法与大规模线路。
- 为后续使用形式方法分析量子算法提供可编程对象。
局限与适用范围
线路生成规模不等于硬件可以执行相同规模的电路;论文的语言能力、模拟结果和目标设备支持需要分别评估。Quipper 本身不自动证明算法正确、资源估计精确或编译后硬件行为可靠。运行时、门集、连接性和噪声模型仍由后端决定。
与其他工作的关系
Quipper 把 QPL 和 带经典控制的量子 Lambda 演算 的语言设计推进到可生成大规模线路的工程化框架,也延续 QML 的函数式方向。与 量子线路 相比,Quipper 提供更高层的抽象和程序生成;与 通信量子进程 相比,它重点是线路描述而非进程通信。
原论文
Alexander S. Green, Peter LeFanu Lumsdaine, Neil J. Ross, Peter Selinger, and Benoît Valiron, Quipper: A Scalable Quantum Programming Language, in PLDI 2013, ACM SIGPLAN Notices 48(6), 333–342, DOI: 10.1145/2499370.2462177. arXiv:1304.3390