Function Passing: A Model for Typed, Distributed Functional Programming
The most successful systems for ``big data'' processing have all adopted
functional APIs. We present a new programming model we call {\em function
passing} designed to provide a more principled substrate on which to build
data-centric distributed systems. A key idea is to build up a persistent
functional data structure representing transformations on distributed
immutable data by passing well-typed serializable functions over the wire and
applying them to this distributed data. Thus, the function passing model can
be thought of as a persistent functional data structure that is {\em
distributed}, where transformations to data are stored in its nodes rather
than the distributed data itself. The model simplifies failure recovery by
design–in the event of a failure, data is recovered by replaying function
applications atop immutable data loaded from stable storage. Deferred
evaluation is also central to our model; by incorporating deferred evaluation
into our design only at the point of initiating network communication, the
function passing model remains easy to reason about while remaining efficient
in time and memory. We formalize our programming model using
small-step operational semantics, and we provide an open-source
implementation of our model in and for the Scala programming language, along
with a case study of several example frameworks and end-user programs written
atop of this model.
Wed 2 NovDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:40 - 17:20 | |||
15:40 25mTalk | Bloqqi: Modular Feature-Based Block Diagram Programming Onward! Papers DOI Pre-print | ||
16:05 25mTalk | Building White-Box Abstractions by Program Refinement Onward! Papers DOI Pre-print | ||
16:30 25mTalk | Function Passing: A Model for Typed, Distributed Functional Programming Onward! Papers Heather Miller Ecole Polytechnique Federale de Lausanne, Philipp Haller KTH Royal Institute of Technology, Normen Müller , Jocelyn Boullier EPFL, Jorge Vicente Cantero EPFL DOI | ||
16:55 25mTalk | Extracting Code from Programming Tutorial Videos Onward! Papers DOI |