Modern Imperative Programming Languages Proseminar/Seminar

In this proseminar/seminar we will investigate the modern imperative programming languages C++, Go, Rust and Scala.


Sebastian Hack, Klaas Boesche Johannes Doerfert, Roland Leißa, Simon Moll

General Information

When Friday at 14:00 (sine tempore)
Where Room 401, E1 3

The first meeting will be on April, 28th, 2017.

Modus Operandi

Participants will be divided into four groups, one group for each language. Each group will implement a concurrent SAT solver. Each group will present their work with a focus on the features and restrictions of the chosen programming language.

If you want to take this as a seminar, you will also work through a paper about one of the languages and give a presentation about it.


The registration is closed for now and we already have a waiting list in place. If you want to take this as a seminar, you have to register it in the LSF to get a certificate for the seminar


Please register in our GitLab and email Roland Leißa your GitLab username and desired group name. You will then get access to a GitLab project matching your group's name. You can use this project for coding. Additionally, you will obtain read access to the paper list in our Wiki.


  1. Background reading on CDCL: Conflict-Driven Clause Learning from the Handbook of Satisfiability
  2. Benchmarks in the DIMACS format


Date Speaker Topic Comments
2017-04-28 14:00 s.t. - First Meeting Programming groups will be formed
2017-05-05 14:00 s.t. Fabian Ritter Introduction to CDCL
2017-05-12 14:00 s.t. - Informal meeting Not a mandatory event - just to clarify questions
2017-05-19 14:00 s.t. Pascal Held A promising semantics for relaxed-memory concurrency
2017-06-02 14:00 s.t. Valentin Seimetz Communicating Sequential Processes and its relation to Go
2017-06-09 14:00 s.t. Niklas Metzger Fencing off Go
2017-06-23 14:00 s.t. Julian Rosemann Mathemazing C++ concurrency
2017-06-30 14:00 s.t. Sven Ehses Foundations of Path-Dependent Types
2017-07-07 14:00 s.t. Jannic Warken Actors That Unify Threads and Events
2017-07-14 14:00 s.t. Jesko Dujmovic Session types for Rust
2017-07-21 14:00 s.t. Philip Lukert Short Paper: Rusty Types for Solid Safety

Final Talks

Date Speakers Topics
2017-07-26 9:00-12:00 s.t. tba tba
2017-07-27 9:00-12:00 s.t. tba tba
2017-07-28 9:00-12:00 s.t. tba tba