Inconsistency Robustness (Studies in Logic)

Author: Carl Hewitt, John Woods
4.5
This Month Hacker News 3

Comments

by carlehewitt   2018-08-06
Probably, the most fundamental misunderstanding of the Actor Model is that it is based on "Event Loops" which require the following: When an Actor receives a message, it must run until it produces a response to the message and then loops back to receive another message. However, a ReadersWriter scheduler must be able to receive more read and write messages even while it is still processing a message as explained in https://www.amazon.com/Inconsistency-Robustness-Studies-Logi... Even so, a ReadersWriter scheduler must obey the Mutual Exclusion Principle, which says that only one activity can execute in an Actor at a time.

Another common misunderstanding is that an an Actor must have a mailbox, message queue, or event queue. There would be an infinite regress if any of these were required because since everything is an Actor, each of these would itself need a mailbox, message queue, or event queue!

by carlehewitt   2018-08-06
I highly recommend Simon Fowler's ECOOP 2017 lecture https://www.youtube.com/watch?v=lpbkIjjoMRk

However, channels are best understood as Actors with put and get messages so that aChannel.put[x] puts x in aChannel and aChannel.get[ ] gets from aChannel. A channel of type T has the following interface: Interface Channel<T> put[T] -> Void, get[ ] -> T

Actors can be categorically automatized, which means that up to a unique isomorphism, there is just one model that satisfies the axioms. In this way, Actors can be much more precisely defined in a general way than can be done using an extended lambda calculus as in Fowler's lecture.

Furthermore, a common misunderstanding is that an an Actor must have a mailbox, message queue, or event queue. There would be an infinite regress if any of these were required because since everything is an Actor, each of these would itself need a mailbox, message queue, or event queue. Instead, an Actor (e.g. a ReadersWriters scheduler) performs internal queuing when required. See https://www.amazon.com/Inconsistency-Robustness-Studies-Logi...

To get the latest, see my upcoming Code Mesh Keynote: https://plus.google.com/+CarlHewitt-StandardIoT/posts/BXSZ7Y...

by carlehewitt   2018-08-05
For a more recent description of the Actor Model and associated work, see the following: https://www.amazon.com/Inconsistency-Robustness-Studies-Logi...

Also, those who will be in London on November 9 can come to my Code Mesh Keynote. See https://plus.google.com/+CarlHewitt-StandardIoT/posts/BXSZ7Y...

It is fair to say that the implementation of Actors is still in its infancy. There is a startup in Silicon Valley that is attempting to remedy this situation. They are looking for expert programming language and run-time implementers ;-)

Older publications are obsolete and unfortunately many of them have errors (including my own!). I wrote the Wikipedia article on the Actor Model but am no longer allowed to update it :-(

Actors are very well defined up to a unique isomorphism by axioms.

The reason that Actors can perform computations that Turing Machines cannot is that the Turing Machine model left out message passing.