Submitted: September 2024
Abstract
PseuCo is a language specifically designed for teaching concurrent programming in the course “Concurrent Programming” at Saarland University. It has a very simplified Java-like syntax and it allows running multiple threads of execution concurrently. This introduces the possibility of data races, which students are intended to prevent using the provided synchronization primitives.
A different approach has been demonstrated by the programming language Rust: designed to be performant and memory safe, Rust guarantees memory safety – including freedom of data races – using its type system and static analyses. However, Rust cannot be used as easily for teaching as pseuCo because it has a lot more complexity in general that is not related to concurrent programming.
In this thesis, we design the language “Rusty pseuCo”, a dialect of pseuCo with a Rust-like type system that prevents data races. Similar to pseuCo, we focus on designing it to be suitable for teaching, which we do by keeping the changes to the language as small as possible.