Quipper: The First High-Level Scalable Programming Language for Quantum Computers
Although quantum computers exist only in theory it does not stop researchers from making educated guesses about their future architecture–and more importantly the interface to interact with them. As a result of this speculation, it is now possible to design a software simulator of quantum computers and writing software. To this end, Dalhousie University in Halifax, Canada, have come up with Quipper, a programming language for quantum computing.
An important feature of quantum computers are qubits or quantum bits, which can take the values 0 and 1 simultaneously. This principle is described as a quantum superposition. However, the creation of computer algorithms using quantum parallelism is a difficult task. Therefore, the scope of quantum computing in its current form is very limited.
For this reason, quantum programming is just now limited to low-level programming and performing high level programming is a tedious task. There is currently a lack of programming languages for describing quantum computation on a practical scale.
Now, a team of scientists including Peter Selinger of Dalhousie University in Halifax, Canada, and colleagues with funding from the Research Center of National Intelligence (IARPA) has developed a high-level programming language Quipper. It is based on Haskell and better suited to implement quantum algorithms than QCL (based on C).
Quipper is a scalable, expressive, functional, higher-order quantum programming language and has been used to program to generate quantum gate representations using trillions of gates.
The stated goal of the Quipper project is to accurately estimate and reduce the computational resources required to implement quantum algorithms on a realistic quantum computer, with an emphasis on using techniques that have been developed in the realms of computer science, as described in scientific research paper submitted to Cornell University Library.
Currently, there is a minimum of 45 algorithms for quantum computers but none have been implemented in the code. With the advent of Quipper, developers can simply use existing libraries to quantum computers as they do now in high-level languages for classical architecture.
“It does all the nice features of a modern classical programming language, adapted to quantum computing,” says Bob Coecke of the University of Oxford.
Quipper Development
As we know from history, the first computers had to program in machine code, and it was quite difficult and time consuming task. A significant breakthrough came with the development of the first high-level programming language FORTRAN in 1957. Since then, human-machine interaction has reached a new level, and we were able to ask a computer more challenging tasks. The existence of such a language with high-level abstractions and algorithms help Peter Selinger and his team in the creation of new algorithms (in the form of Quipper language) for quantum computers.
Quipper’s development was guided by the goal of implementing seven non-trivial quantum algorithms and the algorithms were chosen by the QCS project. The algorithms cover a broad spectrum of techniques used in quantum computation including Quipper’s underlying circuit model, Quipper’s primitive operations, quantum data-types, generic functions, comments, labels, recursion, circuit-level operators, boxed circuits, and simulation. They have also created a library of codes including the algorithm to estimate the energy of the ground state molecules.
Quipper uses an extended circuit model of quantum computation. The researchers hope that other developers will add additional library by writing more algorithms. This allows developers to create quantum software by combining the modules as in the case of Java.
“Having a well-designed programming language helps structure your thinking and informs the way you think about a problem,” says Selinger. “It may become a useful tool in the design of new quantum algorithms.”
Bright Future
Selinger’s team submitted the outline of the language, together with their preliminary library, at the Programming Language Design and Implementation conference in Seattle, Washington.
Selinger says developing the software with Quipper could influence the design of future quantum computers as the language will make hardware requirements of an algorithm clearer.
He expects the number of qubits necessary for a practical quantum computer will decrease over time as they move with advances in engineering. One of the issues left for future work in Quipper is the improvement of compile-time type checking. Developing a fully-featured type system is the next step in Quipper’s development, and is a work in progress.
More details of Quipper can be found here and here.
A message from John Furrier, co-founder of SiliconANGLE:
Your vote of support is important to us and it helps us keep the content FREE.
One click below supports our mission to provide free, deep, and relevant content.
Join our community on YouTube
Join the community that includes more than 15,000 #CubeAlumni experts, including Amazon.com CEO Andy Jassy, Dell Technologies founder and CEO Michael Dell, Intel CEO Pat Gelsinger, and many more luminaries and experts.
THANK YOU