Please rotate your tablet to be horizontal.

You can dismiss this notice but please note that this experience has not been designed for mobile devices and so will be less than optimal

Back To Schedule

A Pattern Language for Expressing Concurrency

16:45 - 17:45 Wednesday 14th September 2022 MDT Summit 6 & 7 / Online B
Intermediate
Advanced
Concurrency

Concurrency is still largely an unsolved problem. It is said that concurrency appeared in the software world in 1965, when Dijkstra provided a solution to the mutual exclusion problem. It is worth mentioning that this happened before 1968, when we officially started to use the term “Software Engineering”. We embraced structured programming in late 1960s and early 1970s for general code, but never managed to apply structured concurrency on a large scale up to this date. We are still writing our concurrent code in a largely unstructured manner. This is mainly the reason for which concurrency is a large frustration within the C++ community.

In C++, we don’t have so far a model to do structured concurrency. However, this is about to change with senders/receivers proposal. The proposal has high chances to land in the C++26 standard. Meanwhile, there are libraries implementing the proposal, so that people can start using it already. But, between having the proposal available to use and using it efficiently, there is a big gap.

This talk aims at providing a framework for programmers to use the senders/receivers proposal for addressing concurrency. We will define a pattern language for concurrency problems. Moreover, we will propose a visual representation of these patterns, making it easier for programmers to picture and argue about the structure of the concurrency. Through all these, the talk will show that concurrency of a software system can be described and analyzed just like any other architectural concern.

Lucian Radu Teodorescu

Staff EngineerGarmin

Lucian Radu Teodorescu has a PhD in programming languages and is a Staff Engineer at Garmin. He likes challenges; and understanding the essence of things (if there is one) constitutes the biggest challenge of all.