000205822 001__ 205822
000205822 005__ 20190416220321.0
000205822 0247_ $$2doi$$a10.1145/2986012.2986014
000205822 020__ $$a978-1-4503-4076-2
000205822 02470 $$2ISI$$a000387827200007
000205822 037__ $$aCONF
000205822 245__ $$aFunction Passing: A Model for Typed, Distributed Functional Programming
000205822 269__ $$a2016
000205822 260__ $$bAssoc Computing Machinery$$c2016$$aNew York
000205822 300__ $$a16
000205822 336__ $$aConference Papers
000205822 520__ $$aThe most successful systems for “big data” processing have all adopted functional APIs. We present a new programming model we call 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 distributed, where transformations to data are stored in its nodes rather than the distributed data itself. The model simplifies failure recovery by design–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 in the form of a small-step operational semantics which includes a semantics of functional fault recovery, 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.
000205822 6531_ $$aFunctional programming
000205822 6531_ $$adistributed programming
000205822 6531_ $$afunctions
000205822 6531_ $$aclosures
000205822 6531_ $$aserialization
000205822 6531_ $$aconcurrency
000205822 6531_ $$atypes
000205822 6531_ $$aScala
000205822 700__ $$0242185$$g191683$$aMiller, Heather
000205822 700__ $$0240993$$g172057$$aHaller, Philipp
000205822 700__ $$aMüller, Normen
000205822 700__ $$aBoullier, Jocelyn$$g205541$$0(EPFLAUTH)205541
000205822 7112_ $$dNovember 2-4, 2016$$cAmsterdam, Netherlands$$aACM SIGPLAN Conference on Systems, Programming, Languages and Applications: Software for Humanity, Onward! Research Papers
000205822 773__ $$tOnward!'16: Proceedings Of The 2016 Acm International Symposium On New Ideas, New Paradigms, And Reflections On Programming And Software$$q82-97
000205822 8564_ $$uhttps://infoscience.epfl.ch/record/205822/files/f-p.pdf$$zPostprint$$s730300$$yPostprint
000205822 909C0 $$xU10409$$0252187$$pLAMP
000205822 909CO $$ooai:infoscience.tind.io:205822$$qGLOBAL_SET$$pconf$$pIC
000205822 917Z8 $$x191683
000205822 917Z8 $$x191683
000205822 917Z8 $$x191683
000205822 917Z8 $$x191683
000205822 917Z8 $$x191683
000205822 917Z8 $$x148230
000205822 937__ $$aEPFL-CONF-205822
000205822 973__ $$rREVIEWED$$sPUBLISHED$$aEPFL
000205822 980__ $$aCONF