We have seen that several parts or principles of distributed GLC are well anchored in previous, classical research. There are three such ingredients:
- “no semantics“
- biological like, using an artificial chemistry (chemlambda)
- and some kinds of actors.
There are several new things, which I shall try to list them.
1. It is a clear, mathematically well formulated model of computation. There is a preparation stage and a computation stage. In the preparation stage we define the “GLC actors”, in the computation stage we let them interact. Each GLC actor interact with others, or with itself, according to 5 behaviours. (Not part of the model is the choice among behaviours, if several are possible at the same moment. The default is to impose to the actors to first interact with others (i.e. behaviours 1, 2, in this order) and if no interaction is possible then proceed with internal behaviours 3, 4, in this order. As for the behaviour 5, the interaction with external constructs, this is left to particular implementations.)
2. It is compatible with the Church-Turing notion of computation. Indeed, chemlambda (and GLC) are universal.
3. The evaluation is not needed during computation (i.e. in stage 2). This is the embodiment of “no semantics” principle. The “no semantics” principle actually means something precise, is a positive thins, not a negative one. Moreover, the dissociation between computation and evaluation is new in many ways.
4. It can be used for doing functional programming without the eta reduction. This is a more general form of functional programming, which in fact is so general that it does not uses functions. That is because the notion of a function makes sense only in the presence of eta reduction.
5. It has no problems into going outside, at least apparently, Church-Turing notion of computation. This is not a vague statement, it is a fact, meaning that GLC and chemlambda have sectors (i.e. parts) which are used to represent lambda terms, but also sectors which represent other formalisms, like tangle diagrams, or in the case of GLC also emergent algebras (which are the most general embodiment of a space which has a very basic notion of differential calculus).
All these new things are also weaknesses of distributed GLC because they are, apparently at least, against some ideology.
But the very concrete formalism of distributed GLC should counter this.
I shall use the same numbering for enumerating the ideologies.
1. Actors a la Hewitt vs Process Calculi. The GLC actors are like the Hewitt actors in this respect. But they are not as general as Hewitt actors, because they can’t behave anyhow. On the other side, is not very clear if they are Hewitt actors, because there is not a clear correspondence between what can an actor do and what can a GLC actor do.
This is an evolving discussion. It seems that people have very big problems to cope with distributed, purely local computing, without jumping to the use of global notions of space and time. But, on the other side, biologists may have an intuitive grasp of this (unfortunately, they are not very much in love with mathematics, but this changes very fast).
2. distributed GLC is a programming language vs is a machine. Is a computer architecture or is a software architecture? None. Both. Here the biologist are almost surely lost, because many of them (excepting those who believe that chemistry can be used for lambda calculus computation) think in terms of logic gates when they consider computation.
The preparation stage, when the actors are defined, is essential. It resembles with choosing the right initial condition in a computation using automata. But is not the same, because there is no lattice, grid, or preferred topology of cells where the automaton performs.
The computation stage does not involve any collision between molecules mechanism, be it stochastic or deterministic. That is because the computation is purely local, which means in particular that (if well designed in the first stage) it evolves without needing this stochastic or lattice support. During the computation the states of the actors change, the graph of their interaction change, in a way which is compatible with being asynchronous and distributed.
That is why here the ones which are working in artificial chemistry may feel lost, because the model is not stochastic.
There is no Chemical reaction network which concerts the computation, simply because a CRN is aGLOBAL notion, so not really needed. This computation is concurrent, not parallel (because parallel needs a global simultaneity relation to make sense).
In fact there is only one molecule which is reduced, therefore distributed GLC looks more like an artificial One molecule computer (see C. Joachim Bonding More atoms together for a single molecule computer). Only it is not a computer, but a program which reduces itself.
3. The no semantics principle is against a strong ideology, of course. The fact that evaluation may be not needed for computation is outrageous (although it might cure the cognitive dissonance from functional programming concerning the “side effects”, see Another discussion about math, artificial chemistry and computation )
4. Here we clash with functional programming, apparently. But I hope that just superficially, because actually functional programming is the best ally, see Extreme functional programming done with biological computers.
5. Claims about going outside Church-Turing notion of computation are very badly received. But when it comes to distributed, asynchronous computation, it’s much less clear. My position here is that simply there are very concrete ways to do geometric or differential like “operations” without having to convert them first into a classical computational frame (and the onus is on the classical computation guys to prove that they can do it, which, as a geometer, I highly doubt, because they don’t understand or neglect space, but then the distributed asynchronous aspect come and hits them when they expect the least.)
Conclusion: distributed GLC is great and it has a big potential, come and use it. Everybody interested knows where to find us. Internet of things? Decentralized computing? Maybe cyber-security? You name it.
Moreover, there is a distinct possibility to use it not on the Internet, but in the real physical world.