Eigenschaften von Graphen

Einige Aspekte der Datenverarbeitung durch MCG sind zu bedenken.

Unveränderliche Daten

Die meisten Daten in einem Graphen können nicht geändert werden. Sie sind unveränderlich. Einige Operationen scheinen zwar Daten zu ändern, wie z. B. der Operator Anordnung Anhängen, aber in Bezug auf den Graphen gibt der Knoten in Wirklichkeit nur eine neue Kopie des Objekts aus.

In einigen Fällen wird der Compiler Optimierungen vornehmen, um unnötige Kopien der Daten zu vermeiden, solange die Referenztransparenz gewahrt wird.

Referenztransparenz

Viele Operatoren in MCG weisen Referenztransparenz auf. Das bedeutet, dass sie mit den gleichen Eingaben ohne andere sichtbare Effekte immer die gleichen Ausgaben erzielen.

Funktionen als Daten

Einer der interessanten (und nützlichen) Aspekte von MCG ist, dass es sich dabei um eine voll funktionsfähige visuelle Programmiersprache handelt. Das bedeutet, dass die Knoten Funktionen als Eingaben erhalten und Funktionen als Ausgaben zurückgeben können. Funktionen können dynamisch mithilfe von Operatoren wie Erstellen und Binden erstellt und sogar in Anordnungen gespeichert werden können.

Alle Untergraphen können als Funktion behandelt werden, indem die Funktionsausgabeverbindung eines Knotens mit einem anderen Knoten verknüpft wird, der Funktionen als Eingabetyp akzeptiert. Wenn ein Knoten als Funktion verknüpft ist, stellen die nicht verknüpften Verbindungen aller Knoten in seinem Graphen die Funktionsargumente dar.

Nichtdeterministische Auswertungsreihenfolge

MCG garantiert nicht, dass die Operatoreingaben in einer bestimmten Reihenfolge ausgewertet werden, außer bei Kontrollstrukturoperatoren wie dem Wenn- oder dem Sequenzoperator. In einigen Fällen ist es möglich, dass eine Eingabe vom Compiler im Vorhinein ausgewertet und zwischengespeichert wird oder zwei Eingaben parallel ausgewertet werden.