Pour utiliser la procédure il suffit de l'invoquer par son nom comme un opérateur classique.
Exemple complet :
DEBPROC MODULO II*ENTIER JJ*ENTIER; SI( JJ EGA 0) ; MESSAGE ' NOMBRE ZERO INACCEPTABLE';.... ;FINSI; KK = II / JJ; MOD = II - ( KK * JJ) ; FINPROC MOD ; X = 35 ; Y = 6 ; KK = 18; Z = MODULO X Y ; MESSAGE ' Z VAUT ' Z 'KK VAUT ENCORE ' KK;Cette séquence produit le message :
Z VAUT 5 KK VAUT ENCORE 18On remarque bien que la définition de KK à l'intérieur de la procédure n'affecte pas sa valeur à l'extérieur. On aurait pu provoquer une erreur d'exécution de la procédure si avant de l'appeler on avait surchargé une valeur à SI. Par exemple, en supposant la même définition de la procédure MODULO la séquence suivante provoque une erreur.
SI = 32; X = 35 ; Y = 6 ; KK = 18; Z = MODULO X Y ;En effet à l'intérieur de la procédure la commande : "32 FAUX" n'a pas de sens. Pour se prémunir du surchargement des noms d'opérateurs dans les procédures, il suffit de les mettre entre quotes, afin que l'analyseur de syntaxe les considère toujours comme des mots et non comme un nom d'objet ( par chance,la plupart du temps cet objet n'existe pas. Une procédure du domaine public à donc tout intérêt à être écrite comme suit :
'DEBPROC' MODULO II*'ENTIER' JJ*'ENTIER'; 'SI'( JJ 'EGA' 0) ; 'MESSAGE' ' NOMBRE ZERO INACCEPTABLE';.... ;'FINSI'; KK = II / JJ; MOD = II - ( KK * JJ) ; 'FINPROC' MOD ;Dans ce cas là, aucune mésaventure ne peut arriver. A la lecture de cette procédure, on remarque des points de suspension. Il y aurait besoin ici d'un opérateur pour sortir de la procédure.