Talk:Actor model
From Wikipedia, the free encyclopedia
Archives |
---|
Contents |
[edit] Compositionality
I think the section titled "Compositionality" needs some work. It states:
Compositionality, i.e., the ability to compose Actor systems into larger ones,
This is not really the typically accepted definition of compositionality, at least in the formal semantics sense. The definition provided here corresponds more closely to Composability, i.e. the ability to compose subsystems to form systems (or subterms to form terms, etc.) Compositionality, on the other hand, states that the meaning of the whole is given by the meaning of the parts, or that the behaviour of a composite is uniquely determined by the behaviour of the components. This already assumes composability, but it is not the same. It is possible to define, for example, a language where terms are composable (a syntactic or structural operation,) but is not in fact compositional (a semantic or behavioural property.) Furthermore, compositionality is strongly related to the algebraic notion of congruence; having a compositional semantics is essentially the same as having a congruence relation over the language. I am not too familiar with the Actor model. I understand, from the statement above, that it supports composability, but is it truly compositional? If so, what is the semantic domain, the semantic map, or the congruence over Actors?
--Eposse (talk) 18:42, 11 January 2008 (UTC)User:Eposse
- Hello Eposse, you are right: what is described here is not about compositionality in the sense of the article on that topic. I think you'd be justified in changing the heading to "Composing actors", and removing the link. Does this sound reasonable to others? Sam Staton (talk) 21:54, 11 January 2008 (UTC)
-
- I agree that the text in the article, as it stands, isn't all that clear. However, Agha's dissertation (which is referenced in the discussion of compositionality) does actually use the term "compositionality", and indeed discusses equivalences between actors and actor systems based on what Agha calls "Asynchronous Communication Trees" (which appear from a cursory reading to be a form of labelled transition system). Agha prescribes a set of rules for combining actors in a compositional manner. --Allan McInnes (talk) 01:05, 13 January 2008 (UTC)
- Hmm. I've not read the thesis thoroughly, but it seems that Agha uses "compositionality" in his thesis to mean "matters pertaining to composition". This is (perhaps subtly) different from compositionality as described on that page. There is no syntax, he is just describing how to join several semantic objects together. He is not saying "the meaning of a compound phrase is determined by the meaning of its subphrases", because there is no syntax and hence no "meaning" and no "phrases" to speak of. For another example, I think it would be wrong to use the phrase "the compositionality of a car" to refer to the way that the behaviour of the car can be derived from the behaviour of the steering column, the gearbox and the engine.
- Another thing: it seems that his later article, written with Mason, Smith and Talcott, uses the word "composability" instead. Perhaps Agha later changed his mind about terminology. Sam Staton (talk) 13:43, 13 January 2008 (UTC)
-
- It's true that Agha's dissertation doesn't seem to address the technical meaning of compositionality directly. However, he does define a "syntax" (the composition operator defined on page 159 and page 160) for composition, and further defines (in the appendix) how the "asynchronous communications tree" for a composite system may be arrived at from the trees of its component parts.
- As for the later paper, it seems to me that Agha et al. (in section 3.3) define "composable" to mean that the two actor configurations to be composed are compatible (in the sense that they don't share actor names, and that they have what amounts to "compatible ports"). They then define "composition" as an operation on composable actors, and that form of "composition" seems to be pretty much the same as the one in Agha's dissertation (again giving meaning in terms of the composition of computation trees).
- Having said all of that, I'm hardly an expert on formal semantics or the precise technical meaning of compositionality, and I'm more than willing to defer to your (and Eposse's) opinion on this -- particularly since (as you point out) the more recent paper doesn't actually use the term "compositionality" anyway.
- --Allan McInnes (talk) 22:30, 13 January 2008 (UTC)
-
-
- I haven't read Agha's thesis either, but from your comments it does look like he describes a semantic map into asynchronous communication trees, which presumably is compositional in the standard sense. I do agree that as long as you define a composition operator you have syntax. Defining syntax is not necessarily done by means of a grammar. If you talk about "semantic objects" and how to "join" them, then you can define a signature for these objects. Every signature has an associated set of terms. This can be thought of as "abstract" syntax. It does sound like there is an "abstract" syntax of Actors, with at least a composition operator.
- Having said that, it is quite possible that Agha's terminology in his thesis did not correspond to what most people call now compositionality. So the question would be whether to use Agha's original terminology, or the more recent terminology. Personally I'd go for the latter, and maybe add a footnote on terminology. This section could then describe both composability and compositionality (w.r.t. asynch. comm. trees.)
- --Eposse (talk) 00:11, 15 January 2008 (UTC)
-
-
-
-
- Using the more recent terminology sounds good to me. --Allan McInnes (talk) 07:59, 15 January 2008 (UTC)
-
-
[edit] Buffering in Milner's early model
Previously, the section Not sequentiality, not buffering, not synchrony and not fixed topology claimed that CSP involved buffered communication, which contradicts Hoare's paper on the subject (Hoare explicitly rejects "automatic buffering" of communications). I am now wondering if the claim that Milner's original work (in Processes: A Mathematical Model of Computing Agents) involved buffering is accurate, especially given Milner's later preference for unbuffered synchronous communication. However, I haven't been able to get a hold of a copy of Milner's paper. Can anyone else shed any light on this issue? --Allan McInnes (talk) 23:04, 13 January 2008 (UTC)
- I see that an anon user has removed the mention of buffering in Milner's early concurrency work. Should I take that to mean that someone has checked the paper in question, and verified that mention of buffering was incorrect? --Allan McInnes (talk) 16:28, 14 January 2008 (UTC)
[edit] Proposed merge of Actor model and process calculi history
The article Actor model and process calculi history seems to contain a lot of material that duplicates information found in the Actor model article. Any objections to simply merging in what little material isn't already contained in Actor model? --Allan McInnes (talk) 23:12, 13 January 2008 (UTC)
- The Actor model article is already too long. We might think of merging it with Actor model and process calculi. But that article is also quite long. In due course, someone will probably expand the history further. For example, they might include the history of the Aarhus summer schools in which Hewitt, Hoare, Milner, Nygaard, etc. participated.--71.204.129.151 (talk) 03:52, 15 January 2008 (UTC)
-
- Since the merger proposal was first put forward, an anon editor (you?) has cut out much of the duplicated material, and expanded the remaining text. So perhaps a merger doesn't make as much sense now. But let's give it a few more days, to see if anyone else wants to weigh in. --Allan McInnes (talk) 04:37, 15 January 2008 (UTC)
[edit] Languages vs. Libraries
The article already cites programming languages which implement the Actor Model. However, it does not cite any libraries. Are there any libraries or frameworks that allow the implementation of the Actor Model in “ordinary” programming languages? —Preceding unsigned comment added by 24.129.31.156 (talk) 13:56, 6 May 2008 (UTC)