Hi:
I have the felling, this list is not yet where it was supposed to be from a content point of view, so, I would like to ask something on- topic :) I have done a bit of research in the field of 'Actor' models for Smalltalk and would like to ask whether there are other things I should be aware of. What follows is a small overview of what I was interested in. For the experiments I have in mind now, I will probably go with a model which is based on E's vats, to me know best from AmbientTalk[1], except it turns out I missed something exciting. The main reason to chose this model is, that it provides a notion of locality for objects and isolation between actors, which most of the time is not true for actor languages/libraries build on top of existing languages (cf. [4]). The Actra[3] model is not entirely clear to me, but what I understand from that paper is, that they restrict the language to synchronous blocking message sends between actors - might be inspired by CSP - with implicit message receives for actors which are not busy. They also mention that the have a mechanism to yield from executing a message to be able to execute another one. Sounds like coroutines. Furthermore, they it is said that an actor encapsulates a community of objects, but I haven't read what that actually implies. Actalk[2] seems to be a more straight forward Actor model with asynchronous message sends. However, it lacks the notions of isolation. Tweak with its islands[5] looks a lot like E and AmbientTalk. Islands are like vats container for objects. It provides mechanisms to send messages between islands in synchronous or asynchronous ways. An implementation artifact seems to be the fact, that you are actually able to break the isolation islands are supposed to provide. The #passByIdentity mechanisms enables the programmer to give away a direct reference to an object to another island, for instance to share the class objects. The webpage also mentions IslandVariables which I guess are some kind of thread/island-locals, but the semantics is not really explained. If there other interesting things, Smalltalk related or not, which provide the notion of an Actor model, locality, or isolation, I would like to know about them. Maybe PGAS-like constructs in some Smalltalk dialect? Thanks and best regards Stefan |
Hi Stefan,
The following is relevant. I kind of liked it.
Andrew P. Black, Magnus Carlsson, Mark P. Jones, Richard Kieburtz and Johan Nordlander. Timber: A Programming Language for Real-Time Embedded Systems. OGI School of Science & Engineering, Oregon Health and Sciences University, Technical Report CSE 02-002. April 2002. On Mon, Mar 8, 2010 at 9:37 AM, Stefan Marr <[hidden email]> wrote:
That is my instinct as well. We have an masters student whose starting to work on actors for Newspeak and so we'll be a lot clearer on this in a few months.
-- Cheers, Gilad |
In reply to this post by Stefan Marr-2
Stefan
I would be interested to know the results you get. I was discussing but no time to see the impact of an ambianttalk vat in Pharo with tom. Stef On Mar 8, 2010, at 6:37 PM, Stefan Marr wrote: > Hi: > > I have the felling, this list is not yet where it was supposed to be > from a content point of view, so, I would like to ask something on- > topic :) > > I have done a bit of research in the field of 'Actor' models for > Smalltalk > and would like to ask whether there are other things I should be aware > of. > > What follows is a small overview of what I was interested in. > > For the experiments I have in mind now, I will probably go with a > model > which is based on E's vats, to me know best from AmbientTalk[1], > except it turns out I missed something exciting. > The main reason to chose this model is, that it provides a notion of > locality > for objects and isolation between actors, which most of the time is > not true > for actor languages/libraries build on top of existing languages (cf. > [4]). > > > The Actra[3] model is not entirely clear to me, but what I understand > from > that paper is, that they restrict the language to synchronous blocking > message sends between actors - might be inspired by CSP - with > implicit > message receives for actors which are not busy. > They also mention that the have a mechanism to yield from executing a > message > to be able to execute another one. Sounds like coroutines. > Furthermore, they it is said that an actor encapsulates a community of > objects, but I haven't read what that actually implies. > > Actalk[2] seems to be a more straight forward Actor model with > asynchronous > message sends. However, it lacks the notions of isolation. > > Tweak with its islands[5] looks a lot like E and AmbientTalk. > Islands are like vats container for objects. It provides mechanisms to > send messages between islands in synchronous or asynchronous ways. > An implementation artifact seems to be the fact, that you are actually > able to break the isolation islands are supposed to provide. > The #passByIdentity mechanisms enables the programmer to give away a > direct > reference to an object to another island, for instance to share the > class > objects. > The webpage also mentions IslandVariables which I guess are some kind > of > thread/island-locals, but the semantics is not really explained. > > > > If there other interesting things, Smalltalk related or not, which > provide > the notion of an Actor model, locality, or isolation, I would like to > know > about them. Maybe PGAS-like constructs in some Smalltalk dialect? > > > Thanks and best regards > Stefan |
On Mar 8, 6:58 pm, stephane ducasse <[hidden email]>
wrote: > Stefan > > I would be interested to know the results you get. > I was discussing but no time to see the impact of an ambianttalk vat in Pharo > with tom. Well, I am mostly interested in the implications for VMs not the programming model itself. But who wants such a thing in Pharo anyway, if you could have it in JavaScript ;) http://ssjs.pbworks.com/Communicating-Event-Loops Best regards Stefan |
In reply to this post by Gilad Bracha-2
Hi Gilad:
On Mar 8, 6:50 pm, Gilad Bracha <[hidden email]> wrote: > Hi Stefan, > > The following is relevant. I kind of liked it. > > Andrew P. Black, Magnus Carlsson, Mark P. Jones, Richard Kieburtz and Johan > Nordlander. Timber: A Programming Language for Real-Time Embedded Systems. > OGI School of Science & Engineering, Oregon Health and Sciences University, > Technical Report CSE 02-002. April 2002. Thanks for the hint. I skimmed over the reactive objects section. Looks a bit like Erlang with some additional sugar like synchronous message sends, and a 'reactiveness' property. (just from a conceptual view) Or have I missed something important? > That is my instinct as well. We have an masters student whose starting to > work on actors for Newspeak and so we'll be a lot clearer on this in a few > months. Nice, looking forward to read about it on your blog :) Thanks Stefan > > -- > Cheers, Gilad |
On Mon, Mar 8, 2010 at 12:43 PM, Stefan Marr <[hidden email]> wrote: Hi Gilad: I think you might have. As I recall, there is no "receive" operation, unlike Erlang, wheer you can pattern match for specific messages you want to process. This means no deadlock. It can also be inconvenient at times. This has some similarities to the E notion of turns.
Now, to be fair, it's been a while since I read this paper, so you'll have to form your own conclusions.
:-) It'll be a wile, I think. -- Cheers, Gilad |
In reply to this post by Stefan Marr-2
Hi Stefan,
-- It feels a little strange to dig out such a thoroughly old thread, but I've had this in my inbox for a couple of years, waiting until I had something to report :-) On 8 March 2010 12:37, Stefan Marr <[hidden email]> wrote: -- If there other interesting things, Smalltalk related or not, which provide the notion of an Actor model, locality, or isolation, I would like to know about them. Maybe PGAS-like constructs in some Smalltalk dialect? We've just had a paper accepted to ESOP 2014 on exactly this topic: "The Network as a Language Construct", http://www.ccs.neu.edu/home/tonyg/esop2014/ We've been working on a system of layered *networks* containing actors. (Each network is itself an actor in some containing network.) Networks scope interactions between Actors, which communicate with each other using pub/sub messaging. The pub/sub subscriptions have a second use as a mechanism for signalling the presence or absence of possible conversational partners. It works out a little like Erlang's exit signals. "The actor model inspires several important programming languages. In this model, communicating concurrent actors collaborate to produce a result. A pure actor language tends to turn systems into an organization-free collection of processes, however, even though most applications call for layered and tiered architectures. To address this lack of an organizational principle, programmers invent design patterns. "This paper investigates integrating some of these basic patterns via a programming language construct. Specifically, it extends a calculus of communicating actors with a “network” construct so that actors can conduct scoped, tiered conversations. The paper then sketches how to articulate design ideas in the calculus, how to implement it, and how such an implementation shapes application programming." Cheers, Tony Tony Garnock-Jones [hidden email] http://www.ccs.neu.edu/home/tonyg/ You received this message because you are subscribed to the Google Groups "Smalltalk Research" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out. |
Hi Tony:
-- On Thursday, January 30, 2014 9:05:56 PM UTC+1, Tony Garnock-Jones wrote:
Thanks, looks interesting. Will have a look at it. Best regards Stefan You received this message because you are subscribed to the Google Groups "Smalltalk Research" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out. |
In reply to this post by Tony Garnock-Jones-4
Tony,
-- very nice! This reminded me of the Agora project that Marcio Quintaes Marchini did at the Federal University of Santa Catarina (Brazil) in the early 1990s (not to be confused with a language called Agora http://soft.vub.ac.be/research/agora/ from the same era). Actors could join multiple Agoras (which is something like "marketplace" in Greek) to have structured conversations and all this was implemented on top of Marcio's LindaTalk. There was also the paper "Multiple tuple spaces in Linda" by David Gelernter in PARLE '89 Parallel Architectures and Languages Europe - Lecture Notes in Computer Science Volume 366, 1989, pp 20-27 which, if I remember correctly since I can't access a copy, has some of the same ideas. -- Jecel You received this message because you are subscribed to the Google Groups "Smalltalk Research" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out. |
Free forum by Nabble | Edit this page |