Modern Imperative Programming Languages Proseminar/Seminar

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

People

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.

Registration

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

Coding

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.

Material

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

Schedule

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 Mathematizing 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 08:30-09:00 s.t. Hendrik Meerkamp Slices and Objects in Go
2017-07-26 09:00-09:30 s.t. Valentin Seimetz Communicating Sequential Processes and its Relation to Go
2017-07-26 09:30-10:00 s.t. Niklas Metzger Fencing off Go
2017-07-26 10:00-10:30 s.t. buffer/break --
2017-07-26 10:30-11:00 s.t. Philip Lukert Rusty Types for Solid Safety
2017-07-26 11:00-11:30 s.t. Sanny Schmitt Rust - Introduction & Memory Safety
2017-07-26 11:30-12:00 s.t. Christian Schulz Objektorientierte Ansätze in Rust
2017-07-27 08:30-09:00 s.t. Sven Ehses Foundations of Path-Dependent Types
2017-07-27 09:00-09:30 s.t. Jannic Warken Actors That Unify Threads and Events
2017-07-27 09:30-10:00 s.t. Kallistos Weis Pattern Matching in Scala
2017-07-27 10:00-11:00 s.t. break --
2017-07-27 11:00-11:30 s.t. Jesko Dujmovic Session Types for Rust
2017-07-27 11:30-12:00 s.t. Lukas Schäfer Rust's functional Side
2017-07-27 12:00-12:30 s.t. Lukas Schwitzgebel Fearless Concurrency with Rust
2017-07-28 08:30-09:00 s.t. Jan Baumeister Algorithms and Thread Support Library in C++
2017-07-28 09:00-09:30 s.t. Timo Gros Innovations in C++17
2017-07-28 09:30-10:00 s.t. Pascal Held A promising semantics for relaxed-memory concurrency
2017-07-28 10:00-10:30 s.t. buffer/break --
2017-07-28 10:30-11:00 s.t. Julian Rosemann Mathematizing C++ Concurrency
2017-07-28 11:00-11:30 s.t. Jannis Roth Friends, Smart Pointers and OpenMP in C++