Submitted: March 2023

Abstract

Concurrent programming at Saarland University is taught centered around the academic programming language pseuCo. pseuCo is a simplified, imperative programming language and was designed to provide a gentle, hands-on experience to concurrent programming.

The web platform pseuCo.com serves as an IDE, allowing students to compile their pseuCo programs to expressions of the CCS process calculus by Milner. Although CCS succeeds at assigning translational semantics to pseuCo programs, students struggled to understand the resulting CCS terms. Based on the semantics from pseuCo to Petri net compilation, a modern, high-level debugger for pseuCo programs was developed, allowing students to explore their programs’ semantics.

High-level debugging tools, however, do not provide any means of understanding the program’s semantics. In this thesis, we develop a toolkit that addresses this issue. We design an interactive Petri net viewer that allows students to visualize and explore the Petri nets resulting from compilation of pseuCo programs. Thus, by providing an interactive visualization of colored Petri nets, we allow students to understand and reason about the formal semantics of their programs.