
γ-calculus – a higher-order calculus that summarizes the fundamental concepts of chemical programming
defined in
Generalized Multisets for Chemical Programming
Jean-Pierre Banatre
Gamma is a programming model in which computation can be seen as chemical reactions between data represented as molecules floating in a chemical solution. This model can be formalised as associative, commutative, conditional rewritings of multisets where rewrite rules and multisets represent chemical reactions and solutions, respectively. In this article we generalise the notion of multiset used by Gamma and present applications through various programming examples. First, multisets are generalised to include rewrite rules, which become first-class citizens. This extension is formalised by the $\gamma$-calculus, which is a chemical model that summarises in a few rules the essence of higher-order chemical programming. By extending the $\gamma$-calculus with constants, operators, types and expressive patterns, we build a higher-order chemical programming language called HOCL. Finally, multisets are further generalised by allowing elements to have infinite and negative multiplicities. Semantics, implementation and applications of this extension are considered.
HOCL Programming Guide
HOCL stands for Higher-Order Chemical Language. It implements γ-calculus and extends the previous presented models with expressions, types, empty solution and naming. These four points will be mentioned in the following chapters. Finally, multisets are furthergeneralized by allowing elements to have infinite and negative multiplicities. An HOCL compiler has been developed in JAVA and this paper is to equip the readers with the ability of programming in HOCL masterly and effectively.
Computing Gamma Calculus on Computer Cluster
Higher level parallel programming models express parallelism in an implicit way. Instead of imposing programmers to create multiple tasks that can run concurrently and handle their communications and synchronizations explicitly, these models allow programs to be written without assumptions of artificial sequenciality. The programs are naturally parallel. Examples of such kind of models include the Chemical Reaction Models (CRMs). These models are created to address higher level programming issues such as formal program specification, program synthesis, program derivation and verification, and software architecture. Efficient implementati
The Chemical Machine: An Interpreter for the Higher Order Chemical Language
The notion of chemical computing has evolved for more than two decades. From the seminal idea several models, calculi and languages have been developed and there are various proposals for applying chemical models in distributed problem solving where some sort of autonomy, self-evolving nature and adaptation is sought. While there are some experimental chemical implementations, most of these proposals remained at the paper-and-pencil stage. This paper presents a general purpose interpreter for the Higher Order Chemical Language. The design follows that of logic/functional languages and bridges the gap between the highly abstract chemical model and the physical machine by an abstract interpreter engine. As a novel approach the engine is based on a modified hierarchical production system and turns away from imperative languages.
Chemical Computing with Clojure
via Carin Meier @gigasquid
“Unconventional Programming with Chemical Computing” by Carin Meier
(video)
Programming Self-Organizing Systems with the Higher-Order Chemical Language
Chemical Programming of Future Service-oriented Architectures
Philip Thrift