Dataflow Programming Concept , Languages and Applications

Dataflow Programming (DFP) has been a research topic of Software Engineering since the ‘70s. The paradigm models computer programs as a direct graph, promoting the application of dataflow diagram principles to computation, opposing the more linear and classical Von Neumann model. DFP is the core to most visual programming languages, which claim to be able to provide end-user programming: with it’s visual interface, it allows non-technical users to extend or create applications without programming knowledges. Also, DFP is capable of achieving parallelization of computation without introducing development complexity, resulting in an increased performance of applications built with it when using multi-core computers. This survey describes how visual programming languages built on top of DFP can be used for end-user programming and how easy it is to achieve concurrency by applying the paradigm, without any development overhead. DFP’s open problems are discussed and some guidelines for adopting the paradigm are provided.

[1]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[2]  David C. Cann,et al.  A Report on the Sisal Language Project , 1990, J. Parallel Distributed Comput..

[3]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[4]  Ademar Aguiar,et al.  Adaptive Object-Modelling: Patterns, Tools and Applications , 2009, 2009 Fourth International Conference on Software Engineering Advances.

[5]  W. R. Sutherland,et al.  The on-line graphical specification of computer procedures , 1966 .

[6]  David C. Cann,et al.  Retire Fortran? A debate rekindled , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[7]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[8]  Jeffrey Travis,et al.  LabVIEW for Everyone: Graphical Programming Made Easy and Fun , 2006 .

[9]  Mickaël Raulet,et al.  Exploring the Concurrency of an MPEG RVC Decoder Based on Dataflow Program Analysis , 2009, IEEE Transactions on Circuits and Systems for Video Technology.

[10]  Hyunok Oh Constant Rate Dataflow Model with Intermediate Ports for Efficient Code Synthesis with Top-Down Design and Dynamic Behavior , 2008, ISQED 2008.

[11]  Lennart Lindh,et al.  VHDL For Designers , 1997 .

[12]  James C. Browne,et al.  Visual programming and debugging for parallel computing , 1995, IEEE Parallel Distributed Technol. Syst. Appl..

[13]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[14]  John K. Ousterhout,et al.  Why Threads Are A Bad Idea , 2013 .

[15]  Jack B. Dennis,et al.  Data Flow Supercomputers , 1980, Computer.

[16]  Edward A. Lee,et al.  Dataflow process networks , 2001 .

[17]  Andrs Vajda Programming Many-Core Chips , 2011 .

[18]  Carl Hewitt,et al.  A Universal Modular ACTOR Formalism for Artificial Intelligence , 1973, IJCAI.

[19]  Shuvra S. Bhattacharyya,et al.  A generalized scheduling approach for dynamic dataflow applications , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[20]  James R. McGraw,et al.  The VAL Language: Description and Analysis , 1982, TOPL.

[21]  Arie van Deursen,et al.  Breviz: Visualizing Spreadsheets using Dataflow Diagrams , 2011, ArXiv.