<p>In Winskel's The formal semantics of programming languages 1993,   Ch14 Nondeterminism and parallelism  says</p>
<blockquote>
<p>This  chapter  is  an  introduction  to  nondeterministic  and
parallel  (or  concurrent)  pr&lt;r  grams and systems,  their semantics
and logic.  Starting with communication via shared  variables it leads
through Dijkstra's language of guarded commands to a language closely
related to Occam and Hoare's CSP, and thence to Milner's CCS. In the
latter languages  communication  is  solely  through the synchronised
exchange of values.  A  specification  language consisting of a simple
modal logic with recursion is motivated.  An algorithm is  derived
for  checking whether or not  a  finite-state  process satisfies  a
specification.  This  begins a study of tools for the verification of
parallel systems of the kind supported by the  Edinburgh-Sussex
Concurrency Workbench and the Aalborg TAV  system.  The chapter
concludes with an indication of other approaches and some current
research issues in the  semantics and logic of parallel processes.</p>
</blockquote>
<p>Are CCS and CSP are still worth studying? Are they useful in real world, or can they be?   (I saw a course using that book as one of its textbooks talked about pi calculus instead of CCS and CSP.) If not, what should one study instead?</p>

CC BY-SA 4.0
2021-02-18T11:35:02.727Z
Why restrict yourself to the so-called real world? You can also find happiness in the ideal world of mathematics.
Bob
CC BY-SA 4.0
2021-02-19T06:53:05.647Z
I don't think this should be closed.  There are plenty of similar "opinion-based" questions on TCS SE that have been kept open and have received good answers: for example, [this](https://cstheory.stackexchange.com/q/2252/20716), [this](https://cstheory.stackexchange.com/q/8539/20716) and [this](https://cstheory.stackexchange.com/q/14811/20716) (the latter is the 5th most upvoted question on this site!).  In this specific case, CCS is definitely still worth studying, and this is *not* opinion-based: it's enough to look at the current literature on process calculi to know that.
Damiano Mazza
CC BY-SA 4.0
2021-02-19T10:02:11.820Z
@DamianoMazza Naturally, anything by Milner is worth reading, but is CCS, as originally conceived with "relabelling" as a syntactic operator, rather than e.g. $\nu$, still worth studying by a beginner (which "Tim" seems to be)? (Aside, I think it's the way the original question was asked (quoting a wall of text), rather than the content that makes this question difficult to answer well, unlike the questions you link to .)
Martin Berger
CC BY-SA 4.0
2021-02-19T10:30:47.853Z
@DamianoMazza Thanks.  I see a lot of opinions conflated with what is answerable and what is not. If there is something which I can say to some people here, then it is: be open minded.
Tim
CC BY-SA 4.0
2021-02-20T08:42:15.617Z
@MartinBerger The question was not "Is the original paper by Milner worth reading", but whether CCS, perhaps with a more modern syntax (e.g. "$\pi$-calculus without name passing"), is still an interesting model of concurrency.  The answer is yes: non-name-passing calculi of various nature (reversible, probabilistic, multiparty, you name it) are investigated in contemporary research as test-beds for more complex models, and these are *all* based on CCS (there's at least one CONCUR 2019 paper explicitly on CCS, I don't have time to dig to find more).
Damiano Mazza
CC BY-SA 4.0
2021-02-20T08:44:38.623Z
@MartinBerger And if the problem is how the question is formulated, one could just ask for a reformulation, or for more context, rather than close it right away...
Damiano Mazza
CC BY-SA 4.0
2021-02-20T13:54:42.343Z
@DamianoMazza Let me reply in several ways!
Martin Berger
CC BY-SA 4.0
2021-02-20T13:54:57.830Z
(1/4) Yes very true, CCS is still worth learning for a beginner, because
$\pi$-calculus restricted to passing of values not containing names is a
beautiful structure!
Martin Berger
CC BY-SA 4.0
2021-02-20T13:55:08.723Z
(2/4) Yes, CCS is still worth learning, because $\pi$-calculus restricted
to passing of values not containing names is a beautiful structure!
However, it is difficult for a beginner, since googling CCS will not
lead CCS's modern presentation as a subsystem of pi-calculus.
Martin Berger
CC BY-SA 4.0
2021-02-20T13:55:29.460Z
(3/4) Hmmm, are you sure: what is the exact correspondence between CCS
(as in Milner's *Communication and Concurrency*, say) and the specific
sub-calculus of (which?) pi-calculus, has anyone worked this out
formally and in detail accessible to a beginner? I imagine that this
can be done, but needs quite a bit of mathematical machinery. In my
experience, beginners get confused by the relationship between
pi-calculus with recursion, vs unrestricted replication vs
input-guarded replication.  Not to mention the relationship between
monadic and polyadic calculi, etc!
Martin Berger
CC BY-SA 4.0
2021-02-20T13:55:39.543Z
(4/4) No! The amount of background knowledge required to access
existing presentations of CCS-like systems, including it's pi-calculus
rendering, are so forbidding and so dispersed through the literature,
that it is inaccessible to a beginner without suitable mentoring.
Martin Berger
CC BY-SA 4.0
2021-02-20T13:58:06.980Z
Finally, going meta, I agree this could be an extremely interesting question and I did not request for it to be closed, but, by empirical induction on history, I doubt that "Tim" is in a position to do this.
Martin Berger
CC BY-SA 4.0
2021-02-20T14:15:40.933Z
@MartinBerger I appreciate your inputs! If you want to be more respectful, my username does not contain quotes.
Tim
CC BY-SA 4.0
2021-02-20T17:20:00.723Z
@MartinBerger good point about recursion.  However, I am still puzzled by this question being closed.  Look again at [this](https://cstheory.stackexchange.com/q/2252/20716).  Granted, that question is much more carefully formulated than this one, but it is similar in spirit: is the Chomsky hierarchy outdated?  Five anwers were given: 3 "yes", 1 "no", and 1 "it depends".  Just like the 4 examples of answers you gave!  The more I see it, the more I think this "opinion-based" business on SE is bullcrap...  Sometimes you see a good question only after it's gotten good, maybe contradictory answers!
Damiano Mazza
<pl.programming-languages><concurrency>
Are CCS and CSP still worth studying?
Tim
# Are CCS and CSP still worth studying?

(Asked by: username_0 on 2021-02-18)

In Winskel's The formal semantics of programming languages 1993, Ch14 Nondeterminism and parallelism says

> This chapter is an introduction to nondeterministic and
> parallel (or concurrent) pr

Are CCS and CSP are still worth studying? Are they useful in real world, or can they be? (I saw a course using that book as one of its textbooks talked about pi calculus instead of CCS and CSP.) If not, what should one study instead?

**Tags:** pl.programming-languages, concurrency
> **Comments:**
> **username_1**: Why restrict yourself to the so-called real world? You can also find happiness in the ideal world of mathematics.  
> **username_2**: I don't think this should be closed.  There are plenty of similar "opinion-based" questions on TCS SE that have been kept open and have received good answers: for example, [this](https://cstheory.stackexchange.com/q/2252/20716), [this](https://cstheory.stackexchange.com/q/8539/20716) and [this](https://cstheory.stackexchange.com/q/14811/20716) (the latter is the 5th most upvoted question on this site!).  In this specific case, CCS is definitely still worth studying, and this is *not* opinion-based: it's enough to look at the current literature on process calculi to know that.  
> **username_3**: @DamianoMazza Naturally, anything by Milner is worth reading, but is CCS, as originally conceived with "relabelling" as a syntactic operator, rather than e.g. $\nu$, still worth studying by a beginner (which "Tim" seems to be)? (Aside, I think it's the way the original question was asked (quoting a wall of text), rather than the content that makes this question difficult to answer well, unlike the questions you link to .)  
> **username_0**: @DamianoMazza Thanks.  I see a lot of opinions conflated with what is answerable and what is not. If there is something which I can say to some people here, then it is: be open minded.  
> **username_2**: @MartinBerger The question was not "Is the original paper by Milner worth reading", but whether CCS, perhaps with a more modern syntax (e.g. "$\pi$-calculus without name passing"), is still an interesting model of concurrency.  The answer is yes: non-name-passing calculi of various nature (reversible, probabilistic, multiparty, you name it) are investigated in contemporary research as test-beds for more complex models, and these are *all* based on CCS (there's at least one CONCUR 2019 paper explicitly on CCS, I don't have time to dig to find more).  
> **username_2**: @MartinBerger And if the problem is how the question is formulated, one could just ask for a reformulation, or for more context, rather than close it right away...  
> **username_3**: @DamianoMazza Let me reply in several ways!  
> **username_3**: (1/4) Yes very true, CCS is still worth learning for a beginner, because $\pi$-calculus restricted to passing of values not containing names is a beautiful structure!  
> **username_3**: (2/4) Yes, CCS is still worth learning, because $\pi$-calculus restricted to passing of values not containing names is a beautiful structure! However, it is difficult for a beginner, since googling CCS will not lead CCS's modern presentation as a subsystem of pi-calculus.  
> **username_3**: (3/4) Hmmm, are you sure: what is the exact correspondence between CCS (as in Milner's *Communication and Concurrency*, say) and the specific sub-calculus of (which?) pi-calculus, has anyone worked this out formally and in detail accessible to a beginner? I imagine that this can be done, but needs quite a bit of mathematical machinery. In my experience, beginners get confused by the relationship between pi-calculus with recursion, vs unrestricted replication vs input-guarded replication.  Not to mention the relationship between monadic and polyadic calculi, etc!  
> **username_3**: (4/4) No! The amount of background knowledge required to access existing presentations of CCS-like systems, including it's pi-calculus rendering, are so forbidding and so dispersed through the literature, that it is inaccessible to a beginner without suitable mentoring.  
> **username_3**: Finally, going meta, I agree this could be an extremely interesting question and I did not request for it to be closed, but, by empirical induction on history, I doubt that "Tim" is in a position to do this.  
> **username_0**: @MartinBerger I appreciate your inputs! If you want to be more respectful, my username does not contain quotes.  
> **username_2**: @MartinBerger good point about recursion.  However, I am still puzzled by this question being closed.  Look again at [this](https://cstheory.stackexchange.com/q/2252/20716).  Granted, that question is much more carefully formulated than this one, but it is similar in spirit: is the Chomsky hierarchy outdated?  Five anwers were given: 3 "yes", 1 "no", and 1 "it depends".  Just like the 4 examples of answers you gave!  The more I see it, the more I think this "opinion-based" business on SE is bullcrap...  Sometimes you see a good question only after it's gotten good, maybe contradictory answers!  

---

## 0 answers

