Difference between revisions of "Chart research"

From PublicWiki
Jump to: navigation, search
(Notation)
Line 25: Line 25:
 
* All names are strictly local.  The block's channels in and out are the only external names; likewise, each node has access only to the names given to it in its input/output.
 
* All names are strictly local.  The block's channels in and out are the only external names; likewise, each node has access only to the names given to it in its input/output.
 
* Every pipe must be connected at both ends.  Each end may be connected only once: so each pipe will connect exactly two nodes.
 
* Every pipe must be connected at both ends.  Each end may be connected only once: so each pipe will connect exactly two nodes.
* Each pipe must be first used as a node's output (or as the input to the block) and '''only then''' to a node's input (or as the output of the block).
+
* Each pipe must be first used as a node's output (or as the input to the block) and '''only then''' as a node's input (or as the output of the block).
  
 
==External Links==
 
==External Links==

Revision as of 05:47, 11 December 2005

This page is for the development of the chart notation and its computational models. Fork it as it grows. Keep an overview of each topic here. This is research so schizophrenia is ok: just make it clear that the voice is changing.

This is just a start.

Overview

A chart is an acyclic directed graph. Its nodes can be interpreted as programs and its edges represent the way that data is passed between them, but this is only one interpretation.

Dataflow can be represented with charts, but charts are meant to be a more general notation: they are not strictly a computational model. We hope to use charts to clarify some difficult computational problems.

Notation

The current chart notation lists local names for a node's inputs and outputs.

(in1, in2 : out1, out2) node1

A set of nodes, placed in square brackets, represents a chart. A chart can realize a node, so the following could be used where the above is called for:

(in1, in2 : out1, out2)
[ (in1 : chan1) node_a
  (in2 : chan2) node_b
  (chan1, chan2 : out1, chan3) node_c
  (chan3 : out2) node_d
]                          

The following rules explain this:

  • All names are strictly local. The block's channels in and out are the only external names; likewise, each node has access only to the names given to it in its input/output.
  • Every pipe must be connected at both ends. Each end may be connected only once: so each pipe will connect exactly two nodes.
  • Each pipe must be first used as a node's output (or as the input to the block) and only then as a node's input (or as the output of the block).

External Links

Language Paradigms

Dataflow Programming at c2

FlowBased Programming at c2