[clean-list] Clean and the future of computing
Jerzy Karczmarczuk
karczma@info.unicaen.fr
Mon, 06 Nov 2000 10:58:04 +0000
Siegfried Gonzi wrote:
> I often read now in magazines about quantum-computers and
> DNA-computers ...
> What the case such computers will become realized lets say in
> 10 years, would Clean (or functional programming in general)
> be prepared for that?
> Are we than also programming such computers with C/C++?
>
> I mean will be a functional-programming language more natural
> to such a quantum-computer? Or have we to throw away all our
> programming languages in the future?
I just retrieved my cristal ball from the repair shop, so this
is a good moment for testing.
* There will be no quantum computers in 10 years. Making a few bit
register is fine. The teleportation experience is fine. But the
decoherence issues won't be solved in a practical scale for at
least 50 years, so even in, say 10 or 20 years somebody implements
the Shor algorithm, there *won't be any exponential speedup*
because of that...
* YES! YES! YES! The functional languages are fabulous for this
branch of computer science, moreover, we might start right now
to write some simulators [[this is my actual Life Project number
11...]]. Here's WHY:
The notion of *state* in quantum theory is deeply abstract for
an "orthodox" programmer. States are *functions*. You may write
a simple-minded qubit processor in any language, with qubits
represented by records {up,down}, but the physical essence is
that a real qubit model should be independent of the represen-
tation, for example a function defined on your basis (Dirac
"bra" vectors are linear functional on "kets", and vice-versa).
You can't put your fingers into a quantum state and modify it.
It will be destroyed. The state *must* propagate through a unitary
"network". This is an obvious playground for Clean unique
types (or Monads). The measuring interface must be defined very
carefully. C++ programming?? Ha! A sledgehammer is less dangerous.
* A "natural" (so my cristal ball says, don't blame me) way to
organize a quantum computing process is through a quantum
dataflow network. Again, functional languages, especially lazy
ones seem to be much better adapted to this style, than the
classical imperative stuff.
* Anyway we will throw away all our languages one day and only
Fortran will remain.
=======
This is about quanta. The DNA computing, "splicing" algorithms,
etc. - here my cristal ball is less clear...
The image is dim, but I see a lot of data reconfiguration taking
place. Not too functional. However, there is an important role
for processing units which manipulate other processing units,
so, some higher-order functions seem to be a useful concept.
For your general culture:
Quantum computing
+++++++++++++++++
An introduction by Barenco et al:
http://www.qubit.org/intros/comp/comp.html
in the quite comprehensive site http://www.qubit.org/index.html
QC at Aarhus
http://www.cki.au.dk/
Ha!! David Greve qc emulation library in C++
http://home.plutonium.net/~dagreve/qdd.html
Samuel Braunstein tutorial
http://www.sees.bangor.ac.uk/~schmuel/comp/comp.html
John Preskill site and course notes
http://theory.caltech.edu/people/preskill/ph229/
Umesh Vazirani class
http://http.cs.berkeley.edu/~vazirani/qc.html
(Some of these pages open a split, infinite, quantum
multi-universe of papers on quantum computing which may
consume all your free time.)
DNA computing and related stuff
+++++++++++++++++++++++++++++++
Article by Antonio Regalado
http://www.techreview.com/articles/may00/regalado.htm
(look up the links therein)
A short article by Daniel Lee
http://www.englib.cornell.edu/SciTech/w96/mole.html
European Molecular Computing Consortium meta-page
(*nothing* here, "under construction" for 2 years, but
plenty of information on pages related to individual
contries/members)
http://www.csc.liv.ac.uk/~emcc/
A completely crazy page of Tom Schneider (crazy, because
you will find *everything* on it, with plenty of graphics
and unrelated stuff...)
http://www-lmmb.ncifcrf.gov/~toms/index.html
Follow - for example - this link
http://www-lmmb.ncifcrf.gov/~toms/molecularcomputation.html
An article by franco Vitaliano
http://209.238.139.28/21R.8.html
which I found a bit interesting, because he mentions Fredkin
and Toffoli gates for *reversible* computation (which do not
generate entropy); technically interesting for molecular
computing, and FUNDAMENTALLY interesting for quantum computing.
===
Sorry for polluting the list, but I couldn't resist to preach
in the desert, as all ambitious prophets...
Jerzy Karczmarczuk
Caen, France