next up previous contents
Next: To create an algorithm Up: Syndex v6 - User Previous: Graph elements becoming inactive   Contents

Algorithm

In AAA methodology, an algorithm is specified as a directed acyclic graph (DAG) infinitely repeated. Directed means that for each edge representing a relation between vertices, the vertices n-uple is ordered, i.e. its first element is the source vertex the other one(s) is (are) the destination vertex(ices).

Still in AAA, vertices are operations; operation stands for a sequence of instructions which starts after all its input data are available and produces output data at the end of the sequence. In SynDEx, there is an additionnal notion of reference. To each reference corresponds the definition of an algorithm (we will say ``definition'' instead of ``algorithm definition'' for the rest of this chapter). The same definition may correspond to several references to this definition. An algorithm definition is a DAG similar to those in AAA, except that vertices are references or ports. A reference in a definition may correspond to a definition which contains several references and so on. Ports are used only for propagating back and forth edges along the hierarchy.

In SynDEx, algorithms can be defined through hierarchy. A definition is said hierarchical when it defines (explicitly or implicitly) an algorithm which contains at least one dependence (and possibly references), otherwise it is said atomic.

A definition is said explicitly hierarchical when the algorithm specified by the user contains at least one edge (and possibly references). This includes conditioning, repetitions of hierarchical definitions and, more generally, definitions defined through several levels of hierarchy.

A definition is said implicitly hierarchical when the algorithm specified by the user doesn't contain any dependence and yet will be transformed by SynDEx, for the adequation, into a graph which contains dependences. This happens only with repetitions of atomic definitions.

In a definition window, references to a definition explicitly hierarchical are displayed with a double-border, references to conditioned definitions have their conditioning port displayed in yellow and the repetition factor of a reference is displayed next to to the references name.

There are five types of definitions: constant (input vertex of the DAG, null execution time) and sensor (input vertex of the DAG producing data from a physical sensor) which both have no input ports, actuator (output vertex of the DAG consuming data for a physical sensor) which has no output port, function (reads data on input ports, executes instructions without any side-effect, writes data on output ports), and delay (memorizes data during one or several infinite repetition of the DAG, for use in next repetitions). Only a function may be defined through explicit hierarchy.

There are four types of edges: strong data communication and execution precedence, weak data communication and execution precedence, data communication only, execution precedence only. The two first types of edges impose that the reference which produces the data is executed before the reference which consumes the data, whereas in the case of the third type of edge the reference which produces the data may be executed before or after the reference which consumes the data (blackboard). Strong data communication means that during the first repetition and only during the first repetition of the DAG, the reference which produces the data is executed before the reference which consumes the data, whereas weak data communication means that during the first repetition of the DAG the reference which produces the data is executed after the reference which consumes the data, implying that this reference consumes a data specifically initialized. The fourth type of edge only imposes an execution order between references, no data is consumed or produced.

In a definition window, to open the definition corresponding to a reference in order to inspect and possibly modify its content, point the cursor at this reference which borders will highlight in red, then double click the left button of the mouse. This will display the graph of the definition in a new window.

To label an algorithm window with "(main)", choose MAIN DEFINITION in the EDIT menu. Notice that the algorithm (main) must be at the root level of a hierarchy; it can't contain ports.

To open the algorithm (main) definition, choose the option EDIT MAIN DEFINITION in the menu ALGORITHM of the principal window.



Subsections
next up previous contents
Next: To create an algorithm Up: Syndex v6 - User Previous: Graph elements becoming inactive   Contents
Julien Forget 2003-03-21