[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