Technology Research News
Quantum computing is in an embryonic stage
of development and the field is still firmly in the hands of those who
study atoms, electrons and photons for a living.
But a few computer scientists and mathematicians who also speak the language
of physics are beginning to prepare for the inevitable handover to the
programmers who make today's computers useful.
A group based in Italy is among the latest researchers who are attempting
to bridge the chasm between traditional programming tools and the inscrutable
world of quantum mechanics. The researchers are building a programming
architecture for quantum
The researchers are developing a C++ class library, or vocabulary for
the C++ programming
language, that is designed for quantum computing. The class library
will contain basic building blocks for programming quantum computers,
including registers, operators and instructions for manipulating quantum
Registers are slots where computer processors temporarily place numbers
like values and addresses as they are working on them. Operators are instructions
for specific actions like addition and multiplication.
"Our goal... is an automatic tool which reads a source code in a high-level
programming language and outputs a stream of quantum machine code," said
Stefano Bettelli, a graduate student at Trento University in Italy.
The researchers are not developing a new programming language specifically
for quantum computers, but are building an extension to a standard classical
computer programming language. The researchers' architecture is a hardware
abstraction layer, which attempts to shield programmers from the details
of a particular type of computer hardware so they can use the same tools
to write software for different types of computers.
"A reasonable analogy would be the extensions needed to ease the effective
use of parallel computer architectures, or those needed to access external
devices with different semantics, such as the graphics board," said Emanuel
Knill, a mathematician at Los Alamos National Laboratory.
Programming languages and their extensions are either interpreted or compiled.
Software written in interpreted languages goes straight from the programmer
to the computer, which uses a lot of resources converting the software
to a more machine-friendly form. Software written in compiled languages
is processed by another tool, a compiler,
which does the conversion before the software is used on a computer.
The researchers plan to make as much as possible of their quantum computing
extension compiled, said Bettelli. Interpreted languages put an added
burden on programmers because there is no compiler to catch code that
a computer can't handle, and this is especially true for unusual hardware
like quantum computers.
On the other hand, it will be difficult to create a compiler that understands
the requirements of quantum computers. "The compiler won't stop if you
try to do things that make no physical sense," said Bernhard Ímer, a graduate
student at the Technical University of Vienna. "All these restrictions
will have to be enforced solely by the implementation of the C++ class
library and the discipline of the programmer."
Ímer has developed a similar programming architecture aimed at studying
new ways of programming that are particular to quantum computing rather
than giving programmers familiar tools for working with quantum computers.
The goal of that effort is to develop a true quantum programming language
complete with quantum semantics, Ímer said. "While having a standardized
[programming language extension] to numerically simulate, or at some time
actually control, a quantum computer would certainly be a good thing,
I don't think that a library on top of an existing classical language
is an adequate paradigm for quantum programming itself," he said.
How soon anyone will need to write software for quantum computers is an
open question. While researchers are producing a steadily increasing number
of quantum algorithms, which are critical for demonstrating that quantum
computers are worth the vast effort and expense that will be required
to create them, only a handful of minuscule prototypes exist to run the
"Our seven-qubit experiments are, in a sense, one-shot programs, and hooking
them up into a general language doesn't really make sense," said Knill.
In addition to laying the groundwork for the day when quantum computers
become available to programmers, the C++ library could make it easier
for researchers to work with quantum computer simulations, he said. "Beyond
that, it is hard to know how technology and software semantics [will]
develop, and flexibility in that respect is well advised," said Knill.
It will be at least 20 years before practical quantum computers are developed,
according to many researchers.
"You can try to extrapolate the growth in number of qubits to see how
many qubits we might be able to control all at once in, say, 20 years,"
said Knill. "You'll find that using even an optimistic extrapolation based
on exponential growth... it isn't that many."
"You also have to realize that the needed advancements in improving error
rates per operation are hard to predict," he said. "Currently an error
rate of 1 in 10 for any of the few two-qubit devices available is considered
extremely good. As far as we know, this has to come down to below 1 in
Bettelli's research colleagues were Tommaso Calarco of the Institute of
Theoretical Physics at the University of Innsbruk and Luciano Serafini
of the Institute for Scientific and Technological Research at the Trentino
Institute of Culture in Italy. The research was funded by Italian Ministry
of Research and the Italian National Institute for Nuclear Physics.
Timeline: >20 years
TRN Categories: Quantum Computing; Programming Languages
Story Type: News
Related Elements: Chart
28/April 4, 2001
Programming goes quantum
Diversity trumps fitness
Nanotubes paint clear
Hitting the deck
Magnetic fields move
Research News Roundup
Research Watch blog
View from the High Ground Q&A
How It Works
News | Blog
Buy an ad link