Concurrent Programming from pseuCo to Petri

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.

[1]  Sally Fincher,et al.  Computer Science Curricula 2013 , 2013 .

[2]  Hubert Garavel,et al.  Nested-unit Petri nets , 2019, J. Log. Algebraic Methods Program..

[3]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[4]  Lars Michael Kristensen,et al.  Implementing Coloured Petri Nets Using a Functional Programming Language , 2004, High. Order Symb. Comput..

[5]  Roland Meyer,et al.  Petruchio: From Dynamic Networks to Nets , 2010, CAV.

[6]  Edsger W. Dijkstra,et al.  Letters to the editor: go to statement considered harmful , 1968, CACM.

[7]  Hanna Klaudel,et al.  M-nets: An algebra of high-level Petri nets, with an application to the semantics of concurrent programming languages , 1998, Acta Informatica.

[8]  Emden R. Gansner,et al.  A Technique for Drawing Directed Graphs , 1993, IEEE Trans. Software Eng..

[9]  Kurt Jensen,et al.  Coloured Petri nets (2nd ed.): basic concepts, analysis methods and practical use: volume 1 , 1996 .

[10]  Kurt Jensen,et al.  Coloured Petri Nets and the Invariant-Method , 1981, Theor. Comput. Sci..

[11]  Holger Hermanns,et al.  Teaching Academic Concurrency to Amazing Students , 2017, Models, Algorithms, Logics and Tools.

[12]  Richard P. Hopkins,et al.  B(PN)2 - a Basic Petri Net Programming Notation , 1993, PARLE.

[13]  Holger Hermanns,et al.  Teaching Concurrency Concepts to Freshmen , 2008, Trans. Petri Nets Other Model. Concurr..

[14]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.