Quantum Computing (QC) [1] requires a new programming paradigm that anticipates breakthroughs in engineering these systems to be able to effectively solve problems using this exciting technology.
While real quantum computers are still out of the reach, quantum programming languages and their corresponding simulators [2,3,4] are readily available. Some of them provide a new programming language in form of a DSL, others use an embedding into an existing programming language.
In this thesis, you’ll investigate how traditional refactorings [5] apply to quantum programs, and develop new refactorings and IDE support for quantum programming. This requires first identifying the most important (or easiest to work with) QC implementations.
Research questions include:
– Are classical refactorings still valid (“behaviour-preserving”) for quatum programs?
– What novel refactorings are useful?
– Can we provide IDE support for refactoring of quantum programs?
A prospective student should…
…like programming, programming paradigms and programming languages;
…be willing to learn about programming language semantics,
and the elementary mathematical properties governing QC.
Some references:
– [1] Programming Quantum Computers, Johnston et al., 2019
– [2] qsim (https://quantumai.google/qsim)
– [3] QCEngine (https://oreilly-qc.github.io)
– [4] IBM Qiskit (https://www.ibm.com/quantum/qiskit)
– [5] Refactoring, M.Fowler, 2018 (https://martinfowler.com/books/refactoring.html)