Author: Marius Buliga. This work is licensed under a Creative Commons Attribution 4.0 International License.
  • A project in chemical computing

    (Marius.Buliga@gmail.com , Marius.Buliga@imar.ro)        
  • chemlambda index
    The project page moved to chemlambda.github.io. This page is kept for historical reasons.
     
    Chemlambda is a model of computation based on individual molecules, which compute alone, by themselves (in a certain well defined sense).
     
    Everything is formulated from the point of view of ONE molecule which interacts randomly with a family of (invisible) enzymes.
     
    There is a rigorous model associated and, even better, a github repository which contains programs which implement it. The programs serve to validate the model by an independent check.
     
    So what?
     
    Bad detail: chemlambda is not a real chemistry, it's artificial.
     
    Good detail: it is Turing universal in a very powerful sense. It does not rely on boolean gates kind of computation, but on the other pillar of computation which led to functional programming: lambda calculus. (In fact chemlambda goes much further than being a chemical version of functional programming.)
     
    So instead of molecular assemblies which mimic a silicon computer hardware, chemlambda can do sophisticated programming stuff with chemical reactions. (The idea that lambda calculus is a sort of chemistry appeared in the ALCHEMY (i.e. algorithmic chemistry) proposal by Fontana and Buss. Chemlambda is far more concrete and simple than Alchemy, principially different, but it nevertheless owes to Alchemy the idea that lambda calculus can be done chemically.)
     
    From here, the following reasoning.
     
  • (a) Suppose we can make this chemistry real, as explained in the article Molecular computers. This looks reasonable, based on the extreme simplicity of chemlambda reactions.
     
  • (b) Then it is possible to take further Craig Venter's Digital Biological Converters (which already exist) idea and enhance it to the point of being able to "print" autonomous computing molecules. Which can do anything (amenable to a computation, so literary anything). Anything in the sense that they can do it alone, once printed.
     
    The first step of such an ambitious project is a very modest one: identify the ingredients in real chemistry.
     
    The second step would be to recreate with real chemistry some of the examples which have been already shown as working, such as the factorial demo, or the Ackermann function examples from the chemlambda demos, see as well a (video).
     
    Already this second step would be a huge advance over the actual state of the art in molecular computing. Indeed, compare a handful of boolean gates with a functional programming like computation.
    If it is, for example, a big deal to build with DNA some simple assemblies of boolean gates, then surely it is a bigger deal to be able to compute the Ackermann function (which is not primitive recursive like the factorial) as the result of a random chemical process acting on individual molecules.
     
    What is missing is an expert search in existing databases, combined with the realisation of possibly simple proofs of principles chemical experiments based on the existing simple and rigorous formalism.
     
    Once these two steps are realised, then the proof of principle part ends and more practical directions open.
     
    Nobody wants to compute factorials with chemistry, silicon computers are much better for this task. Instead, chemical tiny computers as described here are good for something else.
     
    If you examine what happens in this chemical computation, then you realise that it is in fact a means towards self-building of chemical or geometrical structure at the molecular level. The chemlambda computations are not done by numbers, or bits, but by structure processing. Or this structure processing is the real goal!
     
    Universal structure processing!
     
    In the chemlambda vision page this is taken even further, towards the interaction with the future Internet of Things.
    References:
    [1] (journal) (arxiv) - M. Buliga, Graphic lambda calculus. Complex Systems 22, 4 (2013), 311-360
    [2] (doi) (arxiv) - M. Buliga, Chemical concrete machine (2013).
    [3] (MIT Press free download) (arxiv) - M. Buliga, L.H. Kauffman, Chemlambda, universality and self-multiplication (2014). presented by Louis H. Kauffman at ALIFE 14.
    [4] M. Buliga, chemlambda repository The main script which implements chemlambda version 2 is check_1_mov2_rand_metabo.awk.
    [5] (arxiv) - M. Buliga, L.H. Kauffman, GLC actors, artificial chemical connectomes, topological issues and knots (2013).
    [6] (doi) (arxiv) M. Buliga, Zipper logic (2014).
    [7] (doi) M. Buliga, Build a molecular computer. Journal of Brief Ideas, (2015).
    [8] (html) M. Buliga, Molecular computers, (2015).
     
    This version: April 2nd, 2015