L'accès aux variables étant toujours successif, l'utilisateur n'a pas à effectuer de synchronisation explicite s'il utilise un type de variable approprié à la situation. Chaque type de variable détermine les conditions de simultanéité pour une situation donnée. Par exemple, si une variable globale est utilisée pour stocker une chaîne qui est lue et écrite par deux jeux de règles, les lectures et les écritures sont obligatoirement atomiques. La valeur actuelle est cependant déterminée par la dernière instance de jeu de règles ayant écrit sur la variable.
Si une variable de jeu de règles est utilisée pour stocker des informations transitoires dans une longue chaîne de règles en exécution, la valeur stockée ne sera sans doute plus affectée à la variable au moment où elle sera récupérée. Elle aura très certainement été remplacée par des exécutions ultérieures du jeu de règles. Cependant, si une variable temporaire a été utilisée, la valeur sera toujours correcte au moment de sa récupération car chaque exécution disposera de sa propre instance de variable.
Le tableau suivant résume les types de variables adaptés à chaque utilisation :
Utilisation |
Type de variable |
|
|
|
---|---|---|---|---|
|
Globale |
Jeu de règles |
Temporaire |
|
Isolation des références externes |
Oui |
Peut-être |
Non |
|
Simplification des références de propriété d'événement complexes |
Non |
Non |
Oui |
|
Conservation de l'état de traitement ou d'exécution |
Peut-être |
Peut-être |
Oui |