Teaching Academic Concurrency to Amazing Students

Part of the Lecture Notes in Computer Science book series (LNCS, volume 10460)


Milner’s CCS is a cornerstone of concurrency theory. This paper presents CCS as a cornerstone of concurrency practice. CCS is the semantic footing of pseuCo, an academic programming language designed to teach concurrent programming. The language features a heavily simplified Java-like look and feel. It supports shared-memory as well as message-passing concurrent programming primitives, the latter being inspired by the Go programming language. The behaviour of pseuCo programs is described by a formal translational semantics mapping on value-passing CCS and made executable using compilation to Java. pseuCo is not only a language but an interactive experience: Open image in new window provides access to a web application designed for first hands-on experiences with CCS and with concurrent programming patterns, supported by a rich and growing toolset. It provides an environment for students to experiment with and understand the mechanics of the fundamental building blocks of concurrency theory and concurrent programming based on a complete model of the program behaviour. Altogether this implements the TACAS (Teaching Academic Concurrency to Amazing Students) vision.



This work is supported by the ERC Advanced Investigators Grant 695614 (POWVER) and by the CDZ project CAP (GZ 1023).


  1. 1.
    Andersen, J.R., Andersen, N., Enevoldsen, S., Hansen, M.M., Larsen, K.G., Olesen, S.R., Srba, J., Wortmann, J.K.: CAAL: concurrency workbench, aalborg edition. In: Leucker, M., Rueda, C., Valencia, F.D. (eds.) ICTAC 2015. LNCS, vol. 9399, pp. 573–582. Springer, Cham (2015). doi: 10.1007/978-3-319-25150-9_33 CrossRefGoogle Scholar
  2. 2.
    Bolognesi, T., Brinksma, E.: Introduction to the ISO specification language LOTOS. Comput. Netw. 14, 25–59 (1987)Google Scholar
  3. 3.
    Boudol, G., Roy, V., de Simone, R., Vergamini, D.: Process calculi, from theory to practice: verification tools. In: Sifakis [25], pp. 1–10Google Scholar
  4. 4.
    CAV award (2013).
  5. 5.
    Cleaveland, R., Madelaine, E., Sims, S.: A front-end generator for verification tools. In: Brinksma, E., Cleaveland, W.R., Larsen, K.G., Margaria, T., Steffen, B. (eds.) TACAS 1995. LNCS, vol. 1019, pp. 153–173. Springer, Heidelberg (1995). doi: 10.1007/3-540-60630-0_8 CrossRefGoogle Scholar
  6. 6.
    Cleaveland, R., Parrow, J., Steffen, B.: The concurrency workbench. In: Sifakis [25], pp. 24–37Google Scholar
  7. 7.
    Cleaveland, R., Parrow, J., Steffen, B.: The concurrency workbench: a semantics-based tool for the verification of concurrent systems. ACM Trans. Program. Lang. Syst. 15(1), 36–72 (1993)CrossRefGoogle Scholar
  8. 8.
    Cleaveland, R., Sims, S.: The NCSU concurrency workbench. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 394–397. Springer, Heidelberg (1996). doi: 10.1007/3-540-61474-5_87 CrossRefGoogle Scholar
  9. 9.
    Dijkstra, E.W.: Over seinpalen. Circulated privately, n.dGoogle Scholar
  10. 10.
    Garavel, H.: Compilation et vérification de programmes LOTOS. Ph.D. thesis, Joseph Fourier University, Grenoble, France (1989)Google Scholar
  11. 11.
    The Go programming language specification.
  12. 12.
    Hansen, P.B.: Shared classes. In: Operating System Principles. Prentice-Hall Series in Automatic Computation, pp. 226–232. Prentice-Hall (1973)Google Scholar
  13. 13.
    Hansen, P.B.: Monitors and concurrent pascal: a personal history. In: Lee, J.A.N., Sammet, J.E. (eds.) History of Programming Languages Conference (HOPL-II), Preprints, Cambridge, Massachusetts, USA, 20–23 April 1993, pp. 1–35. ACM (1993)Google Scholar
  14. 14.
    Hoare, C.A.R.: Monitors: an operating system structuring concept. Commun. ACM 17(10), 549–557 (1974)CrossRefzbMATHGoogle Scholar
  15. 15.
    Holzmann, G.: The Spin Model Checker - Primer and Reference Manual, 1st edn. Addison-Wesley Professional, Boston (2003)Google Scholar
  16. 16.
    ISO. Information processing systems - Open Systems Interconnection - LOTOS - a formal description technique based on the temporal ordering of observational behaviour. ISO ISO 8807:1989, International Organization for Standardization, Geneva, Switzerland (1989)Google Scholar
  17. 17.
    Larsen, K.: Context-dependent bisimulation between processes. Ph.D. thesis, University of Edinburgh, Mayfield Road, Edinburgh, Scotland (1986)Google Scholar
  18. 18.
    Larsen, K.G., Pettersson, P., Yi, W.: UPPAAL in a nutshell. STTT 1(1–2), 134–152 (1997)CrossRefzbMATHGoogle Scholar
  19. 19.
    Aceto, L., Ingólfsdóttir, A., Larsen, K.G., Srba, J.: Reactive Systems: Modelling, Specification and Verification. Cambridge University Press, Cambridge (2007)CrossRefzbMATHGoogle Scholar
  20. 20.
    Magee, J., Kramer, J.: Concurrency - State Models and Java Programs. Wiley, Hoboken (1999)zbMATHGoogle Scholar
  21. 21.
    Milner, R. (ed.): A Calculus of Communicating Systems. LNCS, vol. 92. Springer, Heidelberg (1980)zbMATHGoogle Scholar
  22. 22.
    Milner, R.: Communication and Concurrency. PHI Series in Computer Science. Prentice Hall, Upper Saddle River (1989)zbMATHGoogle Scholar
  23. 23.
    Milner, R.: Communicating and Mobile Systems - The Pi-calculus. Cambridge University Press, Cambridge (1999)zbMATHGoogle Scholar
  24. 24.
    Roscoe, A.W.: Modelling and verifying key-exchange protocols using CSP and FDR. In: The Eighth IEEE Computer Security Foundations Workshop (CSFW 1995), 13–15 March 1995, Kenmare, County Kerry, Ireland, pp. 98–107. IEEE Computer Society (1995)Google Scholar
  25. 25.
    Sifakis, J. (ed.): CAV 1989. LNCS, vol. 407. Springer, Heidelberg (1990)zbMATHGoogle Scholar
  26. 26.
    Soriano, A.: Prototype de venus: un outil d’aide á la verification de systemes communicantes. In: Cori, R., Wirsing, M. (eds.) STACS 1988. LNCS, vol. 294, pp. 401–402. Springer, Heidelberg (1988). doi: 10.1007/BFb0035867 CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.Saarland UniversitySaarbrückenGermany
  2. 2.Saarbrücken Graduate School of Computer ScienceSaarbrückenGermany

Personalised recommendations