2

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<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.

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?

Lev Reyzin
  • 11,968
  • 13
  • 63
  • 103
Tim
  • 639
  • 3
  • 15
  • 1
    Why restrict yourself to the so-called real world? You can also find happiness in the ideal world of mathematics. – Bob Feb 18 '21 at 11:35
  • 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, this and this (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 Feb 19 '21 at 06:53
  • @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 Feb 19 '21 at 10:02
  • 1
    @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 Feb 19 '21 at 10:30
  • 1
    @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 Feb 20 '21 at 08:42
  • @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 Feb 20 '21 at 08:44
  • @DamianoMazza Let me reply in several ways! – Martin Berger Feb 20 '21 at 13:54
  • (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 Feb 20 '21 at 13:54
  • (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 Feb 20 '21 at 13:55
  • (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 Feb 20 '21 at 13:55
  • (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 Feb 20 '21 at 13:55
  • 1
    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 Feb 20 '21 at 13:58
  • @MartinBerger I appreciate your inputs! If you want to be more respectful, my username does not contain quotes. – Tim Feb 20 '21 at 14:15
  • 1
    @MartinBerger good point about recursion. However, I am still puzzled by this question being closed. Look again at this. 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 Feb 20 '21 at 17:20

0 Answers0