Programming quantum computers is becoming easier: computer scientists at ETH Zurich have designed the first programming language that can be used to program quantum computers as simply, reliably and safely as classical computers. “Programming quantum computers is still a challenge for researchers,” says Martin Vechev, computer science professor in ETH’s Secure, Reliable and Intelligent Systems Lab (
SRI
), “which is why I’m so excited that we can now continue ETH Zurich’s tradition in the development of quantum computers and programming languages.”
He adds: “Our quantum programming language Silq allows programmers to utilize the potential of quantum computers better than with existing languages, because the code is more compact, faster, more intuitive and easier to understand for programmers.” This week, Vechev will introduce Silq to
other experts in the field
at PLDI 2020, a conference for programming languages. To facilitate discussion, adoption and further development, he and his team have also released Silq on its own website (
silq.ethz.ch
).
Quantum computing has been seeing increased attention over the last decade, since these computers, which function according to the principles of quantum physics, have enormous potential. Today, most researchers believe that these computers will one day be able to solve certain problems faster than classical computers, since to perform their calculations they use entangled quantum states in which various bits of information overlap at a certain point in time. This means that in the future, quantum computers will be able to efficiently solve problems which classical computers cannot solve within a reasonable timeframe.
This quantum supremacy has still to be proven conclusively. However, some significant technical advances have been achieved recently. In late summer 2019, a quantum computer succeeded in solving a problem – albeit a very specific one – more quickly than the fastest classical computer.
For certain “quantum algorithms”, i.e. computational strategies, it is also known that they are faster than classical algorithms, which do not exploit the potential of quantum computers. To date, however, these algorithms still cannot be calculated on existing quantum hardware because quantum computers are currently still too error-prone.
Expressing the programmer's intent
Utilizing the potential of quantum computation not only requires the latest technology, but also a quantum programming language to describe quantum algorithms. In principle, an algorithm is a “recipe” for solving a problem; a programming language describes the algorithm so that a computer can perform the necessary calculations.
Today, quantum programming languages are tied closely to specific hardware; in other words, they describe precisely the behaviour of the underlying circuits. For programmers, these “hardware description languages” are cumbersome and error-prone, since the individual programming instructions must be extremely detailed and thus explicitly describe the minutiae needed to implement quantum algorithms.