VOLUME II · Languages & types
量子编程语言
Quantum Programming Languages
介绍量子编程语言的语法、资源管理、测量和经典控制,以及它们与底层线路的关系。
量子编程语言把量子操作和 classical computation 放在同一程序模型中。核心构造通常包括 qubit 分配、unitary gate、measurement、条件分支和可能的循环;编译器再将程序降低为量子线路,或交给支持动态控制的运行时。语言可采用 circuit description、embedded DSL、独立语法或混合模型。
静态规则与程序示例
一个概念性程序如下:
q := new_qubit(0)
q := H(q)
b := measure(q)
if b then X(q)
return q
这里 q 是量子资源,b 是可复制的经典值;这类区分可由线性类型系统表达。若 measure 的结果没有被保存,语义仍须明确是对分支求和还是保留 classical register。语言的 denotational semantics 可以把上述命令解释为 trace-preserving 或 trace-nonincreasing 的量子操作,见指称语义。
工具、限制与范围
Quipper 论文展示了可扩展的 embedded quantum programming language;Microsoft Q# 文档则展示了带量子操作、测量和 classical control 的工业语言接口。不同实现对 mid-circuit measurement、动态 qubit 管理、噪声模拟、并行执行和硬件编译的支持不同,不能仅凭语言名称推断某项工具能力。一个可运行的程序也不等于已证明其正确性;应明确性质、模型和证明工具。本文是个人学术用途的介绍性 demo,不声称任何程序已经通过审稿、形式化证明或硬件认证。
参考文献:
- Green、Lumsdaine、Ross、Selinger 与 Valiron,Quipper: A scalable quantum programming language,arXiv:1304.3390。
- Microsoft,Introduction to the quantum programming language Q#,官方文档。
本词条用于学习导览。正式引用与技术细节请以文末原始文献为准。
继续阅读指称语义→