L’énoncé reserve alloue dynamiquement l’espace mémoire pour un tableau à "k"-dimensions. Si l’expression by * est utilisée, seulement l’espace pour le pointeur au tableau est réservé.
où "quantité"i est un expression arithmétique indiquant le nombre d’éléments pour une dimension donnée du tableau. Si l’expression arithmétique est une valeur réelle, cette valeur sera arrondi en entier.
Exemple :
reserve Flotte(*) as 50;
reserve Matrice (*, *) as n by m ;
reserve A(*) as 50,
 m(*, *) as 2*n by m / 4 ,
 b(*) as s/t+4,
 x(*, *, *) as n by n by k;
reserve code (*, *) as 10 by * ;
for i = 1 to dim.f(triangl(*, *)),
 reserve triangl (i, *) as i ;
Les blocs de mémoire réservés permettent de stocker les éléments d’un tableau de façon consécutive en mémoire.

Simscript III/Dictionnaire des instructions/RESET

L’énoncé reset initialise les compteurs associés aux variables référencées par les énoncés tally/accumulate pour le calcul de statistiques. Si le "Qualificatif" est spécifié, seulement les compteurs appropriés sont réinitialisés. Les "Qualitificatifs" permettent de recueillir des statistiques cumulatives et périodiques.
Exemple :
reset totals of N.X.Queue
reset weekly and monthly totals of N.Queue and Population(Ville) ; 
for each Ville,
 reset totals of Population(Ville) ;

Simscript III/Dictionnaire des instructions/RESOURCE

L’énoncé codice_1 se place dans le préambule (codice_2) pour définir les ressources sans attribut et introduire les phrases codice_3 qui déclarent des ressources avec attribut(s).
Syntaxe :
Exemple :
resources... 
 include Porte
 every caissier has a Nom,
 an Age,
 a Temps_Service random linear variable
 define Temps_Service as a real stream 6 variable
 define Nom as a text variable
 define Age as an integer variable

Simscript III/Dictionnaire des instructions/RESUME

L’énoncé "resume" fait retourner un processus "P" (précédemment créé par "activate a" et qui a été interrompu par "interrupt") dans l’échéancier, pour une durée restante définie dans l’attribut time.a(P). L’issue du délai prévu, l’exécution reprend à l’énoncé work/wait où le processus avait été interrompu.
Remarques :

Simscript III/Dictionnaire des instructions/RETURN

L’énoncé return redonne la main au sous-programme appelant si on est dans une routine ou une méthode, ou au programme horloge de la simulation si on est dans un processus. De plus, la zone mémoire occupée par un processus est libérée sur le return. Pour les fonctions, voir return with.

Simscript III/Dictionnaire des instructions/RETURN WITH

L’énoncé return with retourne le résultat d’une fonction au sous programme appelant.
où "X" est une variable ou une expression donnant le résultat du calcul effectué.
Exemple :
function Somme(a, b)
 define a, b as double variables
 return with a + b
end ‘‘ Somme

Photographie/Fabricants/Takara Tomy/Takara Tomy Xiao TIP-521

Commentaires.
Cet appareil était initialement destiné aux jeunes femmes mais il semble que les écolières et les lycéennes japonaises soient également visées.

Simscript III/Dictionnaire des instructions/ROUTINE

L’énoncé routine marque le début d’un sous-programme de type routine.
où" Nom_Routine" est un nom apparaissant dans un define ... routine du preamble, "E"1, ..., "E"n est une liste de paramètres d’entrée et "S"1, ..., "S"m est une liste de paramètres de sortie.
Dans l’exemple qui suit, une routine effectuant la somme des éléments de deux matrices, et retournant la matrice résultante peut être implantée de deux façons différentes. Étant que les tableaux en paramètres sont passés par adresse, la matrice résultante "c" peut être déclarée en paramètre d’entrée (routine additionner_Matrices), et le sous-programme modifie les éléments de la matrice "c" en place. Une autre alternative (routine additionner_Matrices2) est de déclarer la matrice résultante en paramètre de sortie, l’allocation de la mémoire de la matrice résultante (reserve) doit être effectuée dans la routine, et le pointeur (passage de paramètre par adresse) à la matrice résultante est retourné au code appelant.
Exemple :
‘‘---------------------------------------------------------
routine additionner_Matrices ( a, b, c)
 define a, b, c as 2-dimensional real arrays
 define i, j as integer variables
 for i = 1 to dim.f(a(*, *)),
 for j = 1 to dim.f(a(i, *)),
 let c(i, j) = a(i, j) + b(i, j);
 return;
end ‘‘ additionner_Matrices
routine additionner_Matrices2 given a, b yielding c
 define a, b, c as 2-dimensional real arrays
 define i, j as integer variables
 define n_rows, n_cols as integer variables
 let n_rows = dim.f(a(*, *))
 let n_cols = dim.f(a(1, *))
 reserve c(*, *) as n_rows by n_cols
 for i = 1 to dim.f(a(*, *))
 for j = 1 to dim.f(a(i, *))
 let c(i, j) = a(i, j) + b(i, j);
 return ;
end ‘‘ additionner_Matrices2
Et le code appelant est :
define x_mat, y_mat, z_mat as 2-dim real arrays
define m = 4 as constant ;
reserve x_mat(*, *), y_mat(*, *) as m by m
read x_mat, y_mat
call additionner_Matrices giving x_mat(*, *), y_mat(*, *), x_mat(*,*);
call additionner_Matrices2 giving x_mat(*, *), y_mat(*, *)
 yielding z_mat(*,*);

Simscript III/Dictionnaire des instructions/SELECT CASE ...

L’énoncé de décision "select case" aiguille vers un cas si la "Variable" satisfait la condition, sinon effectue les énoncés suivants la phrase "default".
Exemples :
select case Direction
 case 1, 2, 3
 case 4
 endselect
 define Reponse as a text variable
 select case Reponse
 case "o","O","y", "Y"
 case "n","N"
 endselect

Simscript III/Dictionnaire des instructions/SKIP

L’énoncé skip permet de sauter des champs, enregistrements ou des lignes et s’applique à l’unité courante d’entrée ou de sortie.

Simscript III/Dictionnaire des instructions/START

L’énoncé start permet de commencer une nouvelle page, un nouvel enregistrement ou une nouvelle ligne et s’applique à l’unité courante d’entrée ou de sortie.

Simscript III/Dictionnaire des instructions/START SIMULATION

L’énoncé "start simulation" donne le contrôle de l’exécution du programme au programme horloge qui retire le premier processus de l’échéancier et exécute la routine correspondante, puis recommence (sur un "return" de la routine). Il se place généralement dans le "main", après les initialisations et le déclenchement des premiers processus, mais il peut aussi se placer dans toute routine.
Remarque : Pour l’arrêt de la simulation, il y a deux possibilités.

Simscript III/Dictionnaire des instructions/STOP

Arrête l’exécution du programme.
Simscript III/Dictionnaire des instructions/SUBSTITUTE

C’est un "define ... to mean" permettant de substituer à la compilation plusieurs lignes à un seul mot. Son effet s’étend à tout le programme s’il est placé dans le preamble, ou localement à une routine.

Simscript III/Dictionnaire des instructions/SUBTRACT

C’est le petit frère de l’énoncé add : formula_1 est équivalent à "variable = v variable – quantité" !

Simscript III/Dictionnaire des instructions/SUSPEND

L’énoncé "suspend" place le processus courant (c’est-à-dire celui dont le processus est en train de s’exécuter) dans l’état suspendu (attribut prédéfini STA.A(P) = 2) et rend immédiatement le contrôle de l’exécution au programme horloge, sans détruire le processus courant "Processus". Il pourra être réveillé par un énoncé "reactivate the" (l’exécution reprendra alors à l’énoncé qui suit le suspend).
N.B. : Un processus ne peut être suspendu que par lui-même, et relancé par une autre routine (qui doit donc avoir accès au pointeur du processus suspendu).

Livre de cuisine/Boissons/Cocktails/Jägerbomb