It cannot be long before somebody breathes life into a useful quantum computer. And when that happens, an entirely new breed of keyboard monkey will be born: the quantum computer programmer.
This strange animal will have to work with the weird and wonderful tools of the quantum world, such as superposition of quantum bits, entanglement, destructive measurement and the no-cloning theorem.
Clearly no conventional programming language has operators and data structures that can handle these concepts but a growing number of physcists have been developing languages that can. Today, Donald Sofge at the Naval Research Laboratory in DC has kindly surveyed them and their history.
He divides them into three categories:
i) Imperative Programming Languages which use statements to change the global state of a program. Classical examples include FORTRAN, C and Java. Quantum examples include QCL (quantum computation language) which was probably the first proper quantum programming language (it was developed by Bernhard Omer at the Technical University ofVienna about 10 years ago).
Another example is Q Language developed by Stefano Betelli and colleagues at Trento University in Italy.
ii) Functional Quantum Programming Languages by contrast,map inputs to outputs to perform mathematical transformations. This idea has influenced the development of conventional languages such as Lisp, ML and Haskell.
Quantum versions include QFC (quantum flow charts) proposed by Peter Selinger at Dalhousie University in Canada and QML developed by Thorsten Altenkirch at the University of Nottignham in the UK.
iii) Others
A number of people have developed languages aimed specifically at supporting cryptographic protocols. A good example is cQPL based on Selinger’s QP. Another language, CQP (communicating quantum
processes), relies on quantum process algebras to model systems that combine both quantum and classical elements.
Sofge’s paper makes a fascinating, if technical read. But if you’re a young programmer wondering what you’ll be working on in 30 years time, get your Landau and Lifshitz out of the attic and start working through it.
Ref: arxiv.org/abs/0804.1118: A Survey of Quantum Programming Languages
[…] Article here. […]