Artificial chemistries may also be in vivo, or in vitro:
- in vitro: lab like operations or analogies. Well stirred solutions (ie multisets), global operations like heating/cooling, chemical reaction networks (see CRNs are the stderr shadow),
- in vivo: individual molecules in a random environment, lack of external control, like in a living organism.
While in vitro chemistries are very much the fashion, the in vivo chemistries are very intriguing!
Here is a list of such chemistries, according to my knowledge.
Fontana and Buss Algorithmic Chemistry.
Multisets of lambda calculus terms in normal form. (No mechanism to compute the normal form!)
Chemical reactions:
- A + B -> AB
Later moved to study chemistry as a process calculus: Kappa language, basically async graph-rewriting.
Berry and Boudol The chemical abstract machine. Based on the Γ-language of Banatre and Metayer.
Computes! Multisets of process calculus terms and operations.
Chemical reactions in vitro:
- p + q <-> p | q (cool or heat)
- a.p + a’.q -> p + q (complementary ions reaction)
- membranes, airlocks…
Buliga Chemical concrete machine. Graph rewriting of individual molecules.
Chemical reactions in vivo:
- LHS + Enzyme -> RHS + Enzyme
Later chemlambda and Molecular computers with interaction combinators like graph rewriting systems
“Define a molecular computer as one molecule which transforms, by random chemical reactions mediated by a collection of enzymes, into a predictable other molecule, such that the output molecule can be conceived as the result of a computation encoded in the initial molecule. “
Kruszewski and Mikolov Combinatory Chemistry: Towards a Simple Model of Emergent Evolution
Multisets of SKI calculus terms.
Chemical reactions:
- IA -> A + I
- KAB -> A + K + B
- SABC + C -> (AC)(BC) + S
- A + B -> AB
Buliga chemSKI
Individual molecules (graphs) with conservative graph rewrites.
Chemical reactions:
- LHS + Tokens -> RHS + Tokens