Chymyst is a library and a framework for declarative concurrent programming.
It follows the chemical machine paradigm (known in the academic world as “Join Calculus”) and is implemented as an embedded DSL (domain-specific language) in Scala.
The goal of this book is to explain the chemical machine paradigm and to show examples of implementing concurrent programs in
To follow the examples, the reader needs a basic familiarity with the
Scala programming language.
The source code repository for
Chymyst Core is at https://github.com/Chymyst/chymyst-core.
Although this book focuses on using
Chymyst in the Scala programming language,
one can straightforwardly embed the chemical machine as a library on top of any programming language that has threads and semaphores.
The main concepts and techniques of the chemical machine paradigm are independent of the chosen programming language.
However, a purely functional language is a better fit for the chemical machine.
This drawing is by Robert Boyle, who was one of the founders of the science of chemistry.
In 1661 he published a treatise titled “The Sceptical Chymist”, from which the
Chymyst framework derives its name.