Propriétés du graphique

Vous ne devez pas oublier certaines particularités de la manière dont le mode MCG traite les données;

Données immuable

Il est impossible de modifier la plupart des données d'un graphique. En d'autres termes, ces données sont immuables. Certaines opérations peuvent sembler suggérer qu'elles modifient les données, comme l'opérateur Réseau Ajouter, mais, du point de vue du graphique, le noeud génère une copie de l'objet.

Dans certains cas, le compilateur peut effectuer l'optimisation afin d'éviter la création de copies de données lorsque cela n'est pas nécessaire, à condition que la propriété de transparence référentielle soit conservée.

Transparence référentielle

De nombreux opérateurs dans MCG sont transparents de manière référentielle. C'est à dire qu'avec les mêmes entrées, ils obtiennent toujours le même résultat, et n'ont aucun autre effet observable.

Fonctions en données

L'un des aspects intéressants de MCG, fort utile, consiste dans le fait qu'il s'agit d'un langage de programmation visuel totalement fonctionnel. Cela signifie que les noeuds peuvent recevoir des fonctions en entrées et des fonctions de retour en sorties. Les fonctions peuvent être créées de manière dynamique à l'aide d'opérateurs tels que Composer et Lier, elles peuvent même être stockées dans des réseaux.

Tout sous-graphique peut être vu comme une fonction en reliant le port de sortie de la fonction d'un noeud à un autre noeud qui accepte les fonctions en type d'entrée. Lorsqu'un noeud est connecté en tant que fonction, les connecteurs non connectés de tous les noeuds du graphique constituent les arguments de la fonction.

Ordre d'évaluation non déterministe

MCG ne garantit pas que les entrées de l'opérateur seront évaluées dans un ordre spécifique, sauf dans le cas des opérateurs de flux de contrôle, comme l'opérateur If ou Sequence. Il est possible, dans certains cas, qu'une entrée soit pré-évaluée et mise en cache par le compilateur ou que deux entrées soient évaluées en parallèle.