← Latest papers
💻 computer science

A programming language combining quantum and classical control

This paper proposes a unified programming language that successfully integrates the traditionally separate paradigms of quantum control (based on superposition) and classical control (based on measurement) through a novel syntactic modality, an operational adaptation of quantum configurations, and a denotational semantics combining Hilbert spaces and von Neumann algebras.

Original authors: Kinnari Dave, Louis Lemonnier, Romain Péchoux, Vladimir Zamdzhiev

Published 2026-09-30
📖 4 min read☕ Coffee break read

Original authors: Kinnari Dave, Louis Lemonnier, Romain Péchoux, Vladimir Zamdzhiev

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). ✨ This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Quantum computers promise to solve problems that would take classical machines thousands of years, but building the software to run them is a unique challenge. Unlike a standard computer that processes bits as either zero or one, a quantum machine manipulates qubits, which can exist in a delicate superposition of both states simultaneously. This allows for powerful parallel processing, but it also introduces a fundamental tension in how we write programs for these machines. There are two distinct ways to control a quantum computer. One approach relies on classical logic: the program runs, makes a measurement, and then decides what to do next based on the result, much like a traditional computer reacting to a sensor. The other approach, known as quantum control, keeps the entire process in a state of superposition, allowing the program's own logic to exist in multiple states at once, guiding the computation without ever collapsing the delicate quantum state. For decades, these two methods have been treated as separate worlds, forcing programmers to choose one paradigm or the other, often resulting in code that is either too rigid or too difficult to write.

A team of researchers has now bridged this divide by creating a new programming language that seamlessly combines both classical and quantum control within a single system. Their work demonstrates that it is possible to write high-level instructions that handle the messy, probabilistic nature of real-world quantum measurements while simultaneously leveraging the pure, abstract power of superposition. Before this breakthrough, a programmer wanting to use a quantum gate controlled by a superposition would have to manually decompose that operation into a long, complex circuit of basic gates, a process akin to building a complex machine by hand-soldering every single wire. The new language allows the programmer to describe these operations directly, using simple syntax that abstracts away the underlying circuitry. For instance, a complex logic gate that typically requires a large assembly of smaller components can now be defined in a single line of code, making the software significantly more readable and easier to manage.

The core of this achievement lies in how the researchers structured the language to handle two different types of data simultaneously. They introduced a mechanism that treats pure quantum states as a special kind of object that can be wrapped inside a broader system capable of handling mixed states, which include the randomness of measurement. This allows the language to switch fluidly between the two modes of control. When the program needs to make a decision based on a measurement, it uses classical control flow. When it needs to perform a calculation that relies on the interference of quantum waves, it uses quantum control. The researchers proved that this combination is not just a theoretical possibility but a mathematically sound system. They developed a set of rules that ensure the program behaves correctly, proving that the language is "sound," meaning it never produces invalid results, and "complete," meaning it can express any valid quantum operation within its scope.

To verify their work, the team applied their language to several famous quantum algorithms, including quantum teleportation, which moves the state of a particle from one location to another using classical communication. They showed that their language could express these algorithms with far greater clarity than previous methods. In one example involving a quantum walk, a process where a particle explores a graph by hopping between nodes, the researchers were able to use a single variable to represent a large number of possible positions, rather than requiring a separate variable for every single bit of information. This abstraction allows the code to scale much more efficiently, handling complex scenarios without the explosion of complexity that usually accompanies quantum programming.

The significance of this work extends beyond just writing cleaner code; it offers a new way to think about the mathematical foundations of quantum mechanics. The researchers modeled their language using a framework called the Heisenberg picture, which focuses on how the rules of observation change over time, rather than just how the state of the system evolves. This perspective allowed them to rigorously prove that their language correctly models the physical reality of quantum systems, including the preservation of probability and the conservation of information. By unifying these two previously separate approaches, the researchers have provided a tool that could make quantum programming more accessible to developers and more robust for the complex algorithms of the future. They have shown that the barrier between classical decision-making and quantum superposition is not a wall, but a door that can be opened, allowing for a more flexible and powerful way to harness the potential of quantum computing.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →