In the last ten years, we have seen breakthroughs in both quantum algorithms and quantum hardware. Established companies like Google, IBM, Intel, and Honeywell, along with startups like IonQ, Rigetti, and Xanadu have developed quantum computers using a variety of distinct architectures. Just a few months ago, Google performed a quantum supremacy experiment, combining developments in complexity theory and quantum hardware to demonstrate a dramatic speedup on a quantum computer.
The challenges of programming quantum devices have seen less attention, relatively speaking. Thus there is a rich opportunity to advance the development of tools to assist in the process of programming quantum computers, both those that exist today and those likely to exist in the near to far future. The programming languages community has a lot to offer here.
To encourage more PL-minded researchers to work in this exciting new area, we (along with Xiaodi Wu) organized the Workshop on Programming Languages for Quantum Computing (PLanQC). It was held on January 19, 2020, co-located with POPL in New Orleans. We hoped to bring together researchers from the fields of programming languages and quantum information, exposing the programming languages community to the unique challenges of programming quantum computers.
The program consisted of talks by four invited speakers along with twelve talks selected by a diverse program committee. The workshop was a great success, with 84 participants hailing from a variety of areas and backgrounds. This post provides a short overview of what transpired; the talks and submitted papers are available on the workshop site. We encourage to browse the talks and papers, and consider joining this exciting community!
We had four invited talks by experts already working in quantum computing and programming languages/systems. Jennifer Paykin’s “Quantum Computing for Programming Languages Researchers” (delightfully subtitled “or: I sort of understand quantum computing, and so can you!”) introduced quantum computing to a PL audience through a simple quantum programming language. It directly made a point that we like to emphasize: You can do quantum computing. Quantum mechanics is regrettably associated with historically brilliant figures like Albert Einstein, Niels Bohr, and Richard Feynman, who did us no favors by repeatedly emphasizing its difficulty. By contrast, quantum computing (despite the occasional astonishing result of quantum complexity theory) distills quantum mechanics down to basic linear algebra and simple circuits and is thoroughly accessible to programming languages researchers like ourselves.
Peter Selinger and Bettina Heim both pushed a vision of moving beyond quantum circuits to new means of describing quantum programs. In their vision, you would program a quantum computer in the same terms used for describing quantum algorithms, without every thinking about quantum gates. Peter’s talk focused on the language Proto-Quipper, which provides a rich type system that uses linearity to enforce quantum mechanics’ no-cloning theorem and dependent types to precisely characterize quantum circuit families. Bettina described the goals and implementation details of Q#, a powerful multi-paradigm language for quantum programming.
While Peter and Bettina envision higher-level abstractions for future quantum programming languages, Fred Chong sees a gap between the programs we write and the computers we have (see figure) and wants to tear down the abstractions we already have in order to close it. Quantum computers, he noted, don’t run on quantum gates, they run on laser pulses. And if we’re willing to throw out the circuit model, we can dramatically improve performance by collapsing large chunks of operations into precise instructions to those lasers. Fred’s research agenda aims to drive near-term advances, while Peter and Bettina are planning for a future that is still coming into view. Both 2021 and 2040 will come, however, and both of these research agendas will substantially influence the future of computing.
The rest of the talks, selected by the PC from submitted abstracts, considered tools and techniques to address near- and long-term problems for quantum computing.
- Immediately after Fred Chong’s talk, Thomas Alexander introduced OpenPulse, a language for directly controlling the laser pulses that govern quantum computing, while Andre Kornell introduced a semantic model for a future version of Selinger’s Proto-Quipper with recursion.
- The Formal Methods session and Error Types presentation focused on proving aspects of quantum programs, including runtime analysis, translation and optimization, error correction, and full program verification.
- The NISQ (Noisy Intermediate-Scale Quantum) session focused on designing programming languages for near term quantum computers, with a focus on minimal circuits, qubit mapping and dedicated NISQ languages.
- We concluded with a session focused on the communication between classical and quantum computers, including lightweight communication between small circuits, extending C++ with quantum communication, and the semantics of quantum-classical communication.
The vision of quantum programming is finally becoming a reality. The first Workshop on Quantum Programming Languages (QPL) was organized by Peter Selinger in Ottawa back in 2003. At the time, quantum computers were far off and the research was largely theoretical. Embracing the theoretical aspects of quantum computing, QPL became Quantum Physics and Logic, leaving us without a conference dedicated to quantum programming, even as demand for such a conference surged. In the wake of rapidly growing hardware and quantum supremacy, we started PLanQC to fill that hole. Unlike QPL, PLanQC will remain focused on both the theory and practice of quantum programming. With that in mind, we plan on holding the next PLanQC at Programming Languages Design and Implementation (PLDI) in 2021. This will allow us to draw in more experts in implementation challenges, even while we continue to welcome talks on quantum PL theory. For now (if not for long), one workshop on quantum programming languages should suffice.
See you at PLDI!
Bios: Robert Rand is a Basili Postdoctoral Fellow in Programming Languages at the University of Maryland and the Joint Center for Quantum Information and Computer Science. His main interest is in applying techniques from programming languages and formal verification to the domain of quantum computation. Michael Hicks is a Professor of Computer Science at the University of Maryland, the past SIGPLAN Chair (2015-2018), and the editor of this blog. He has recently started to explore programming languages tools for quantum computing.
Disclaimer: These posts are written by individual contributors to share their thoughts on the SIGPLAN blog for the benefit of the community. Any views or opinions represented in this blog are personal, belong solely to the blog author and do not represent those of ACM SIGPLAN or its parent organization, ACM.