Programming with Implicit Flows

Modern software differs significantly from traditional computer applications that mostly process reasonably small amounts of static input data-sets in batch mode. Modern software increasingly processes massive amounts of data, whereby it is also often the case that new input data is produced and/or existing data is modified on the fly. Consequently, programming models that facilitate the development of such software are emerging. What characterizes them is that data, respectively changes thereof, implicitly flow through computation modules. The software engineer declaratively defines computations as compositions of other computations without explicitly modeling how data should flow along dependency relations between data producer and data consumer modules, letting the runtime to automatically manage and optimize data flows.

[1]  Patrick Th. Eugster,et al.  EventJava: An Extension of Java for Event Correlation , 2009, ECOOP.

[2]  Tamer Elsayed,et al.  iHadoop: Asynchronous Iterations for MapReduce , 2011, 2011 IEEE Third International Conference on Cloud Computing Technology and Science.

[3]  Brian Beckman,et al.  LINQ: reconciling object, relations and XML in the .NET framework , 2006, SIGMOD Conference.

[4]  Tarmo Uustalu,et al.  The Essence of Dataflow Programming , 2005, APLAS.

[5]  Yuan Yu,et al.  Dryad: distributed data-parallel programs from sequential building blocks , 2007, EuroSys '07.

[6]  Martin Odersky,et al.  Deprecating the Observer Pattern with Scala.React , 2012 .

[7]  Patrick Th. Eugster,et al.  Distributed programming with typed events , 2004, IEEE Software.

[8]  Kun-Lung Wu,et al.  DEDUCE: at the intersection of MapReduce and stream processing , 2010, EDBT '10.

[9]  Scott Shenker,et al.  Shark: SQL and rich analytics at scale , 2012, SIGMOD '13.

[10]  Michael J. Franklin,et al.  Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing , 2012, NSDI.

[11]  Mira Mezini,et al.  REScala: bridging between object-oriented and functional style in reactive applications , 2014, MODULARITY.

[12]  Mira Mezini,et al.  JEScala: modular coordination with declarative events and joins , 2014, MODULARITY.

[13]  Shriram Krishnamurthi,et al.  Flapjax: a programming language for Ajax applications , 2009, OOPSLA '09.

[14]  Paul Hudak,et al.  Functional reactive animation , 1997, ICFP '97.

[15]  Ravi Kumar,et al.  Pig latin: a not-so-foreign language for data processing , 2008, SIGMOD Conference.

[16]  Mira Mezini,et al.  Towards Reactive Programming for Object-Oriented Applications , 2013, LNCS Trans. Aspect Oriented Softw. Dev..

[17]  G. Stewart Von Itzstein,et al.  The Expression of Common Concurrency Patterns in Join Java , 2004, PDPTA.

[18]  Rob Miller,et al.  The Amulet Environment: New Models for Effective User Interface Software Development , 1997, IEEE Trans. Software Eng..

[19]  Jesse Liberty,et al.  Programming Reactive Extensions and LINQ , 2011 .

[20]  Erik Meijer,et al.  A co-Relational Model of Data for Large Shared Data Banks , 2011, ECOOP.

[21]  Mira Mezini,et al.  EScala: modular event-driven object interactions in scala , 2011, AOSD '11.

[22]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[23]  Martin Odersky,et al.  Higher-Order Reactive Programming with Incremental Lists , 2013, ECOOP.

[24]  Athanasios K. Tsakalidis,et al.  Data Structures , 2011 .

[25]  Rolf Dach,et al.  Technical Report 2012 , 2013 .

[26]  GhemawatSanjay,et al.  The Google file system , 2003 .

[27]  Mira Mezini,et al.  Towards Distributed Reactive Programming , 2013, COORDINATION.

[28]  Gary T. Leavens,et al.  Ptolemy: A Language with Quantified, Typed Events , 2008, ECOOP.

[29]  Shriram Krishnamurthi,et al.  Embedding Dynamic Dataflow in a Call-by-Value Language , 2006, ESOP.

[30]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[31]  Kun-Lung Wu,et al.  IBM Streams Processing Language: Analyzing Big Data in motion , 2013, IBM J. Res. Dev..

[32]  Craig Chambers,et al.  FlumeJava: easy, efficient data-parallel pipelines , 2010, PLDI '10.

[33]  Alvin AuYoung,et al.  Using R for Iterative and Incremental Processing , 2012, HotCloud.

[34]  Pramod Bhatotia,et al.  Incoop: MapReduce for incremental computations , 2011, SoCC.