This section presents different Overflow nodes categories. The nodes categories are divided in two by level of diffiuclty: the Basic Nodes and the Advanced Features. For every category (no matter its level of difficulty), at least one of his node is explained and given in example. For every example, you can find the corresponding program in the directorie: FreeSpeech/examples .
Lets get started with the nodes that are the most popular for new users, that is, the most important to understand.
As the name mentions, this category contains nodes that you find frequently in programs.
Among the nodes of this category, the most often used is certainly the node ``Constant''. Figure shows how you can make Overflow write ``Hello World!'' in the status window. Yes, it's simply a constant string (using Constant node) with an output label attached to it.
Note that you can try out this program by clicking on the open icon and select: FreeSpeech/examples/hello.n .
In the previous example, the node ``Constant'' took the data type ``string'', however, the node can take other data types. Here is a list of all data types that a node ``Constant''can take:
This category concerns mainly the use of streams for reading, loading and saving data of any kind.
This example is used to save an object in a file or a network stream. Figure shows that the nod Save takes two inputs: an object to save and an Overflow write stream where to save the object. The write stream is opened using the OutputStream node which takes a file name as input (allo.sdw).
Note that you can try out this program by clicking on the open icon and select: FreeSpeech/examples/save.n .
This categroy contains nodes that proceed logical operations such as: AND, OR, NOT, IF etc...
On of the most important control structure in a language is conditional branching. Figure shows an IF statement in Overflow. The node IF pulls his input from the terminal then or else depending on whether the condition is true or false. When the condition is true, it pulls the terminal then and when the condition is false, it pulls the terminal else. In both cases, the terminal pulled is returned as the output of the IF.
Note that you can try out this program by clicking on the open icon and select: FreeSpeech/examples/demo_if.n .
This categroy contains nodes that proceed arithmetic operations such as: ADD, DIV, EQUAL, MIN, etc...
Figure shows a MIN statement in Overflow. The node MIN compares its two inputs and return the minimum between the two values.
Note that you can try out this program by clicking on the open icon and select: FreeSpeech/examples/min.n .
This categroy contains nodes that proceeds data plotting and printing. It also helps for debugging by allowing to ``trace'' programs initializations, requests, inputs and exceptions.
Figure shows an Overflow program that uses textProbe. That way, textProbe shows the program results as text in a box. In iterators, textProbe allows to show the program result for every new iteration by clicking on the icon Next.
Note that you can try out this program by clicking on the open icon and select: FreeSpeech/examples/textProbe.n .
This categroy contains nodes that proceed operations on vectors such as: SUM, CONCATENATE, LENGTH, DCVECTOR, etc...
Figure shows an Overflow program that creates a vector and make the summation of all its objects. For creating a DCVector you must specify the number of objects you want it to contain (the length) and the value you want all the objects to take (the value). The node SUM, add all of the objects given by the vector at his input and return the result.
Note that you can try out this program by clicking on the open icon and select: FreeSpeech/examples/vector.n .
The following categories of nodes presented are more complex than the others and not necesserely useful for every user. That's the reason why they are placed in this section.
This category was created for Speech recognition and voice treatment.
In some circumstances, it is desirable to insert feed-back loops into a program. Normally, Overflow only supports acyclic graphs, but feed-back loops can be made using the special Feedback node. Figure shows an Overflow program that uses a Feedback node. At the beginning, the constant ``1'' is added to ``0'' and then, at every iteration, the result of the addition is added to the same constant ``1''.
Note that you can try out this program by clicking on the open icon and select: FreeSpeech/examples/demo_feedback.n .
It must first be noted that multi-threading in Overflow is still an experimental feature and not all structures are fully MT-safe. Overflow multi-threading is provided through three special nodes: SerialThread, ParallelThread and ThreadJoin.
The SerialThread node provides pipeline-type multi-threading. A thread is started and computes inputs before they are needed by the output node.
The ParallelThread node provides parallelism-type multi-threading. When asked for an input, it computes both inputs at the same time and caches the other.
The ThreadJoin node acts like a mutex and prevents two Overflow threads from accessing the same (input) node at the same time.
Figure shows an example of Overflow program that uses multi-threading.
Note that you can try out this program by clicking on the open icon and select: FreeSpeech/examples/mixedthread.n .
As the name mentions, this category is about matrix, that is, two dimensions vector. Figure shows an example of Overflow program that create matrix and use it with the node MProduct.
Note that you can try out this program by clicking on the open icon and select: FreeSpeech/examples/matrix.n .