Häufig wird der Begriff Programm-Visualisierung mit dem Begriff Visuelle Programmierung verwechselt oder vermischt. Myers verbindet mit der Programm-Visualisierung jedoch ,,den Einsatz von Graphik zur Illustration von bestimmten Aspekten eines (textuellen) Programms oder seiner Ausführung``, wohingegen er die visuelle Programmierung definiert als ,,ein System, das einem Benutzer die Konstruktion eines Programms mit zwei- oder mehr-dimensionalen Hilfsmitteln (gegenüber der konventionellen ein-dimensionalen textuellen Programmierung) erlaubt`` [Mye86]. Die Programm-Visualisierung wird damit hauptsächlich als Debugging-Werkzeug eingesetzt, Einsatzbereich der visuellen Programmierung ist die Programmentwicklung.
Auch der Begriff Visuelle Sprache wird nicht eindeutig verwendet.
Einerseits werden Sprachen für die Verarbeitung visueller Informationen,
zum Beispiel in der Bildverarbeitung, als visuelle Sprachen bezeichnet.
Andererseits wird der Begriff im Zusammenhang mit Sprachen benutzt,
die eine Programmentwicklung mit Hilfe visualisierter Sprachkonstrukte
erlauben, zum Beispiel Flußdiagramme. Auf dieser Grundlage teilt Chang
die visuellen Sprachen in vier Klassen ein, je nachdem, ob die
Objekte, die mit der Sprache verarbeitet werden, eine inhärente visuelle
Repräsentation besitzen oder visualisierte -- von Natur aus eigentlich
abstrakte --
Objekte darstellen,
und ob die Sprache selbst durch visuelle Elemente gebildet wird
oder nicht ([CIL86, Cha87a]) (siehe auch Abbildung
4.1).
Nach Chang sind visuelle Programmiersprachen
Sprachen, in denen die
Programmierkonstrukte visuell repräsentiert werden, und mit denen abstrakte
logische Objekte verarbeitet werden, die ebenfalls visualisiert
dargestellt werden.
Hierzu gehören beispielsweise Flußdiagramme,
Nassi-Shneiderman-Diagramme und Jackson-Diagramme.
Sprachen mit visuellen Programmkonstrukten, die inhärent visuelle
Objekte verarbeiten, werden ikonische visuelle Information
verarbeitende Sprachen genannt.
Hierunter fallen beispielsweise Graphik-Editoren.
Die Klasse der visuelle Informationen verarbeitende Sprachen
bilden textuelle Programmiersprachen, mit denen visuelle Objekte verarbeitet
werden, also zum Beispiel Sprachen zur Bildverarbeitung.
Schließlich gibt es noch die Klasse der eine visuelle
Interaktion unterstützende Sprachen. Das sind textuelle
Programmiersprachen, in denen von Natur aus abstrakte Daten visuell
repräsentiert und bearbeitet werden. Die Sprachen LOGO [Ros83]
und HI-VISUAL ([HMY
86, HTI90]) sind Exemplare dieser Klasse.
Abbildung 4.1: Klassifikation visueller Sprachen
Generell können zwei Kategorien der visuellen Programmierung unterschieden werden. In die eine fallen graphische Systeme, die eine Programmierung beispielsweise mit Hilfe von Flußdiagrammen, Nassi-Shneiderman-Diagrammen oder Jackson-Diagrammen ermöglichen. Personen, die mit diesen Werkzeugen programmieren, müssen grundsätzliche Programmierprinzipien und -konstrukte verstanden haben. Die Systeme stellen Alternativen zur textuellen Programmierung dar, die insbesondere Anfänger bei der Programmkonstruktion unterstützen. Ihr Einsatz impliziert häufig eine übersichtlichere, strukturierte Programmentwicklung mit einer niedrigeren Fehlerrate. Zur anderen Kategorie gehören dahingegen eher anwendungsorientierte graphische Systeme:
Allen diesen Systemen der zweiten Kategorie
gemeinsam ist, daß ihre Benutzer im allgemeinen keinerlei
Programmierkenntnisse bzw. -erfahrungen bezüglich der konventionellen
Programmierung besitzen müssen.
Sprachen der ersten Kategorie können auch als
programmier-orientierte
visuelle Programmiersprachen bezeichnet werden, Sprachen der zweiten Kategorie
als anwendungsorientierte visuelle Programmiersprachen.
Während bei programmier-orientierten visuellen Programmiersprachen
eine (fast) 1:1-Abbildung der graphischen Repräsentation in eine
textuelle Struktur möglich ist
,
besitzen
anwendungsorientierte visuelle Programmiersprachen
im allgemeinen ein wesentlich höheres Abstraktionsniveau:
Intern liegen den graphischen Elementen der Sprache
komplexe, zusammenhängende Strukturen zugrunde; einfache Benutzeraktionen
können komplexe Strukturveränderungen implizieren.