Qunity: A Unified Language for Quantum and Classical Computing

Abstract

We introduce Qunity, a new quantum programming language designed around the central goal of treating quantum computing as a natural generalization of classical computing. Qunity presents a unified syntax where familiar programming constructs can have both quantum and classical effects. For example, one can use sum types to implement the direct sum of linear operators, exception handling syntax to implement projective measurements, and aliasing to induce entanglement. Further, Qunity takes advantage of the overlooked BQP subroutine theorem, allowing one to construct reversible subroutines from irreversible quantum algorithms through the uncomputation of "garbage" outputs. Unlike existing languages that enable quantum aspects with a separate add-on (e.g., gates added to a classical language), we unify quantum and classical computing through novel compositional semantics based on Kraus operators. We present Qunity’s syntax, type system, and denotational semantics, showing how it can cleanly express several quantum algorithms. We also outline how Qunity could be compiled to OpenQASM, demonstrating the realizability of our design.

Robert Rand
Robert Rand
Assistant Professor of Computer Science

My main interest is in applying techniques from programming languages and formal verification to the domain of quantum computation.