Language Abstractions for Distributed Software Systems
Date: Thu, June 06, 2019
Room: 0.E220 Social Data Lab
We first introduce our recent work on reactive programming for distributed event-based applications. Supporting change propagation in the language runtime, reactive programming improves software design and relieves the developer from managing updates explicitly. Next, we introduce ScalaLoci, a distributed programming language with a tierless programming model based on placement types that enables reasoning about placement of data and computation and about distributed data flows. ScalaLoci supports the specification of the software architecture in a way that is integrated with the type system, ensuring that programs do not violate the architectural specification. Finally, ScalaLoci enables developers to abstract over low-level communication details and data conversions which are automatically generated by the compiler.