Roger Brent and Jehoshua Bruck, in their Commentary article “Can computers help to explain biology?” (Nature 440, 416–417; 2006), draw a firm distinction between von Neumann computers — the usual computer as we know it — and biological systems. But there are many alternative models of computation. A Prolog (logic programming) computer, in particular, does not seem to exhibit several of the differences singled out.
A Prolog computation, like its biological counterpart, does not need an order of execution. Any partial ordering of the major components, known as clauses, are determined by a dynamic succession of pattern-matching operations. Within these clauses, the execution of logic expressions is unordered: A and B is the same as B and A, and it does not matter whether we deal first with the truth of A or the truth of B (although computational constraints sometimes impose a partial ordering). A key for biological modelling would be to impose only those sequence constraints that have analogues in biological systems.
A second distinction highlighted by Brent and Bruck is that biological systems do not have a separate ‘output’ component. Again, Prolog does not conform to the norm. Often the important reason for executing a Prolog program is to find out what ‘bindings’ occur en route to a true outcome, in other words, what values are bound to what variables.
It is perhaps relevant that Stephen H. Muggleton, in his companion Commentary article “Exceeding human limits’ (Nature 440, 409–410; 2006), encourages the development of new formalisms within computer science that integrate mathematical logic and probability calculus.
Prolog may not be a perfect computational model for biological systems, but it exemplifies a system that could be a better fit for biological modelling.