Talk:Communicating sequential processes

Suggestions for presenting formal description
Given the variety of CSP's semantic models (operational, algebraic, denotational - traces, failures, failures divergence, etc.) I'm not quite sure how to tackle the presentation of a formal description of CSP. I think that the syntax would be fairly easy to insert (it's been presented in numerous conference papers). But the semantic models, even in precis, could take up a lot of space. Anyone else have any thoughts or suggestions? --Allan McInnes 07:59, 8 December 2005 (UTC)


 * My present plan is to simply describe the basic ideas behind the denotational semantics (traces, failures, etc.), and mention the form of the algebraic and operational semantics (perhaps with some simple) examples, without presenting the full semantics or getting into extensive detail. Feedback on these intentions most welcome. --Allan McInnes 20:23, 29 December 2005 (UTC)

Another (alternative) sugestion: use the Reference model approach, for show didactic examples and compare CSP variants. The "basic reference Model" is here (on article), but the comparations and examples no. If the choice for "reference model" is the 1978 first CSP, it may be SIMPLE, and comparations with the "new CSP" will be easy to do. -- Octuber 2006 —The preceding unsigned comment was added by 201.43.55.80 (talk • contribs).


 * That's an interesting suggestion. But I don't see how it would help in presenting the algebraic or denotational semantics for CSP. I'm not talking about the CSP variants out there. I'm talking about the semantic models for modern (i.e. Roscoe's) CSP. Those models alone are quite complex, and there are a number of them. That's one reason I haven't made much progress on the formal description section (the other being a general lack of time or energy to tackle it right now).


 * As for comparing CSP variants, I've tried to keep this article focused on the standard version of modern CSP - the one presented by Bill Roscoe in his text, and which is accepted by FDR2, ProBE, ARC, and other CSP tools. Major CSP spinoffs (such as Timed CSP) would probably be better served by a separate article. Trying to compare and contrast all of the CSP variants in this article simply isn't practical from an article-size perspective. --Allan McInnes (talk) 04:02, 26 October 2006 (UTC)

CSP's influence on Erlang
I have removed the reference to CSP's influence on the development of Erlang from the leader. My reasoning for this is as follows:
 * Occam is quite clearly derived from CSP, since it supports the same communications model and very similar constructs for parallelism and choice. The relationship is generally acknowledged by the occam community. The relationship is also directly acknowledged in the references I have (now) supplied, which includes the occam reference manual.
 * Erlang uses a quite different communications model (asynchronous and named-based) than CSP. There is no mention of CSP, Hoare, or occam in Joe Armstrong's thesis, or in the Erlang reference manual. The book "Concurrent Programming in Erlang" makes a single reference to occam and CSP (among several other languages), mentioning in the introduction that they have "similar concurrency models" (i.e. process-based rather than thread-based). There is no indication that CSP influenced Erlang in any obvious way.

If there are references that demonstrate how CSP influenced the development of Erlang, I'll be happy to add back the mention of Erlang. But until then it seems inappropriate to present Erlang (loosely related to CSP) on the same level as occam (a direct descendant of CSP). --Allan McInnes (talk) 17:59, 21 February 2006 (UTC)


 * Joe Armstrong writes: "Erlang’s syntax derived from Prolog and was heavily influenced by smalltalk, CSP and the functional programming." http://joearms.github.io/2013/05/31/a-week-with-elixir.html --95.113.203.91 (talk) 09:58, 11 June 2013 (UTC)

Example incorrect?
Isn't the first parallel vending machine example incorrect? Surely it deadlocks after performing 'coin,' as Person never performs 'choc,' and is required to do so by the synchronization alphabet. —The preceding unsigned comment was added by 163.1.81.32 (talk) 04:21, 30 December 2006 (UTC).
 * Actually, isn't it just equal to Person? The parallel process can initially perform 'coin' (on both processes) or 'card' (on the right-hand side), and then it always STOPs. —The preceding unsigned comment was added by 163.1.81.32 (talk) 04:30, 30 December 2006 (UTC).


 * I believe the examples are now correct. --Allan McInnes (talk) 22:32, 23 September 2008 (UTC)

yes the book is available for download
The article actually does already tell us:

^ a b Hoare, C. A. R.. Communicating Sequential Processes. Prentice Hall. ISBN 0-13-153289-8. ... the new edition is available for download as a PDF file at the Using CSP website.

I think we should edit the article somehow to make that fact more prominent.

1. I didn't discover that fact until after I had clicked thru 'edit this page' to add that fact.

2. 2007-08-25 Google on Communicating Sequential Processes naturally already emphasises that page over this page.

Unique Fixed Points
I think UFP is a pretty fundamental concept of CSP and it would do well to receive a small section of the wikipedia article? There is a section on it in Understanding Concurrent Systems by Roscoe and his slides for the Concurrency course at the University of Oxford include an example which would be good to include (http://www.cs.ox.ac.uk/ucs/slides/slu7.pdf). Anybody have any thoughts or objections? Owencm (talk)

External links modified
Hello fellow Wikipedians,

I have just modified 4 external links on Communicating sequential processes. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20110719102153/http://www.stups.uni-duesseldorf.de/publications/main.pdf to http://www.stups.uni-duesseldorf.de/publications/main.pdf
 * Added archive https://web.archive.org/web/20110611055744/http://www.comp.nus.edu.sg/~sunj/Publications/cav09.pdf to http://www.comp.nus.edu.sg/~sunj/Publications/cav09.pdf
 * Added archive https://web.archive.org/web/20090108091954/http://www.comp.nus.edu.sg/~sunj/Publications/ISoLA08.pdf to http://www.comp.nus.edu.sg/~sunj/Publications/ISoLA08.pdf
 * Added archive https://web.archive.org/web/20110611055219/http://www.comp.nus.edu.sg/~sunj/Publications/tase09.pdf to http://www.comp.nus.edu.sg/~sunj/Publications/tase09.pdf

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 14:37, 9 December 2017 (UTC)