Porgrammierung

Das Data Stream Network wurde in einer Kombination aus C++ und  Tcl/Tk  entwickelt.

C++

Alle Algorithmen und das ganze Gerüst des Data Stream Networks wurde komplett in C++ oder C programmiert bzw. aus aus Bibliotheken in dieser Sparche zusammengebaut. Ein Hauptgrund für diese Wahl von C++ ist deren allgemeine Verfügbarkeit und Standardisierung: Dadurch wurde es möglich gleichzeitig Software für verschiedene Betriebssysteme zu entwickeln. Ein weiterer Grund war die Verfügbarkeit von umfangreiche Bibliothek von Algorithmen und Tools.

Es besitzt eine hohe Abstraktionsebene und ermögliche Kapselung von Daten und Prozeduren. Auch stellt C++ die Vererbung zur Verfügung, wodurch in hierachischer Struktur und somit übersichtlich programmiert werden kann. C++ kann so erweiterte werden , daß eine an ein spezielles Problem angepaßte Programmiersprache entsteht. In dem Programmpaket DSN wurde intensiv diesen Möglichkeit der C++-Programmierung Gebrauch gemacht.

Tcl/Tk

Die Tool Command Language (Tcl) ist ein Scriptsprache, die von  John Ousterhout an der University of California at Berkely ab 1988 entwickelt wurde. Tcl ist eine sehr leistungsfähige Programmiersprache, die alle wesentlichen Konstrukte höherer Programmiersprachen zur Verfügung enthält. Der Kern dieser Sprache ist die String- und Listenverarbeitung. Alle Variablentypen sind letztendlich Strings, die entsprechen interpretiert werden (z.B. als float, int) . Auch Programmcode kann in Variablen abgelegt und interpretiert werden, so daß ein laufendes Programm um neuen Code erweitert werden kann. Von dieser Möglichkeit wird z.B. bei der Programmierung der Makros des DSN Gebrauch gemacht. Auf weitere Möglichkeiten dieser Sprache kann hier nicht eingegangen werden. 

Die bedeutendenste Erweiterung von Tcl ist das Tool Kit (Tk), die den entscheidenden Ausschlag für die Verwendung dieser Sprache gab. Durch das Tk wird der Tcl-Interpreter um umfangreiche Befehle zur grafischen Oberflächenprogrammierung erweitert. Mit sehr einfach aufgebauten Programmcode lassen sich Fenster erzeugen und mit vielen verschiedene Arten von Widgets  dekorieren und damit interaktive Dialogboxen generieren. Durch die Kombination von Tcl und Tk ist es sogar mögliche große interaktive und komplexe Anwendungen zu erstellen, ohne andere Programmiersprachen zu verwenden.

Alles kann, bzw. sollte aber nicht in Tcl/Tk programmiert werden. Numerisch intensive Algorithmen laufen in compilierbaren Sprachen schneller. Tcl/Tk bietet daher die Möglichkeit sich mit verschieden anderen Sprachen (C, Pascal, Fortran) zu verbinden. Es ist z.B.damit möglich von C aus alle Tcl/Tk-Befehle aufrufen und umgekehrt von Tcl/Tk aus auf Prozeduren und Variablen zugreifen, die in C++ implementiert sind. Dieses ermöglicht letztendlich eine Steuerung eines C++-Programm durch Benutzeraktionen (Maus, Tastatur), die von Tk registriert werden.

Tcl/Tk entlastet durch seine abstrakte Form von systemspezifischer Programmierung und ist dadurch portabel. Da es Tcl/Tk-Pakete für alle wichtige Betriebssysteme (UNIX, Windows, OS/2, Mac) gibt , trägt es dazu bei das "Babylonische Sprachengewirr" unter den Systemen zu umgehen. Ein weiteres "Highlight" dieses Programmiersystem ist die eingebaute Option die Sprache fundamental durch Binärcode zu erweitern. So existieren z.B. Module um grundsätzlich neue Widget zu erzeugen (TIX) und Flächen- bzw. Liniengrafiken zu erzeugen (BLT ). Es ist geplant, diese beiden leistungsfähigen Erweiterungen ist das DSN zu integrieren.
 

Zusammenfassung

· 25.000 Zeilen/ 1 MByte selbst entwickelter C++-Code
· Ca. 100 Algorithmen
· Bis zu 500 Knoten könne in einem Netz verwaltet werden
· Virtuellen Bildschirm von 5000 x 5000 Pixel
· Netzwerkstruktur, Daten und Desktop können komplett gesichert werden.
· Programm spart Arbeitsspeicher, nur die nötigen Daten ins RAM geladen
· Für alle Datenstrukturen existiert eine spezifische grafische Darstellung im "GnuPlot-Format"
· Hilfetext für jeden Algorithmus
· Bedienungshilfe in Oberfläche integriert