Data Flow Program Graphs (original) (raw)
Related papers
Computer Languages, 1984
Many novel computer architectures like array and multiprocessors which achieve high performance through the use of concurrency exploit variations of the von Neumann model of computation. The effective utilization of the machines makes special demands on programmers and their programming languages, such as the structuring of data into vectors or the partitioning of programs into concurrent processes. In comparison, the data flow model of computation demands only that the principle of structured programming be followed. A data flow program, often represented as a data flow graph, is a program that expresses a computation by indicating the data dependencies among operators. A data flow computer is a machine designed to take advantage of concurrency in data flow graphs by executing data independent operations in parallel. In this paper, we discuss the design of a high level language (DFL: Data Flow Language) suitable for data flow computers. Some sample procedures in DFL are presented. The implementation aspects have not been discussed in detail since there are no new problems encountered. The language DFL embodies the concepts of functional programming, but in appearance closely resembles Pascal. The language is a better vehicle than the data flow graph for expressing a parallel algorithm. The compiler has been implemented on a DEC 1090 system in Pascal.
The semantics of data flow diagrams
1989
In this article we provide insight as to how semantics can be attached to Data Flow diagrams. We rst present a method for transforming a Data Flow Diagram(DFD) to a Petri-Net (PT-net) which speci es the synchronization aspects of a DFD. Secondly, we sketch how a Data Flow diagram may be transformed to expressions whose semantics are described in terms of nite automata.
Adding control-flow to a visual data-flow representation
2005
Abstract Previous studies have shown that novices do not tend to extract or use data-flow information during program comprehension. However, for impact analysis and similar tasks, data-flow information is necessary and highly relevant. Visual data-flow programming languages, such as Prograph/CPX, have been commercially successful, suggesting that they provide effective data-flow representations.
A Formal Semantics of Data Flow Diagrams
Formal Aspects of Computing, 1994
This paper presents a formal semantics of data ow diagrams as used in Structured Analysis, based on an abstract model for data ow transformations. The semantics consists of a collection of VDM functions, transforming an abstract syntax representation of a data ow diagram into an abstract syntax representation of a VDM speci cation. Since this transformation is executable, it becomes possible to provide a software analyst/designer with two`views' of the system being modeled: a graphical view in terms of a data ow diagram, and a textual view in terms of a VDM speci cation. In this paper emphasis is on the motivation for the choices made in the transformation. The main aspects of the transformation itself are described using annotated VDM functions with some examples.
Formalized Data Flow Diagrams and Their Relation to Other Computational Models
1996
One approach to the formalizationof Data Flow Diagrams DFD's is presented by Coleman Col91 , CB94 and Leavens, et al., LWBL96. These Formalized Data Flow Diagrams FDFD's can be viewed as another model of computation. This paper contains an analysis of the computational power of these FDFD's. We rst consider the issue whether certain features of FDFD's a ect their computational power. A Reduced Data Flow Diagram RDFD is an FDFD with no stores, nite domains for ow values, and no facility for testing for empty o ws, but it may contain persistent o ws. An RDFD without persistent o ws is called a persistent o w free Reduced Data Flow Diagram PFF RDFD. We show that PFF RDFD's are Turing equivalent. The other features of FDFD's only add to the expressive p o wer of FDFD's SB96. Therefore, any FDFD can be expressed as an PFF RDFD. Our proof that PFF RDFD's are Turing equivalent procedes as follows. We rst show that any RDFD can be simulated by a FIFO P etri Net. We then show that any Program Machine can be simulated by a n PFF RDFD. It is known that FIFO P etri Nets and Program Machines both are Turing equivalent.
Journal of Parallel and Distributed Computing, 1991
Are imperative languages tied inseparably to the von Neumann model or can they be implemented in some natural way on dataflow architectures? In this paper, we show how imperative language programs can be translated into dataflow graphs and executed on a dataflow machine like Monsoon. This translation can exploit both fine-grain and coarsegrain parallelism in imperative language programs. More importantly, we establish a close connection between our work and current research in the imperative languages community on data dependencies, control dependencies, program dependence graphs, and static single assignment form. These results suggest that dataflow graphs can serve as an executable intermediate representation in *
A Formal Definition of Data Flow Graph Models
IEEE Transactions on Computers, 1986
In this paper, a new model for parallel computations and parallel computer systems that is based on data flow principles is presented. Uninterpreted data flow graphs can be used to model computer systems including data driven and parallel processors. A data flow graph is defined to be a bipartite graph with actors and links as the two vertex classes. Actors can be considered similar to transitions in Petri nets, and links similar to places. The nondeterministic nature of uninterpreted data flow graphs necessitates the derivation of liveness conditions.
Proceedings of The IEEE, 1995
This paper concerns programming methodologies commonly called "graphical dataflow programming" that are used extensively for signal processing and experimentally for other applications. In this paper, "graphical" means simply that the program is explicitly specified by a directed graph where the nodes represent computations and the arcs represent streams of data. The graphs are typically hierarchical, in that a node in a graph may represent another directed graph.
Implementing and Testing new Programming Constructs in a Data Flow
1998
A powerful and useful Data-Flow Visual Programming Language (DFVPL) must provide the necessary programming constructs to deal with complex problems. The main purpose of this paper is to give a contribution to the debate on DFVPL constructs by presenting the solutions we devised for the VIPERS language. Another purpose of the paper is to illustrate the methodology we developed in order to start a comparative usability study for different implementations of control flow constructs. We stress the features of this original methodology, which is effective, easy to implement in different working contexts (even remote ones), and which gave us interesting clues about the way people inspect visual programs.
Control-Flow Semantics for Assembly-Level Data-Flow Graphs
Lecture Notes in Computer Science, 2006
As part of a larger project, we have built a declarative assembly language that enables us to specify multiple code paths to compute particular quantities, giving the instruction scheduler more flexibility in balancing execution resources for superscalar execution. Since the key design points for this language are to only describe data flow, have built-in facilities for redundancies, and still have code that looks like assembler, by virtue of consisting mainly of assembly instructions, we are basing the theoretical foundations on data-flow graph theory, and have to accommodate also relational aspects. Using functorial semantics into a Kleene category of "hyper-paths", we formally capture the data-flow-with-choice aspects of this language and its implementation, providing also the framework for the necessary correctness proofs.