5 ms·
I find this resource confusing and annoying to read. When performing my thesis research I wasted a bunch of time trying to make sense of Hewitt's writing. I thi
by Zalastax 8y ago
I find this resource confusing and annoying to read. When performing my thesis research I wasted a bunch of time trying to make sense of Hewitt's writing. I think a big problem is that the term "actor model" is so overloaded that it almost becomes meaningless. The actors that Hewitt is talking about is not at all the same as Erlang or Akka. As an example I consider this quote from the text nonsensical "Actor systems can perform computations that are impossible by Turing Machines" or of very little relevance to the actor models we use for programming. This has been discussed at [0].
For an overview of different actor models I prefer, see "43 years of actors: a taxonomy of actor models and their key properties" [1]. Agha's book [2] is also very good and I'd also like to recommend "Mixing Metaphors: Actors as Channels and Channels as Actors" [3].
[0]: http://lambda-the-ultimate.org/node/5208 http://lambda-the-ultimate.org/node/5208
[1]: http://soft.vub.ac.be/Publications/2016/vub-soft-tr-16-11.pdf http://soft.vub.ac.be/Publications/2016/vub-soft-tr-16-11.pd...
[2]: https://dspace.mit.edu/handle/1721.1/6952 https://dspace.mit.edu/handle/1721.1/6952
[3]: https://arxiv.org/abs/1611.06276 https://arxiv.org/abs/1611.06276
- PhilWright 8y ago> "Actor systems can perform computations that are impossible by Turing Machines" As a turing machine can compute anything that is computable it is therefore impossible for an Actor to do any computation that is not possible by a turing machine. This is computer science 101 and makes me wonder about the value of anything else said in the paper.
- westoncb 8y agoWell the interesting thing would be if that old lesson were violated. Of course it's sealed forever for a specific definition of 'compute,' but I'm still open to the idea that we find something which resembles computation enough that we call it the same thing, yet its precise definition is different enough from the one used in connection with contemporary theory of computation that old proofs of universality won't necessarily apply to it. That said... it seems unlikely to me that the Actor model does something non-trivially beyond what Turing machines are capable of, since it would likely be better known, and we would see Chomsky's hierarchy expanded to hold another class, etc. (Unless it goes beyond Turing Machines by being non-linguistic in some way, which could certainly be interesting. Maybe dealing with non-sequential symbols or something?)
- carlehewitt 8y agoMessage passing was omitted from the Turing Model. (Two Turing Machines cannot send messages to each other.) Message passing is fundamental for IoT, etc.
- mindslight 8y ago> it is therefore impossible for an Actor to do any computation that is not possible by a turing machine It is impossible for Actors implemented on a Turing machine to do anything that a Turing machine cannot. But the Actor model itself is larger than a Turing machine - eg nondeterminism. Turing completeness is a lower bound on computation, not a maximum. For instance, a CPU with a hardware random number generator is a Turing machine, but a (basic/strict/pure) Turing machine cannot emulate a CPU with a hardware random number generator!
- posterboy 8y agoOnly that Carl took part in research into the model a few decades ago [1] when there was no Erlang, according to wikipedia. [1] Carl Hewitt; Peter Bishop & Richard Steiger (1973). "A Universal Modular Actor Formalism for Artificial Intelligence". IJCAI.
- jchassoul 8y agoTuring machines are not very good handling uncertainty? the key pond is on physics ? yada, yada? I thought this was 101 already!
- carlehewitt 8y agoProbably, 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-Logic-Hewitt/dp/1848901593 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!