Concurrent Programming from pseuCo to Petri

  • Felix FreibergerEmail author
  • Holger Hermanns
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11522)


The growing importance of concurrent programming has made practical concurrent software development become a cornerstone of many computer science curricula. Since a few years, a sound bridge from concurrency theory to concurrence practice is available in the form of pseuCo, a light-weight programming language featuring both message passing and shared memory concurrency. That language is at the core of an award-winning lecture at Saarland Informatics Campus. This paper presents a novel two-step semantic mapping from pseuCo programs to colored Petri nets, developed for the sake of further strengthening the educational concept behind pseuCo. The approach is fully integrated in Open image in new window , our open-source teaching tool for pseuCo, empowering students to interact with the Petri-net-based semantics of pseuCo. In addition, we present a source-level exploration tool for pseuCo, also based on this semantics, that gives users an IDE-like debugging experience while enabling full control over the nondeterminism inherent in their programs. The debugger is also part of Open image in new window , allowing students to access it without any set-up.


Concurrency Education Colored Petri nets Programming Semantics 



We would like to thank Bernd Finkbeiner for supervising an earlier phase of this project. Michaela Klauck provided helpful feedback during development of the debugging feature of Open image in new window . This work was partially supported by the ERC Advanced Investigators Grant 695614 (POWVER) and by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – project number 389792660 – TRR 248 (see


  1. 1.
    Computer Science Curricula 2013. ACM Press and IEEE Computer Society Press (2013). Scholar
  2. 2.
    Best, E., Fraczak, W., Hopkins, R.P., Klaudel, H., Pelz, E.: M-nets: an algebra of high-level Petri nets, with an application to the semantics of concurrent programming languages. Acta Inf. 35(10), 813–857 (1998). Scholar
  3. 3.
    Best, E., Hopkins, R.P.: \(B(PN)^{2}\) — a basic Petri net programming notation. In: Bode, A., Reeve, M., Wolf, G. (eds.) PARLE 1993. LNCS, vol. 694, pp. 379–390. Springer, Heidelberg (1993). Scholar
  4. 4.
    Biewer, S., Freiberger, F., Held, P.L., Hermanns, H.: Teaching academic concurrency to amazing students. In: Aceto, L., Bacci, G., Bacci, G., Ingólfsdóttir, A., Legay, A., Mardare, R. (eds.) Models, Algorithms, Logics and Tools. LNCS, vol. 10460, pp. 170–195. Springer, Cham (2017). Scholar
  5. 5.
    Dijkstra, E.W.: Letters to the editor: go to statement considered harmful. Commun. ACM 11(3), 147–148 (1968). Scholar
  6. 6.
    ECMA International: ECMAScript\(\copyright \) 2015 Language Specification, 6th edn., June 2015. Standard ECMA-262Google Scholar
  7. 7.
    Eisentraut, C., Hermanns, H.: Teaching concurrency concepts to freshmen. Trans. Petri Nets Other Models Concurr. 1, 35–53 (2008). Scholar
  8. 8.
    Gansner, E.R., Koutsofios, E., North, S.C., Vo, K.: A technique for drawing directed graphs. IEEE Trans. Softw. Eng. 19(3), 214–230 (1993). Scholar
  9. 9.
    Garavel, H.: Nested-unit Petri nets. J. Log. Algebr. Methods Program. 104, 60–85 (2019)., Scholar
  10. 10.
    The Go Programming Language Specification.
  11. 11.
    Holzmann, G.: The Spin Model Checker – Primer and Reference Manual, 1st edn. Addison-Wesley Professional, Boston (2003)Google Scholar
  12. 12.
    Jensen, K.: Coloured Petri nets and the invariant-method. Theor. Comput. Sci. 14, 317–336 (1981). Scholar
  13. 13.
    Jensen, K.: Coloured Petri Nets - Basic Concepts, Analysis Methods and Practical Use - Volume 1. EATCS Monographs on Theoretical Computer Science. Springer, Heidelberg (1992). Scholar
  14. 14.
    Kristensen, L.M., Christensen, S.: Implementing coloured Petri nets using a functional programming language. High. Order Symb. Comput. 17(3), 207–243 (2004). Scholar
  15. 15.
    Meyer, R., Strazny, T.: Petruchio: from dynamic networks to nets. In: Touili, T., Cook, B., Jackson, P. (eds.) CAV 2010. LNCS, vol. 6174, pp. 175–179. Springer, Heidelberg (2010). Scholar
  16. 16.
    Milner, R. (ed.): A Calculus of Communicating Systems. LNCS, vol. 92. Springer, Heidelberg (1980). Scholar
  17. 17.
    Milner, R.: Communicating and Mobile Systems - The Pi-calculus. Cambridge University Press, New York (1999)zbMATHGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

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

Personalised recommendations