10.2 Utilitaire

On trouvera en annexe le code source d’un programme permettant d’équiper les règles d’un fichier avec le système de trace, de manière automatique.
La mise en oeuvre de ce programme est la suivante :

  1. Le programme doit être compilé (fichier equipe.src)
        krt -c equipe.src equipe.kin

    en ayant au préalable copié la table des symboles depuis AB/press/lib/Bsym/B_ST dans le répertoire contenant le fichier equipe.src.

  2. Il faut créer un fichier equipe.ex contenant le prédicat Equipe, paramétré par le nom du fichier à équiper et la liste éventuelle des théories Forward (Par défaut, on considère que les théories contiennent des règles Backward).
    Par exemple, si le fichier equipe.ex contient :
        Equipe(‘‘test.src’’)

    les règles contenues dans le fichier “test.src” seront équipées du système de trace en mode backward.

    Si le fichier equipe.ex contient :

        Equipe(‘‘test.src’’ | (toto , titi, tutu))

    les règles contenues dans le fichier “test.src” seront équipées du système de trace en mode backward, sauf celles des théories toto, titi et tutu qui seront équipées en mode forward.

  3. Le programme doit être exécuté
        krt -b equipe.kin equipe.ex

Exemple d’utilisation

Si le fichier equipe.ex contient :

    Equipe(‘‘test.src’’ | SensAvant)

et que le fichier test,src contient :

THEORY truc IS  
 
 toto  
 =>  
 tata;  
 
 titi  
 =>  
 machin;  
 
 toto;  
 
 titi  
 
END  
 
&  
 
THEORY SensAvant IS  
 
 titi  
 =>  
 toto;  
 
 tutu  
 =>  
 tata  
 
END

le lancement du programme equipe

    krt -b equipe.kin equipe.ex

donnera :

THEORY truc IS  
bcall1(BackwardRule(truc.1)) &  
toto  
=>  
tata  
 
;  
bcall1(BackwardRule(truc.2)) &  
titi  
=>  
machin  
 
;  
bcall1(AtomicRule(truc.3))  
=>  
toto  
 
;  
bcall1(AtomicRule(truc.4))  
=>  
titi  
 
END  
 
&  
 
THEORY SensAvant IS  
titi  
=>  
toto &  
 bcall1(ForwardRule(SensAvant.1))  
 
;  
tutu  
=>  
tata &  
 bcall1(ForwardRule(SensAvant.2))  
 
END