The First PLanQC in the Road to Quantum Programming

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 distinctarchitectures. 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!

Invited talks

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.

Selected Talks

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.

What’s next?

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.

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.

Categories

ACM SIGPLAN

The ACM Special Interest Group on Programming Languages (SIGPLAN) explores programming language concepts and tools, focusing on design, implementation, practice, and theory. Its members are programming language developers, educators, implementers, researchers, theoreticians, and users.