A Design Space Exploration of Async/Await
Summary
An in-depth look at how async/await semantics can diverge across languages, using a small example and a formal semantics model to explain the reasons behind differing outputs. It introduces design dimensions such as Start of Life, End of Life, and Eagerness, and highlights implications for developers when writing cross-language asynchronous code. The article promotes reading the authors' paper for a rigorous treatment.