World Congress 2023 Sep 27, 2023

Coroutine explained yet again 60 years later

Mikhail Maslo

Why is a 60-year-old compiler concept driving modern concurrency? Discover how stackless coroutines transform messy callbacks into clean, highly scalable async flows.

Pause
Mute Enter Fullscreen
#1 about 2 min

Introduction to coroutines and their historical origins

Melvin Conway's initial work on co-compilers demonstrates how historical computing solutions established foundations for modern coroutines.

#2 about 3 min

Execution flow and suspending states in coroutines

Comparing regular functions to suspendable routines reveals how saving internal states enables advanced execution flows.

#3 about 5 min

Under the hood of coroutines with state machines

Translating complex coroutine execution into underlying compiler state machines provides a reliable mechanism for managing resumption.

#4 about 5 min

Differences between stackful and stackless coroutine classifications

Comparing stack reliance shows that stackful routines permit deep suspensions while stackless models minimize memory overhead.

#5 about 6 min

Symmetric versus asymmetric control transfers in coroutines

Analyzing yield behaviors illustrates how asymmetric models simplify caller relationships compared to arbitrary symmetric control transfers.

#6 about 2 min

Performance and memory tradeoffs among coroutine classifications

Evaluating varied coroutine structures guides developers in balancing execution speed with strict memory footprint constraints.

#7 about 6 min

Positioning coroutines within hardware and software thread hierarchies

Positioning routines against kernel resources clarifies how cooperative user-level threads avoid intensive operating system scheduling overhead.

#8 about 5 min

Implementing cooperative multitasking in modern programming languages

Applying asynchronous markers to heavy concurrency workloads replaces nested callback structures with linear readable code sequences.

#9 about 2 min

Audience questions on language support for async programming

Addressing language disparities emphasizes how coroutine support fundamentally accelerates modern asynchronous development workflows.

Matching moments

3:26 min

Simplifying asynchronous concurrency patterns safely with coroutines logic

Urs Peter · WWC 2022

2:09 min

Compiler state machines and asynchronous concurrent task execution

Grzegorz Lang · WWC 2022

3:29 min

Handling asynchronous operations with native Kotlin coroutines

Georg Dresler Georg Dresler · WWC Europe 2026

4:35 min

Orchestrating concurrent routines with channels and goroutines

Frank Müller · WWC 2021

2:28 min

Adding strong type checking and generic programming concepts

Bjarne Stroustrup · WWC 2022

1:11 min

Origins of Project Loom and lightweight threading semantics

Ivan Šarić Ivan Šarić · Europe 2026 Virtual

Upcoming sessions on this topic

Open session

World Congress 2026 North America

When Humans Stop Writing Code: Rethinking Languages, Compilers, and Responsibility

Simon Auer

Organizer of flutter vienna meetup and CEO of marqably

Simon Auer
Open session

World Congress 2026 North America

Offloading IoT State: Solving the Memory Crisis on Legacy Hardware

Pravin Nagare

Senior Software Engineer, Roku

Pravin Nagare
Open session

World Congress 2026 North America

Honey, look! I vibe-coded an OS!

Ian Smith

CTO, LYOS

Ian Smith
Open session

World Congress 2026 North America

Context Engineering Kung Fu

Carl Lapierre

Tech Lead and AI Engineer at Osedea

Carl Lapierre
Open session

World Congress 2026 North America

Understanding LLM Architectures: Inside the Design of Modern Models

Jofia Jose Prakash

Enterprise AI Architect at American Chemical Society

Jofia Jose Prakash
Open session

World Congress 2026 North America

Full Stack with Flutter - are we there yet?

Nemanja Stošić

Senior Flutter Developer

Nemanja Stošić