Quantum computing has seen increased attention over the past decade since these computers, which function according to the principles of quantum physics, have enormous potential. These computers may one day be able to solve certain problems faster than classical computers, since 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 that classical computers cannot solve within a reasonable timeframe.
For certain “quantum algorithms,” i.e. computational strategies, it is known that they are faster than classical algorithms that 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.
Researchers have designed the first programming language that can be used to program quantum computers as simply, reliably, and safely as classical computers. The quantum programming language, called 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.
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; they describe precisely the behavior 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.
Silq is not designed primarily around the construction and functionality of the hardware but on the mindset of the programmers when they want to solve a problem, without requiring them to understand every detail of the computer architecture and implementation. High-level programming languages are more expressive, meaning that they can describe even complex tasks and algorithms with less code. This makes them more comprehensible and easier to use for programmers. They can also be used with different computer architectures.
A conventional computer calculates a task in several intermediate steps, creating intermediate results or temporary values. In order to relieve the memory, classical computers automatically erase these values. Computer scientists refer to this as “garbage collection” since the superfluous temporary values are disposed of. In the case of quantum computers, this disposal is trickier due to quantum entanglement: the previously calculated values can interact with the current ones, interfering with the correct calculation. Accordingly, cleaning up such temporary values on quantum computers requires a more advanced technique of so-called “uncomputation.” Silq automatically identifies and erases values that are no longer needed by using only programming commands that are free of any special quantum operations — they are “qfree.”