The project page moved to chemlambda.github.io. This page is kept for historical reasons.
Chemlambda is a graph rewriting system derived from graphic lambda calculus [1] which can be seen as a simple model of chemical or biological computing.
The first version of chemlambda has been introduced in the article [2], with the name "chemical concrete machine". In the article [3] appears with the name 'chemlambda". An alternative is the formalism of zipper logic [6].
Chemlambda is now at version 2. It is different from chemlambda version 1 by the introduction of a new node, called FOE, and several new moves (graph rewrites). It is presented in the article [8], which is designed to "run in the browser", namely coming with something better: a program which implements it [4]. With this program is produced the page of demos. The page of moves shows the graph rewrites of chemlambda version 2 and contains supplementary details.
What is it good for? There are several possible uses. The development depends on the spread of the formalism and on collaborations.
There are two main possible directions: decentralised asynchronous models of computation like in [5], or real chemistry applications like the molecular computer [7],[8]. See a project proposal and the vision page too.
How to use the programs. Follow the steps: (a) do not clone the repository, instead download the gh-pages branch from this link, unzip it and open a terminal window, change directory to the folder "dynamic", (b) type "bash quiner_shuffle.sh" for the random rewrites algorithm. Type "bash moving_random_metabo.sh" for deterministic rewrites algorithm. Type "bash quiner_node.sh" for the random colored rewrites algorithm. These are several pairs of scripts, like quiner_shuffle.sh and quiner_shuffle.awk. The parameters (number of cycles, weights of moves, visualisation parameters, see comments in the .awk script) are set by editing the awk script called by the sh script. (c)
you shall see the list of all .mol files from the "mol" folder. Each mol file represents a chemlambda molecule. If you want to reproduce a demo, then choose the file.mol which corresponds to the file.html name of
the demos page (d)
a file.html is produced, which you can see with a browser. It is a d3.js animation of the history of the computation.
I use safari for best results, then chrome, then firefox. All the animations from the chemlambda collection have been done by screencasting the file.html result. Sometimes I edit the file.html and play a little with charge, gravity, linkstrength, or with the speed parameter which multiplies the step from the function nextval() definition.)
Molecules, i.e. the chemlambda graphs, appear as .mol files, it is important to understand the notation. The program works with the mol files and produces a html file which contains the visualisation of the execution of the algorithm from the main script.
The visualisation is not needed for the chemlambda formalism, but is useful for your understanding of what happens. Therefore chemlambda is not a visualiser for lambda calculus, but it can be used for this, in particular.
See the detailed explanations of the mol format and visualisation conventions at the moves page.
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).