  We are entering a new era in which software systems are becoming more and
more complex and larger. So, the composition of such systems is becoming
infeasible by manual means. To address this challenge, self-organising software
models represent a promising direction since they allow the (bottom-up)
emergence of complex computational structures from simple rules. In this paper,
we propose an abstract machine, called the composition machine, which allows
the definition and the execution of such models. Unlike typical abstract
machines, our proposal does not compute individual programs but enables the
emergence of multiple programs at once. We particularly present the machine's
semantics and provide examples to demonstrate its operation with well-known
rules from the realm of Boolean logic and elementary cellular automata.
