PLDI 2024
Mon 24 - Fri 28 June 2024 Copenhagen, Denmark
Mon 24 Jun 2024 13:40 - 15:20 at Directors - Kotlin Coroutines
Mon 24 Jun 2024 16:00 - 17:40 at Directors - Kotlin Coroutines

General Information

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.

Details

Part 1

1.1 Introduction to Kotlin coroutines

1.2. Coroutines Scheduler

1.3. Synchronization and Communication primitives in Kotlin coroutines

Part 2

2.1. Lincheck: a framework for testing concurrent data structures on JVM (please bring your laptops!)

2.2. Open discussion

Mon 24 Jun

Displayed time zone: Windhoek change

13:40 - 15:20
Kotlin CoroutinesTutorials at Directors
13:40
1h40m
Tutorial
Concurrent Algorithms in Kotlin Coroutines
Tutorials
Nikita Koval JetBrains
16:00 - 17:40
Kotlin CoroutinesTutorials at Directors
16:00
1h40m
Tutorial
Concurrent Algorithms in Kotlin Coroutines
Tutorials
Nikita Koval JetBrains