Debugging for Scala Control Flow DSLs
This program is tentative and subject to change.
One strength of Scala is how convenient it is for building Domain-Specific Languages (DSLs). Many Scala libraries involve some kind of DSL, and a popular application of DSLs is to offer non-default forms of control flow to the developer - we call this sort of DSL a control flow DSL. They are commonly used to control concurrency, parsing, to express distributed data transformers, or simply to provide general tail-calling in Scala programs.
The key feature of control flow DSLs, programmatically replacing the relationship between program logic and the JVM callstack, is also the reason behind why debugging such programs is a significant challenge. Common debugging approaches, such as looking at the stacktrace from a program crash, or attaching a debugger, no longer work since the corresponding artifacts do not accurately represent the program’s logical state.
In this talk, we propose a lightweight in-process implementation strategy for the Debug Adapter Protocol, which can bring modern debugging convenience to the land of control flow DSLs. We describe what we learned from prototyping this strategy in our own DSL, and open a broader discussion on evaluating the applicability and usefulness of this technique.
This program is tentative and subject to change.
Mon 13 OctDisplayed time zone: Perth change
13:40 - 15:20 | NoonThe Scala Workshop 2025 at Peony West Chair(s): Oliver Bračevac EPFL, LAMP, Hamza Remmal EPFL, LAMP | ||
13:40 20mTalk | The Quest for Mutable Value Semantics in Scala The Scala Workshop 2025 Dimi Racordon EPFL, LAMP File Attached | ||
14:00 20mTalk | How Functional is Direct-Style? The Scala Workshop 2025 Adam Warski SoftwareMill File Attached | ||
14:20 20mTalk | ScalaF: Functional Refactoring Suggestions for Scala The Scala Workshop 2025 Shiv Kiran Bagathi Indian Institute of Technology Bombay, Shrikha Mahanty Indian Institute of Technology Mandi, Dasari Gnana Heemmanshuu Indian Institute of Technology Bombay, Manas Thakur IIT Bombay File Attached | ||
14:40 20mTalk | Debugging for Scala Control Flow DSLs The Scala Workshop 2025 | ||
15:00 20mTalk | Migrating Large-scale Scala Projects to Explicit-nulls with the Help from LLMs The Scala Workshop 2025 Yaoyu Zhao EPFL, LAMP File Attached |