Sussman's in particular is well worth reading. Cheers,
Alan ________________________________ From: John Zabroski <johnzabro...@gmail.com> To: Fundamentals of New Computing <fonc@vpri.org> Sent: Tue, May 11, 2010 8:05:49 AM Subject: Re: [fonc] An actor-based environment for prototyping The link I provided IS to his LCS TR. For OTHER universities, you have to go through a clearinghouse. You can even get Guy Lewis Steele or Gerald Jay Sussman's Ph.D. theses on the same site I linked to, if you want. On Tue, May 11, 2010 at 10:20 AM, Alan Kay <alan.n...@yahoo.com> wrote: But in this case, Dave's thesis would have been an LCS TR, so should be findable (and free) via the CSAIL "historic collections". > >Cheers, > >Alan > > > > ________________________________ From: John Zabroski <johnzabro...@gmail.com> > >To: Fundamentals of New Computing <fonc@vpri.org> >Sent: Tue, May 11, 2010 6:42:50 AM >Subject: Re: [fonc] An actor-based environment for prototyping > > >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/%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 > >
_______________________________________________ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc