ψQuantum PL WIKITHE LANGUAGE OF QUANTUM COMPUTATIONEN
VOLUME II · Languages & types

线性类型系统

Linear Type Systems

介绍用线性资源约束表达量子比特使用次数,并区分量子资源与可复制的经典数据。

Linear type system 把值视为资源:一个 linear value 必须恰好使用一次,或按语言规则显式转移、消耗。量子编程中,qubit 通常不可隐式复制,因此线性类型可在编译期阻止同一 qubit 被两个命令同时使用。一个抽象判断可以写成 Γ,q:Qubit⊢U(q):Qubit\Gamma,q:Qubit\vdash U(q):Qubit;执行后原来的 qq 被消费,返回的新句柄继续出现在类型环境中。它与量子态与量子操作的 no-cloning 边界相呼应。

资源敏感的示例

设 q : Qubit,h q 的类型可理解为消耗 qq 并返回 q′q',于是程序可写成 let q1 = h q,但不能把同一个线性绑定同时传给 measure q 和 x q。测量常把量子资源转换为 classical data,例如抽象类型为 measure:Qubit→(Bit×1)\mathrm{measure}:Qubit\to(Bit\times\mathbf{1});具体语言可能返回结果并销毁或重置 qubit。经典 Bit 若被标记为 unrestricted,则可以复制到多个变量。线性类型禁止的是程序层面的无记录资源复制,不是禁止复制测量后得到的经典 bit。

语义与边界

类型检查主要保证资源使用纪律;它不自动证明 unitary 的数学性质、测量统计正确,或程序满足某个 postcondition。类型系统还要处理 tensor product、ownership、别名、函数闭包和 classical control;不同语言的规则并不相同。有些系统采用 affine type,只要求资源至多使用一次,便于表达丢弃;另一些系统允许显式 discard,但必须说明其物理含义。与量子编程语言结合时,线性规则是静态保障的一层,仍需验证方法与工具检查更高层性质。

参考文献:

  • Benton,A mixed linear and non-linear logic: Proofs, terms and models,Springer DOI。
  • Selinger,Towards a quantum programming language,Cambridge DOI。
本词条用于学习导览。正式引用与技术细节请以文末原始文献为准。
继续阅读量子编程语言→

检索馆藏