Towards Safe Large-Scale Concurrent and Distributed Programming
The requirements of concurrent and distributed applications have changed dramatically over the last decade, with response times that are orders of magnitude shorter and data volumes that are orders of magnitude larger. To meet these requirements, applications are being deployed on cloud-based computing platforms with thousands of multicore processors.
In this talk I will give an overview of my research on programming languages and type systems aiming to address three major challenges: scalable concurrency, static safety, and efficient distribution. Our approach combines three research efforts: (1) An event-driven programming model integrating the actor model and asynchronous futures enables highly-scalable concurrent programming. (2) A type-based approach to isolating concurrent processes ensures race-free concurrency even in the presence of mutable data structures and side effects. Our approach is based on a lightweight type system extension for unique object references. (3) Static metaprogramming in combination with advanced features of Scala's type system can be used to significantly improve the safety and efficiency of distributing both objects and functions.