The core of the master’s thesis comprises the description and comparison of programming
languages for modern quantum computers. We provided a detailed presentation
and comparison of the programming languages Q#, Cirq, Qiskit and Ocean. To facilitate
understanding of quantum programming languages, we initially explained the fundamental
concepts of quantum computing, such as qubits, quantum logic gates and differences
between technologies for quantum computer implementation. We have described the
languages in more detail and highlighted their main features. One of the most noticeable
differences is that Q# is a stand-alone language, while the other three are extensions
of the Python programming language. Consequently, Q# might be slightly more complex
compared to the others based on Python. The programming languages Q#, Cirq
and Qiskit are intended for programming quantum computers based on quantum logic
gates, utilizing an imperative programming style. The Ocean language is designed for
programming adiabatic quantum computers that can only solve certain optimisation
problems and uses a declarative programming style. The thesis also includes a detailed
description of Shor’s algorithm, which enables the factorization of numbers on quantum
computers in logarithmic time complexity. For a better comparison between programming
languages, we also implemented the algorithm in the programming languages Q#,
Cirq and Qiskit. Since Ocean does not support an implementation of this algorithm, we
instead implemented the factorisation of the numbers using a objective function that differs
significantly from the previously mentioned implementations. Lastly, we presented
the execution of Shor’s algorithm on quantum computers and the challenges encountered
during program execution.
|