Quantum computing and quantum information processing are next revolutionary technology expected to have immense impact. Quantum information technologies, such as quantum computers, cryptography, radars, clocks, and other quantum systems, rely on the properties of quantum mechanics, which describes the behavior of matter at the subatomic scale. For example, by taking advantage of superposition and entanglement in quantum computers, scientists are able to use new algorithms to solve complex problems exponentially faster than even the most advanced traditional computers in operation today.
Quantum computers will be able to perform tasks too hard for even the most powerful conventional supercomputer and have a host of specific applications, from code-breaking and cyber security to medical diagnostics, big data analysis and logistics. Quantum computers could accelerate the discovery of new materials, chemicals and drugs leading to dramatical reduction of the current high costs and long lead times involved in developing new drugs.
Researchers at D-Wave, IBM, MIT, Lincoln Lab, and elsewhere are racing ahead to develop quantum computers with larger and larger superconducting qubits of high quality. IBM is making its prototype quantum computer available over the cloud, so it can be used to start testing quantum code, though the limited number of qubits means that it’s still too slow for useful for more than computing research.
However, making the full use of quantum computers for above applications require development of quantum software, programming languages and algorithms. Quantum programming is the process of assembling sequences of instructions, called quantum programs, that are capable of running on a quantum computer.
There are different levels of programming: from assembly languages (also known as quantum machine instruction languages), which give the specific instructions to the computer, to higher level languages, where quantum algorithms are already programmed at low level and we only have to introduce some specific parameters of our problem.
Quantum coding may be among the most complex tasks ever undertaken, because the quirks of quantum computing create limitations that don’t exist in classical programming languages. One example: quantum programs can’t have loops in them that repeat a sequence of instructions; they have to run straight through to completion.
To begin with, there are some scientific challenges that are unique to quantum technology. For example, the very nature of quantum mechanics makes it impossible to “clone” or duplicate qubits, which are the quantum equivalent of a classical computer bit. This makes many common programming techniques that rely on copying the value of a variable impossible to use with quantum technology. For similar reasons, it’s impossible to read the same qubit twice. While this can be a great advantage for secure communications where you want to generate unforgeable cryptographic keys, it can create tremendous difficulties in computing as it complicates the techniques necessary to test or “debug” a program before running it.
Programming languages help express quantum algorithms using high-level constructs. The most recent one comes from Microsoft, which has unveiled Q# (pronounced Q sharp) and some associated tools to help developers use it to create software. It joins a growing list of other high-level quantum programming languages such as QCL and Quipper.
The University of Melbourne has launched an online quantum computer simulator and programming environment aimed at making students and industry ‘quantum ready’. Named Quantum User Interface or QUI, the web-based program lets users click and drag logic elements that operate on quantum bits (known as qubits) to create a quantum program. A remote cluster of computers at the university runs the program on a simulated quantum computer and sends back the results in real time.
As the international race to develop quantum technology accelerates, there’s an increasingly urgent need to train the next generation of ‘quantum’ programmers, software developers and engineers,” explained Melbourne Uni’s Professor Lloyd Hollenberg, who also the deputy director of the Australian Research Council Centre of Excellence for Quantum Computation and Communication Technology (CQC2T). “The real challenge is to get people up to speed in quantum information processing with a minimal knowledge base in quantum mechanics, and to dispel common misconceptions about how quantum computers work,” he added.
One of the key features of the programme is its ability to display visualisations of the quantum computer’s state at every stage in the program. “Anyone who tries to represent or visualise the state of the quantum computer comes up against this wicked problem – how to visualise this thing which exists in a multi-dimensional space of real and imaginary numbers, let alone the weird effects of quantum superposition and entanglement,” Hollenberg said.

