SEPS Keynote: Taming Concurrent Programming with Domain-Specific Languages
Parallel and concurrent programming is infamous for its difficulty. Many hazards await the concurrent software engineer: data races, deadlocks, livelocks, etc. The programming languages community has proposed a possible remedy against these hazards: domain-specific languages. A domain-specific language (DSL) simplifies expressing safe and efficient program patterns via high-level domain-specific constructs. Moreover, embedding a DSL in a general-purpose programming language enables reusing compilers, tools, libraries, and runtime environments for the development of DSL programs. Scala has been used successfully as a host language for a variety of concurrency DSLs, some of which have been widely used in industry. This talk shows how to design and implement DSLs in Scala to make concurrent programming simpler and more reliable. Language evolution proposals to further improve the embedding of concurrency DSLs are also discussed.
Assistant Professor in the School of Computer Science and Communication at KTH Royal Institute of Technology, Sweden.