Talk:Actor model
Archives |
---|
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)
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)
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)
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)
Confusing term "behavior"
Rather late in this article the term "behavior" is defined not as it is defined in ordinary usage, i.e. what actually happens, what somebody actually does, but as a function mapping from the currently received message to what actually happens in response to that message, what the actor actually does in response to the message. IMO this is confusing terminology. In a technical textbook for students who are taught the meaning of the term before reading the text that uses it, perhaps it's fine to use terminology in that way, but in WikiPedia I'd prefer to somehow clarify such jargon whenever it doesn't have the meaning a first-time reader would expect it to have.
Below are two examples of text earlier in the article to which I composed a correction because the example-text seemed more or less wrong before I had read the later section defining what "behavior" is supposed to mean here.
"in response to a message that it receives, an actor can make local decisions, create more actors, send more messages, and determine how to respond to the next message received."
What I wrote in response to reading that text: An actor can't decide how it will respond to the next message until after it receives that next message. The best an actor can do in response to the current message is to modify its internal state so as to affect the way it might respond to various possible next mesages.
What I wrote later, after reading the later section on "behavior": Perhaps what the author really meant is that the behavior (function), not the actual behavior (action) is determined. See the section on behavior being a function that is applied to an incoming message to determine what happens at that time and also what the new behavior (function) will be for the next message after that.
"An actor is a computational entity that, in response to a message it receives, can concurrently:
* send a finite number of messages to other actors;
* create a finite number of new actors;
* designate the behavior to be used for the next message it receives."
What I wrote in response to reading that text: Again, the best it can do for item 3 is to modify its internal state in order to effectively modify the algorithm it will use to decide what behavior to use for the next message it receives.
Text added after reading the later section on "behavior": Although technically the word "behavior" in this theory actually means the function mapping message-input to what-happens, perhaps the term "behavior function" or "behavior" with parenthetial (function) immediately after, instead of just "behavior" by itself, should be used throughout this article when that meaning is intended?
Side remark, not a correction, but related to the definition of "behavior", so I'm including it here rather than starting a whole new talk/discussion section: Note that for efficiency, the behavior function would usually be implemented as a combination of a fixed algorithm (execute-only constant) and a state which is mutable pure data (no directly executed code) that is referenced and modified by the algorithm, thus following the Harvard model rather than the Von Neumann or interpreted-Lisp model.
Link to non-existant label
"(But see Synthesizing Addresses of Actors.)"
Target label doesn't exist, so this jumps to top of article. I know we're supposed to be bold in editing, just fix the problem instead of posting a bug report, but I don't know where the intended target might be. Most likely is in a section that was deleted and can be found only in the history of past versions, and I'm a newbie here so I have no idea how to find it and figure out how to make the link valid now. So please forgive me for leaving the fix to an expert, OK?
198.144.192.42 (talk) Robert Maas, tinyurl.com/uh3t for contact info
Incorrect link to Kilim
In "Kilim - a message-passing framework for Java", Kilim is linked to a wikipedia page describing kilim rugs, not a message passing framework. It is obviously referring to http://www.malhar.net/sriram/kilim/index.html. —Preceding unsigned comment added by 64.128.15.200 (talk) 01:49, 4 March 2009 (UTC)
Relation to Active Object?
Active_Object links to this page. However, neither that page nor this page discuss the other. I am confused about the relation between the terms "actor model" and "active object"; do they refer to the same concept? I feel either/both pages should discuss/clarify this point. —Preceding unsigned comment added by 64.128.15.200 (talk) 23:27, 22 April 2009 (UTC)
Scala
Scala Actors are not part of the language, but are in the standard library. AFAIK it doesn't implement all aspects of the Actor model. Perhaps it should be noted that Scala's implementation is incomplete? --79.206.217.192 (talk) 10:06, 21 August 2009 (UTC)
What about previously created Actors?
"addresses for Actors that it creates while processing the message"
What about Actors that it created during the processing of a previous message? Do they continue to exist and be addressable? - Dougher (talk) 03:46, 25 September 2009 (UTC)
Sussman and Steele produced the first version of Scheme on Maclisp in the mid-1970s in an attempt to relate the Actor model at the time to more familiar programming ideas. They soon decided that the code they had written to implement actors was identical to the code to implement procedures, and ended up with a novel version of Lisp. However the influence of the Actor model on Steele and Sussman's thinking at the time was considerable, as they have widely acknowledged. Possibly the development of Scheme, which in turn has had a great influence on the subsequent development of modern Lisp from Lisp Machine Lisp to Common Lisp, was one of the more glaring and obvious influences of the Actor model. --TS 13:29, 15 October 2009 (UTC)
- I reverted this sequence of two edits because I think it makes a huge meal out of something that is quite trivial in the context of the Actor model. Sussman and Steele's fundamental insight was that their models of actors and functions--as Sussman and Steele understood it in 1973--was identical, both being grounded in lambda calculus. Nobody in a million years would claim that Scheme--a language lacking anything resembling concurrency--had anything to say about the Actor model.
- I think if we mention Scheme in the article we should follow Sussman and Steele's lead and emphasize that the earliest Scheme was simply an attempt to relate the innovative concepts of the Actor model to the familiar concepts of Lisp-based AI.
- Of course modern Scheme contains no remnants of that, and you'd have to be insane to describe it as a language for controlling concurrent systems, but their struggles led to an insight about non-concurrent systems: that the lambda calculus is pretty good at generating control structures in a way that was not widely appreciated at the time. --TS 21:00, 16 October 2009 (UTC)
- Heads up: the above edits might be involved in Wikipedia:Sockpuppet investigations/CarlHewitt. —Piet Delport (talk) 2009-10-21 02:44
We learned that the name Scheme come from Sussman and Steele "scheming" against actors. They thought they had made an important discovery that actors were just the lambda calculus.63.249.108.250 (talk) 20:04, 17 October 2009 (UTC)
ActorScript cleanup
I removed a bunch of stuff about the ActorScriptTM language, which was 1) referenced to an unpublished preprint; b) was written like advertising ("the current definitive language..."); 3) gave undue emphasis to the Actorscript product given the weak sourcing; 4) devoted too much space to stuff about JSON and XML for an academic topic like this; 5) was inserted by an anonymous editor ([1] sequence of edits) in apparent contravention of restrictions against autobiographical editing by Carl Hewitt that I'm sure are known here. 66.127.55.192 (talk) 04:41, 14 February 2010 (UTC)
- The section has been unblanked because it is useful to Wikipedia to have the material. The work on ActorScript is quite well know and has been referenced in other publications and in blogs. Fortunately, not all academics are as ignorant as you imagine about XML and JSON. Also, there are other programming languages that use XML and JSON as data types.98.210.236.129 (talk) 23:35, 14 February 2010 (UTC)
- I have removed it again based on the longstanding bans. Editors in good standing not under restriction are welcome to restore all or part of the material as they see appropriate. In the event of what appears to be further reversions by restricted editors, I will open an ANI thread to request application of blocks and article protection as needed. 66.127.55.192 (talk) 07:00, 15 February 2010 (UTC)
- It's too late to try to suppress ActorScriptTM because it is all over the Internet. 98.210.236.39 (talk) 12:23, 15 February 2010 (UTC)
- The amount of space now devoted to it in the article is ridiculous, and if ActorScript was really all over the internet, you'd be able to cite some publications describing real-world systems that use it. I actually hadn't intended to remove it from the list of languages in the article and I'm fine with it being mentioned there, but this isn't an advertising venue for the voluminous description currently in the article. I will open an ANI thread as mentioned. 66.127.55.192 (talk) 19:01, 15 February 2010 (UTC)
- Maybe you should make it into a separate article. 69.110.144.119 (talk) 19:05, 15 February 2010 (UTC)
- The article would have to be written by an unrestricted editor and notability of the topic would have to be documented by reliable sources. 66.127.55.192 (talk) 19:06, 15 February 2010 (UTC)
- And it would have to NOT be a blatant copyvio of http://arxiv.org/ftp/arxiv/papers/0907/0907.3330.pdf. --SarekOfVulcan (talk) 20:37, 15 February 2010 (UTC)
- The article would have to be written by an unrestricted editor and notability of the topic would have to be documented by reliable sources. 66.127.55.192 (talk) 19:06, 15 February 2010 (UTC)
- Maybe you should make it into a separate article. 69.110.144.119 (talk) 19:05, 15 February 2010 (UTC)
- The amount of space now devoted to it in the article is ridiculous, and if ActorScript was really all over the internet, you'd be able to cite some publications describing real-world systems that use it. I actually hadn't intended to remove it from the list of languages in the article and I'm fine with it being mentioned there, but this isn't an advertising venue for the voluminous description currently in the article. I will open an ANI thread as mentioned. 66.127.55.192 (talk) 19:01, 15 February 2010 (UTC)
- It's too late to try to suppress ActorScriptTM because it is all over the Internet. 98.210.236.39 (talk) 12:23, 15 February 2010 (UTC)
The material in the article clearly qualifies as fair use.98.210.236.39 (talk) 20:43, 15 February 2010 (UTC)
- (recycled from ANI:) There is currently a list of languages in the article, and I think re-inserting a mention and cite of ActorScript into that list is all that can really be justified given the current weak level of sourcing. It should be enough to paste the line about ActorScript from this version, into the section now labelled "Later Actor programming languages". I actually hadn't intended to remove that mention when I edited the article, but I made a somewhat complicated merge and apparently lost that line somehow. Even that brief mention is a slight stretch, given that the citation is to a self-published arxiv preprint. 66.127.55.192 (talk) 21:43, 15 February 2010 (UTC)
Once again, Wikipedia is deliberately publishing incorrect information. —Preceding unsigned comment added by 63.249.91.253 (talk) 04:16, 16 February 2010 (UTC)
ANI
I have opened an ANI thread, Wikipedia:Administrators'_noticeboard/Incidents#Carl_Hewitt. 66.127.55.192 (talk) 19:11, 15 February 2010 (UTC)
- It's kind of crazy for Wikipedia to try to maintain an obsolete version of ActorScriptTM: Industrial strength integration of local and nonlocal concurrency for Client-cloud Computing. When do you give up and admit defeat? 98.210.236.39 (talk) 20:41, 15 February 2010 (UTC)
ActorScript censorship
The following information on ActorScript was censored.
copyright information removed
—Preceding unsigned comment added by 65.106.72.229 (talk) 21:03, 18 February 2010 (UTC)
The information above is under copyright, and by posting it here you are breaking the law. It is too detailed for a general article. It also contains a doubtful and unreferenced claim. If you think something about ActorScript belongs on WIkipedia you could try making a separate article for ActorScript - but first be sure it satisfies Wikipedia:Notability. You will also need to write the article in your own words, not copy it from elsewhere. DJ Clayworth (talk) 21:10, 18 February 2010 (UTC)
- Just tell people to read ActorScriptTM: Industrial strength integration of local and nonlocal concurrency for Client-cloud Computing 65.106.72.229 (talk) 22:42, 18 February 2010 (UTC)
- I'm sure they will. DJ Clayworth (talk) 14:15, 19 February 2010 (UTC)
- It's great that you *agree* about something for a change :-) 171.66.32.133 (talk) 23:50, 19 February 2010 (UTC)
- I'm sure they will. DJ Clayworth (talk) 14:15, 19 February 2010 (UTC)
Important reference deleted
For some reason, the most important reference keeps getting deleted from this article, namely ActorScriptTM: Industrial strength integration of local and nonlocal concurrency for Client-cloud Computing|pub. This paper is the most complete and up to date published paper on the Actor Model. —Preceding unsigned comment added by 63.249.112.62 (talk) 21:15, 9 May 2010 (UTC)