3 ms·
What exactly do you think that an Actor cannot do? Trivially, an Actor can implement a Turing Machine. However, there are some Actors that cannot be implement
by ProfHewitt 7y ago
What exactly do you think that an Actor cannot do? Trivially, an Actor can implement a Turing Machine. However, there are some Actors that cannot be implemented using a Turing Machine, e.g., an Actor with unbounded nondeterminism.
- mgummelt 7y agoYes, an Actor (or object) can implement a Turing Machine. But most don't. Most are simpler machines. So this statement by Kay, for instance: "each Smalltalk object is a recursion on the entire possibilities of the computer." is incorrect.
- ProfHewitt 7y agoDifficult to know since you don't specify exactly what an "object" is. Seems more reasonable that "Actors are a recursion on concept of interacting computers."
- mgummelt 7y agoAs I said, pick your definition of object (Java objects, Smalltalk objects, actor, etc.). Unless it's "Turing Complete machine", which isn't anyone's definition of object, you can't equate objects with computers. Saying objects are computers is like saying objects are bicycles. Some of them are, yes, but that's not the point. What's your definition of computer?
- ProfHewitt 7y agoOf course, a computer is an Actor ;-) This would be a joke except for the fact that Actors have been defined up to a unique isomorphism. See the following: https://papers.ssrn.com/abstract=3418003 https://papers.ssrn.com/abstract=3459566
- mgummelt 7y agoThat's an interesting result, but you'll have to connect more dots for me. I don't see how the existence of a categorical theory of Actors relates to what we're discussing.
- ProfHewitt 7y agoIf a computer is required to be an Actor, then we have a precise characterization of what it can and cannot do. Of course, an exact implementation of a computer as an Actor needs to be specified.
- infinite8s 7y agoI think that was Alan's original conception of objects (at least as could could be implemented in Smalltalk-72).
- mgummelt 7y agoNo, most Smalltalk objects were not Turing Complete. Take numbers. Numbers are objects in Smalltalk. They're not Turing Complete.
- infinite8s 7y agoHe seems to hint a bit what he meant in this HN comment - https://news.ycombinator.com/item?id=11946935 https://news.ycombinator.com/item?id=11946935. Also remember that what most people think of Smalltalk (ie Smalltalk-80) doesnt seem to be what AK thinks of Smalltalk (I get the feeling that the Smalltalk-72 approach is closer to the ideals he had in mind).
- ProfHewitt 7y agoThe Smalltalk-72 model was extremely limited. Code in the language was viewed by the interpreter as simply a stream of tokens. According to [Ingalls 1983]: "The first (token) encountered (in a program) was looked up in the dynamic context, to determine the receiver of the subsequent message. The name lookup began with the class dictionary of the current activation. Failing there, it moved to the sender of that activation and so on up the sender chain. When a binding was finally found for the token, its value became the receiver of a new message, and the interpreter activated the code for that object's class." SENDER and stack of previous senders was retained as part of the message-passing protocol, which is problematical for concurrent systems.