Microsoft makes play for next wave of computing with quantum computing toolkit

3 min read Original article ↗

At its Ignite conference today, Microsoft announced its moves to embrace the next big thing in computing: quantum computing. Later this year, Microsoft will release a new quantum computing programming language, with full Visual Studio integration, along with a quantum computing simulator. With these, developers will be able to both develop and debug quantum programs implementing quantum algorithms.

Quantum computing uses quantum features such as superposition and entanglement to perform calculations. Where traditional digital computers are made from bits, each bit representing either a one or a zero, quantum computers are made from some number of qubits (quantum bits). Qubits represent, in some sense, both one and zero simultaneously (a quantum superposition of 1 and 0). This ability for qubits to represent multiple values gives quantum computers exponentially more computing power than traditional computers.

Traditional computers are built up of logic gates—groups of transistors that combine bits in various ways to perform operations on them—but this construction is largely invisible to people writing programs for them. Programs and algorithms aren’t written in terms of logic gates; they use higher level constructs, from arithmetic to functions to objects, and more. The same is not really true of quantum algorithms; the quantum algorithms that have been developed so far are in some ways more familiar to an electronic engineer than a software developer, with algorithms often represented as quantum circuits—arrangements of quantum logic gates, through which qubits flow—rather than more typical programming language concepts.

Microsoft’s quantum programming language—as yet unnamed—offers a more familiar look to programming quantum computers, borrowing elements from C#, Python, and F#. Developers will still need to use and understand quantum logic gates and their operations, but they’ll be able to use them to write functions, with variables and branches and other typical constructs. As an example, a program to perform quantum teleportation is offered as a kind of “Hello, World!” for quantum computing:

Quantum teleportation program.

Credit: Microsoft

Quantum teleportation program. Credit: Microsoft

This snippet of code has a couple of functions, EPR and Teleport, along with a third function, TeleportTest to test that the Teleport function works. EPR creates an EPR pair of entangled qubits, using a Hadamard gate (H), which generates a qubit with an equal probability of being a 1 or a 0, and a controlled-NOT gate, which entangles two qubits to make the EPR pair. The Teleport function entangles two qubits and then measures (with M) the value of one of them. Measurement forces the qubits to take a specific value instead of both values in superposition.