Researchers Create Programming Language for Quantum Computers
The future is almost here. Peter Selinger, a professor of mathematics at Dalhousie University in Halifax, Canada, along with his colleagues, have developed a new high-level programming language dubbed Quipper. What makes Quipper such a milestone for programming is the fact that it’s tailored for quantum computers.
According to the NewScientist magazine, while today’s quantum devices are not ready to be used for practical applications, the invention of Quipper could “guide the design of these futuristic machines, as well as making them easier to program when they do arrive.”
From the NewScientist: "It does all the nice features of a modern classical programming language, adapted to quantum computing," says Bob Coecke of the University of Oxford, who was not involved in the work. "It's a tour de force."
To give you a brief rundown on the power of quantum computers and what makes scientists so excited about their possibilities for advanced, data-intensive tasks like performing accurate medical diagnosis and enabling artificial intelligence, watch the following video.
A typical computer, like the one you are reading this story on, is built from silicon chips, which can contain millions or even billions of tiny transistors. These transistors can be switched on or off, as represented by the numbers 0 or 1, and as such, can only exist in these two states.
Quantum computers, however, operate with quantum bits, or qubits, which can exist in more than two states and be both 0 and 1 at the same time. This HowStuffWorks article describes qubits as representing “atoms, ions, photons or electrons and their respective control devices that are working together to act as computer memory and a processor.”
Essentially, the ability of quantum computers to operate with the qubits that can exist in multiple states greatly increases the computers’ power compared to today’s top supercomputers.
The NewScientist piece explains that Quipper was based on the programming language Haskell, which is “particularly suited to programming for physics applications.” When Selinger and his team tweaked the Haskell language to handle qubits, Quipper was born.
From the NewScientist:
They have also produced a library of Quipper code to carry out seven existing quantum algorithms, including an algorithm for estimating the ground-state energy of molecules. They hope that others will add to the library by writing more algorithms, creating a resource that will allow quantum programmers to build software by sticking modules together, as classical programmers do with Java.
Alexander Green, another researcher involved with the Quipper project, wrote a post on a Haskell-friendly message board detailing some of Quipper’s highlights, including “a monadic semantics, allowing for a mixture of procedural and declarative programming styles; built-in facilities for automatic synthesis of reversible quantum circuits, including from classical Haskell code; and support for hierarchical circuits.”
If you want to download Quipper, you can visit the team’s website here.