Concurrent Algorithms in Kotlin Coroutines TutorialCAKC 2024
Most mainstream programming languages now offer the async-await mechanism or coroutines abstraction for asynchronous programming. Kotlin stands out with coroutines that occupy a unique spot in the overall language design, using a single suspend modifier at the language level. Kotlin Coroutines are massively adopted by the Kotlin user base, being a recommended solution to concurrency in Android programming and offering concise syntax for reactive server-side applications.
In this tutorial, we will delve deep into Kotlin Coroutines. Starting with a high-level discussion of what coroutines are and how they work in Kotlin, we continue with talks dedicated to particular parts that require non-trivial concurrent algorithms: coroutines scheduler, channels, and synchronization primitives. We have recently redesigned most of these parts; much of the work was published at PPoPP and PLDI conferences last year. Finally, we will discuss the Lincheck framework designed to test all these algorithms for correctness.
During this tutorial, we would like to show the problems we have faced when improving Kotlin Coroutines, present all the work in one place, and gather people who develop concurrent algorithms and programming languages.
Talks
Wed 18 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:00 - 10:30 | |||
10:30 - 11:50 | |||
10:30 15mTalk | Coroutines Scheduler CAKC Nikita Koval JetBrains | ||
10:45 40mTalk | Fast and Scalable Communication Channels CAKC Nikita Koval JetBrains Link to publication | ||
11:25 25mTalk | CQS: A Formally-Verified Framework for Fair and Abortable Synchronization Primitives CAKC Nikita Koval JetBrains Link to publication |
12:00 - 13:30 | |||
12:00 - 13:30 | Diversity and Inclusion LunchSocial Events at EI 1 Petritsch https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-diversity | ||
15:00 - 15:30 | |||
15:30 - 16:50 | |||
15:30 80mTalk | Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM CAKC Nikita Koval JetBrains |
17:45 - 23:00 | BanquetSocial Events at Fuhrgassl-Huber We will take buses from the conference venue to go to the banquet. | ||