We consider a programming language that can manipulate both classical and quantum information. Our language is type-safe and designed for variational quantum programming, which is a hybrid classical-quantum computational paradigm. The classical subsystem of the language is the Probabilistic FixPoint Calculus (PFPC), which is a lambda calculus with mixed-variance recursive types, term recursion and probabilistic choice. The quantum subsystem is a first-order linear type system that can manipulate quantum information. The two subsystems are related by mixed classical/quantum terms that specify how classical probabilistic effects are induced by quantum measurements, and conversely, how classical (probabilistic) programs can influence the quantum dynamics. We also describe a sound and computationally adequate denotational semantics for the language. Classical probabilistic effects are interpreted using a recently-described commutative probabilistic monad on DCPO. Quantum effects and resources are interpreted in a category of von Neumann algebras that we show is enriched over (continuous) domains. This strong sense of enrichment allows us to develop novel semantic methods that we use to interpret the relationship between the quantum and classical probabilistic effects. By doing so we provide the first denotational analysis that relates models of classical probabilistic programming to models of quantum programming.
翻译:我们考虑一种能够操纵古典和量子信息的编程语言。 我们的语言是类型安全的, 设计用于变化量子编程, 这是一种混合的古典- 量子计算模式。 古典语言的子系统是概率性固定点计算法(PFPC), 一种具有混合变数循环类型、 术语循环和概率选择的羊羔计算法。 量子子系统是一个一阶线型系统, 它可以操纵量子信息。 两个子系统是由混合的古典/ 量子术语相关联的。 这两种子系统通过混合的古典/ 量级术语相关联, 来说明典型的概率效应是如何由量量测量和相反的, 古典(概率)方案是如何影响量动态的。 我们还描述了一种声音和计算上适当的分数分数计算法。 古典概率效应的解释是: 古典性编程模型的共和量值效果,我们先用这种稳健性的方法来解释。 我们的典型的量级编程模型,先是用来解释我们使用传统的量制的量子分析。 这种稳性关系,我们使用传统的递化的量关系,然后进行我们用来分析。