Jump to content

Talk:Actor model and process calculi

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by CarlHewitt (talk | contribs) at 10:19, 9 December 2005 (Needs rewrite?: respsonse to Allan McInnes). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Hey Carl, truly love your work; but any reason why you don't want to link directly to copies of the citations themselves? Or, unless you've got a homepage hosting all of your papers, like Henry Baker does... I'm still looking for a copy of Laws for Communicating Parallel Processes. -- zuzu

Needs rewrite?

I think that it's valuable to compare and contrast Actors and process calculi, but there seems to be a lot lacking here. For example, the article goes to great lengths to demonstrate how the Actor model can represent channel-based communications, but does not discuss at all how Actor address-based communications can be modelled in process calculi. Nor does it describe what the real difference is between name-based &pi-calculus communications and address-based communications. It is, of course, difficult to really do this justice, since process calculi is a broad term for a variety of computational models, whereas the Actors model is one particular type. It would be useful to have the article structured in terms of similarities (of which there are many), and differences.--Allan McInnes 17:45, 7 December 2005 (UTC)[reply]

Dear Allan,
Thanks for your suggestions. The article originaly got started because an editor asked for a comparison between Actors and the process calculi. Structuring in terms of similarities and differences is reasonable. Any ideas how we can do this?
Regards, --Carl Hewitt 22:43, 7 December 2005 (UTC)[reply]

We might also consider retitling the article as something like Models of Concurrency, and then reorienting the article itself to a more NPOV, i.e. briefly describe the similarities and differences between the various approaches for modelling concurrency that are out there. As it stands right now, this article looks a lot like “Actors model vs. everything else”.--Allan McInnes 17:49, 7 December 2005 (UTC)[reply]

It seems to me that there is a whole article on Actor model and process calculi in its own right for a variety of reasons not the least of which is the space required to cover the subject matter. This is not to say that we should not also' have an article Models of concurrency that also covers Petri nets, SMPs, Web Services, etc. Regards,--Carl Hewitt 22:48, 7 December 2005 (UTC)[reply]
I'm not sure that I see the need to arbitrarily restrict the comparison to that subset of concurrency models known as process calculi, given the wide diversity of formal systems (synchronous, asynchronous, stochastic, mobile, etc.) that fall under that heading. At this point, the majority of the space in the Actor model and process calculi article is taken up by
  1. a description of how to emulate some process calculus communication styles in the Actor model
  2. a discussion of specific implementations that, while inspired by process calculi, are not actually process calculi themselves
  3. an excessively long reference list
It seems to me that if those were trimmed down there'd be plenty of room for a (brief) discussion of other concurrency models. This is after all supposed to be an encyclopaedia article (i.e. an overview of the subject matter), not a detailed journal-style article.--Allan McInnes 00:14, 8 December 2005 (UTC)[reply]
Being inclusive, in the Wikipedia process articles naturally tend to expand instead of contract. After articles become too large to expand, they then tend to divide into sub-articles. Such is the Wikipedia way of reporting on published knowledge. Eventually this article will probably divide into sub-articles focused on the synchronous, asynchronous, ambient, stochastic, migratory, etc. process calculi. There is not going to be room in this article for comparisons with Petri nets, SMPs, Web Services, etc. Also as the published literature goes up, the references naturally go up. However, as an article divides into sub-articles, the reference lists also naturally divide.
It would be good to report on the published literature on how communication mechanisms of the Actor model can be defined in the various process calculi.
It is going to be difficult to distinguish between the process calculi and programming languages based on process calculi.
Regards, --Carl Hewitt 01:53, 8 December 2005 (UTC)[reply]
  • I have no doubt that this article will eventually sub-divide, should it become expanded. I am simply concerned that the focus of this article is, at present “Actor model vs. process calculi”, which seems to be a case of comparing the specific to the general. My suggestion is that the article become a more general comparison of a variety of models, and thus present more of a NPOV.
Suggestions how to do this are most welcome.--Carl Hewitt 02:47, 8 December 2005 (UTC)[reply]
  • Regarding reference lists, I think that there is a difference between citing one or two relevant sources, and providing a large bibliography composed mostly of tangentially related material (which just clutters up the page). References that are directly relevant to the article at hand (e.g. Montanari and Talcott) are fine, but I think that the bulk of the reference list could probably be replaced with a couple of pointers to the articles for the Actor model and the specific process calculi involved. That is, of course, just my opinion. I don't particularly want to get into an edit war over this, so if you don't concur then I will leave the reference list as is for now.
This is a reasonable suggestion.
However, there are references and comparisons between Actors and the process calculi throughout the literature.
Also, someday a history section of this article will need to be written and the references will be needed.
Regards--Carl Hewitt 07:43, 8 December 2005 (UTC)[reply]
Yes, there are references to Actors and process calculi throughout the literature. That doesn't mean that every possible reference needs to be listed here. This is not a bibliographic database. --Allan McInnes 06:05, 9 December 2005 (UTC)[reply]
I am particularly concerned about the history of the relationship between the Actor model and process calculi. So references that are relevant to that historical relationship belong here. In that regard, it is reasonable to look to see if the current list can be trimmed. I agree with you that all the references to Actors and process calculi throughout the literature on concurrency do not belong here. You are correct that there are far too many and it is not appropriate.--Carl Hewitt 06:59, 9 December 2005 (UTC)[reply]
Thank you. I think that leaving references relevent to the historical relationship sounds like a reasonable compromise. --Allan McInnes 08:36, 9 December 2005 (UTC)[reply]
I am glad that we could work this out. If our tools were better, we could probably make progress a lot faster;-) Cheers,--Carl Hewitt 10:19, 9 December 2005 (UTC)[reply]
  • I don't see why it is difficult to separate process calculi from the languages they inspire. It's easy enough to separate the λ-calculus from, say, Haskell. There are many concerns relevant to programming languages that are irrelevant to models, and vice versa.
In some ways it is natural to treat programming languages like Pict and the Join-calculus as variants of process-calculi.--Carl Hewitt 02:47, 8 December 2005 (UTC)[reply]
--Allan McInnes 02:19, 8 December 2005 (UTC)[reply]
Also I would like to thank you for your edits to the article. They have improved it a lot. Regards,--Carl Hewitt 03:03, 8 December 2005 (UTC)[reply]
Additionally, I think that it would be helpful if we drew a distinction between models of concurrency (i.e. abstractions that permit reasoning about concurrent systems in general) such as the Actor model, Petri nets, process calculi, etc., and implementations of concurrency (i.e. specific types of concurrent systems that perform a specific function), such as SMPs, and Web Services. --Allan McInnes 01:58, 8 December 2005 (UTC)[reply]
It turns out that others have different ideas. They treat SMPs and Web Services as models of computation in their own right.--Carl Hewitt 02:47, 8 December 2005 (UTC)[reply]