ETH- Zurich: The first intuitive programming language for quantum computers developed16. June 2020
ETH- Zurich: The first intuitive programming language for quantum computers developed
Computer scientists at ETH Zurich have developed the first programming language with which quantum computers can be programmed as easily, reliably and safely as classical computers. Martin Vechev, Professor of Computer Science at ETH Zurich’s Secure, Reliable and Intelligent Systems Lab (SRI), explains: “Our quantum programming language Silq allows programmers to make better use of the potential of quantum computers than with existing languages, because the code is more compact, faster, more intuitive and easier for programmers to understand”.
This week, Vechev Silq will present Silq to other experts in this field at PLDI 2020, a conference for programming languages. To facilitate discussion, adoption and further development, he and his team have also published Silq on a dedicated website.
Because of its enormous potential, the interest of researchers in quantum computing has increased enormously over the last ten years. Today, the majority believe that these super computers will one day be able to solve larger problems faster than classical computers, because they use entangled quantum states in which different bits of information overlap at a certain point in time.
For certain “quantum algorithms”, i.e. computing 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 cannot yet be calculated on existing quantum hardware because quantum computers are currently still too error-prone.
Exploiting the potential of quantum computation requires not only the latest technology, but also a quantum programming language to describe quantum algorithms. In principle, an algorithm is a “recipe” for the solution of a problem; a programming language describes the algorithm in such a way that a computer can perform the necessary calculations.
Today, quantum programming languages are closely tied to specific hardware, i.e. they describe exactly the behaviour of the underlying circuits. For the programmer, these “hardware description languages” are cumbersome and error-prone, since the individual programming instructions must be extremely detailed and thus explicitly describe the minutiae necessary for the implementation of quantum algorithms.
This is where Vechev and his group start with the development of Silq. “Silq is the first quantum programming language that is not primarily concerned with the structure and functionality of the hardware, but rather with the way programmers think when they want to solve a problem – without having to understand every detail of the computer architecture and implementation,” says Benjamin Bichsel, a PhD student in Vechev’s group who is overseeing the development of Silq.
Silq is the first high-level programming language for quantum computers. High-level programming languages are more expressive, which means that they can describe complex tasks and algorithms with less code. This makes them easier for programmers to understand and use. They can also be used with different computer architectures.
The greatest innovation and simplification Silq brings to quantum programming languages concerns a source of error that has plagued quantum programming until now. A computer calculates a task in several intermediate steps, which generates intermediate results or temporary values.
To relieve the memory, classical computers automatically delete these values. Computer scientists refer to this as “garbage collection” because the superfluous temporary values are disposed of.
With quantum computers, this disposal is more difficult due to quantum entanglement: The previously calculated values can interact with the current ones and interfere with the correct calculation. Accordingly, the cleanup of such temporary values on quantum computers requires a more advanced technique of so-called non-computation.
“Silq is the first programming language that automatically identifies and deletes values that are no longer required,” explains Bichsel. The computer scientists achieved this by applying their knowledge of classical programming languages: Their automatic uncomputation method only uses programming commands that are free of specific quantum operations – they are “q-free”, as Vechev and Bichsel say.
“Silq is a major breakthrough in optimizing the programming of quantum computers; it is not the final phase of development,” says Vechev. There are still many open questions, but since Silq is easier to understand, Vechev and Bichsel hope to stimulate both the further development of quantum programming languages and the theory and development of new quantum algorithms.
“After two years of work, our team of four has made the breakthrough, thanks to the combination of different expertise in the fields of language design, quantum physics and implementation. If other research and development teams adopt our innovations, it will be a great success,” says Bichsel.