Several technical advances have been achieved
recently in the pursuit of powerful quantum
computers.
Now, Computer scientists from ETH Zurich have
made an important breakthrough in the field
of programming languages: their quantum language
is the first of its kind that is as elegant,
simple and safe as classical computer languages.
Their 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.
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.
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.
This is where the research group come in with
their development of Silq.
Silq is the first quantum programming language
that 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.
Computer scientists refer to computer languages
that abstract from the technical details of
the specific type of computer as high-​level
programming languages.
Silq is the very first high-​level programming
language for quantum computers.
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.
The greatest innovation and simplification
that Silq brings to quantum programming languages
concerns a source of errors that has plagued
quantum programming until now.
A computer calculates a task in several intermediate
steps, which creates 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 unneeded 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 is the first programming language that
automatically identifies and erases values
that are no longer needed.
The computer scientists achieved this by applying
their knowledge of classical programming languages:
their automatic uncomputation method uses
only programming commands that are free of
any special quantum operations – they are
“qfree”.
