http://publications.csail.mit.edu/lcs/specpub.php?id=773
MIT has catalogued for free basically all their CS papers ever. -- Most Ph.D.'s require going through a clearinghouse to acquire and will set you back a chunk of monies. On Mon, May 10, 2010 at 11:37 PM, Dale Schumacher <dale.schumac...@gmail.com > wrote: > Hi Alan, > > Thanks for the encouragement. After a little searching I found > "Naming and Synchronization in a Decentralized Computer System", D. P. > Reed, 1978 [1]. Is that the paper you had in mind? It looks > interesting, but I haven't had a chance to absorb it yet. > > I'm glad to hear we're on the right track regarding Actors. At this > stage, I'm working at the small end of the continuum, focusing on a > small number of powerful and composable mechanisms. I'm about to > launch a new blog to discuss some of our findings. I'll post > something here when it's available. > > I'll have to give some thought to the larger-scale blackboard > mechanism. It seems like it will take a few combined abstractions to > get there. Some kind of "unification" or "matching" along with > perhaps an "auction" or "marketplace". Maybe the work of the > complexity folks, using Agent-Based Modeling, could inform this > effort. I think there's more foundational work to do before I'll be > ready to tackle these issues, but it is good to let it percolate. > > I'm convinced that there is important progress to be made using > actors, and I plan to continue in that vein. > > Thanks again, > Dale > > [1] http://portal.acm.org/citation.cfm?id=889815 > > On Mon, May 10, 2010 at 7:28 AM, Alan Kay <alan.n...@yahoo.com> wrote: > > Hi Dale et al. > > > > This sounds like a great project, and I'd like to find out more. (Have > you > > looked at David Reed's 1978 MIT thesis on "distributed transactional > object > > operating systems". In my opinion this was one of the very best next > steps > > wrt objects (and it was influenced by Actors)). > > > > And you are right that Actors were closer to my original concept of > objects. > > Actors came out of the first implemented Smalltalk (72) (which was very > > "Actor-like") -- my notion of objects was heavily influenced by the > ARPAnet > > and the soon to be Internet -- and Actors stayed with something more like > > this and were both a great next step from what we were doing at PARC, and > > also got to some of the theoretical issues better than we did. The drive > at > > PARC was to invent and build personal computing, and to try to do it in a > > language that children could program in. (The former succeeded better > than > > the latter.) > > > > After the first round of hardware and software design and implementation, > > Xerox was unwilling to fund the next logical machine after the Alto > > (eventually they did but too late), and this forced the fringe people > (us) > > to have to optimize software for the first time (we had been making > things > > run fast enough via HW). And this brought forth rather different versions > of > > Smalltalk which were less adventurous than the original but much more > > practical (Smalltalk-76 was about 180 times as fast as Smalltalk-72). > > > > Carl Hewitt's research was not primarily aimed at building whole > real-time > > systems, so Actors and Smalltalk diverged quite a bit. > > > > However, I still think the most interesting version of Smalltalk was "71" > > which was never implemented [1]. It was an attempt to combine my earliest > > notion of objects, LOGO, Carl Hewitt's most interesting work (PLANNER, > which > > was the strongest influence on the later Prolog), and some of David > Fisher's > > control definition ideas. This was what we called "pattern directed > > invocation" or "call by desire". Smalltalk-72 was a weaker version of > this, > > and it's hard to see at all in Smalltalk-80 (a programmer really has to > want > > to program this way to do it). > > > > Also in [1] towards the end, is a discussion of how many improvements in > > software came from improvements in late binding, and that some of these > > eventually got put into HW to remove most of the inefficiencies that > usually > > come with late binding something. When LINDA came along in the 80s, this > got > > me thinking harder about the step to "call by need". This was already in > > PLANNER as "antecedent theorems" (Prolog only tried to do the "consequent > > theorems" which have a control structure that allows "backwards > reasoning", > > and is rather similar to procedure calls). CMU had been doing > considerable > > explorations into "forward reasoning" (OPS-5) with some terrific > > optimization mechanisms (Forgie et al). LINDA provided a kind of > > metaframework for pretty much building any kind of control structure and > > these could be driven by patterns. These allowed one to think about a > kind > > of goal oriented publish and subscribe coordination mechanism in which no > > messages were sent (but in which messages were only received). > > > > One way to think of this is that each object has two "bulletin boards". > One > > has characterizations of needed resources, and the other has > > characterizations of resources made available by the object. These > bulletin > > boards are now all put into a LINDA-like matching space which does the > > (considerable) work of brokering. If one could come up with a great way > to > > express the characterizations, then one would have removed one of the > > difficulties of scaling a message sending system, by removing the need to > > know the name or IDs of the receivers. In effect, one would not send > > messages, but only receive them. > > > > I think the big power here would be in finally getting more strongly to a > > more independent but highly practical way to provide semantics. (One of > our > > favorite examples over the years is the question "if you don't know the > name > > of the sine function, then how could you still invoke it?" ... APL has a > > very funny completely non-intuitive way of naming sine, etc.) This > question > > is a very good question when you are trying to find powerful and useful > > resources on a large network .... > > > > People who have taken the trouble to really understand and build Actor > > systems (like you!) are well set up to ponder and design and criticize > one > > of the next logical qualitative leaps in object design and communication. > > > > Cheers, > > > > Alan > > > > > > > > > > [1] > > http://www.iam.unibe.ch/~ducasse/FreeBooks/SmalltalkHistoryHOPL.pdf<http://www.iam.unibe.ch/%7Educasse/FreeBooks/SmalltalkHistoryHOPL.pdf> > > > > ________________________________ > > From: Dale Schumacher <dale.schumac...@gmail.com> > > To: Fundamentals of New Computing <fonc@vpri.org> > > Cc: Tristan Slominski <tristan.slomin...@gmail.com>; Steven Teleki > > <st...@teleki.net>; Dion Stewart <dion.stew...@visi.com>; John Heintz > > <j...@gistlabs.com>; Ian Buchanan <ibucha...@squian.com>; David West > > <da...@transcendencecorporation.com> > > Sent: Sun, May 9, 2010 4:38:20 PM > > Subject: [fonc] An actor-based environment for prototyping > > > > I've been following with great interest the FoNC developments at VPRI. > > I too am very interested in compact, simple and expressive > > representations of computer-based solutions. My focus for the last > > three years has been on the Actor model of computation [1][2]. It > > seems to me that actors are closer to Alan Kay's original concept of > > "objects" than the implementation of objects realized in Smalltalk and > > its derivatives. As Alan has said, the emphasis should be on the > > messages. In a concurrent environment, the asynchronous messaging of > > actors is a much better primitive than the synchronous call-return > > messaging typical in today's "object-oriented" languages (including > > those based on COLA). In order to explore these ideas, I've developed > > an actor-based environment for protoyping. Within this environment > > I've implemented; a solution to the same-fringe problem, an > > implementation of Joe Armstrong's "Erlang Challenge", a fault-tree > > simulation, a dialect of FORTH, two dialects of Scheme, and a > > meta-circularly-defined actor language called Humus. > > > > Humus is a pure actor-based programming language that provides a > > foundation for software developers to build reliable concurrent > > computer systems. It features a referentially transparent > > pure-functional core for defining values. These values become the > > messages between (and specify the behavior of) dynamically configured > > actors. Actor behaviors are composed of concurrent, rather than > > sequential, primitive operations. Actor configurations may also be > > composed without affecting their operation. This allows > > implementation of systems with high scalability and low latency in > > both multi-core and distributed execution environments. The > > theoretical foundations of Humus have mathematically rigorous > > semantics [3]. Unlike Erlang or Scala, there are no blocking > > operations and all expressions are completely free of side-effects. > > Mutable state is entirely encapsulated within actors and may be > > affected only be sending asynchronous messages. > > > > Some of the implementation techniques used in both Humus and my > > actor-based environment (ABE) were inspired by COLA. OMeta also > > provided insight into the design of numerous parsers for the various > > languages built in ABE. I haven't implemented OMeta directly, but > > believe an implementation is possible. The biggest hurdle to that > > implementation is the specification of semantic actions. If I use the > > host language (Humus) to specify the semantic actions, then I can't > > take advantage of all the useful OMeta "code" written for COLA. It > > seems that I would have to implement COLA (Coke) as well. I would > > love to find a way to connect my work with that of VPRI, to the extent > > that we have shared goals. > > > > [1] G. Agha. Actors: A Model of Concurrent Computation in Distributed > > Systems. MIT Press, Cambridge, Mass., 1986. > > [2] C. Hewitt. Viewing Control Structures as Patterns of Passing > > Messages. Journal of Artificial Intelligence, 8(3):323-364, 1977. > > [3] G. Agha, I. Mason, S. Smith, and C. Talcott. A Foundation for > > Actor Computation. Journal of Functional Programming, Vol. 7, No. 1, > > January 1997. > > > > _______________________________________________ > > fonc mailing list > > fonc@vpri.org > > http://vpri.org/mailman/listinfo/fonc > > > > > > _______________________________________________ > > fonc mailing list > > fonc@vpri.org > > http://vpri.org/mailman/listinfo/fonc > > > > > > _______________________________________________ > fonc mailing list > fonc@vpri.org > http://vpri.org/mailman/listinfo/fonc >
_______________________________________________ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc