********MANUEL DE L'UTILISATEUR******* |
Installation:
Bienvenue dans le manuel d'utilisateur de l'interpréteur/compilateur LF.
Pour l'installer il vous faut télécharger le code source ICI.
Et avoir Sicstus Prolog installé sur votre machine pour votre système d'exploitation.
( on peux le télécharger Là.) |
Il suffit d'ouvrir Sicstus Prolog, et de charger le code source s'intitulant proj_pro.pl.
en tappant:
-consult proj_pro.pl pour les utilisateurs de système UNIX.
-ou en se servant des menus:Fichier,consult.
Mise en Route
L'interpréteur:
-Définition:
Langage qui traite les lignes du code source
du programme les unes après les autres, au fur et à
mesure qu'il les parcourt par opposition à compilateur.
La première technique est dite interprétation, un programme (l'interpréteur) lit votre programme et l'exécute.
Cette technique tend à disparaître pour les langages d'usage général, mais elle survit bien dans des
contextes plus spécialisés.
Fonctionnement de l'interpréteur LF
Une fois le code source chargé, il suffit de tapper ces instructions LF pour l'interpréteur et/ou le code à compiler
pour le compilateur:
-Instructions possible pour l'interpréteur:
*define(Nom_de_fonction,Argument,Code): Définit une fonction dans Sisctus qui pourra être évaluée pendant la session par l'interpréteur
ou compilée par le compilateur.
Ex:
?- define(fact,[N],if(N=0,1,N*apply(fact,[N-1]))).
true ?
yes
On définit ici la fonction Factorielle.
*listing(fun/3): affiche la liste de toutes les fonctions définies pour la session en cours,permet de vérifier que votre 'define' a bien été
exécuté.
*eval(Intruction_Lf,Resultat): Evalue une instruction en LF par Sicstus en passant par l'interpréteur et renvoie le résultat dans la variable
Resultat.
Ex:
| ?- eval(2*3+4,X).
X = 10 ?
yes
ou encore
| ?- eval(apply(fact,[6]),L).
L = 720 ?
yes
Dans cette version d'évaluation l'interpréteur ne permet d'évaluer que:+,-,*,/ ( encore en version beta),
l'égalité,le if(Test,Then,Else).
D'autres fonctionnalités sont présentes dans la version deluxe de ce programme.
Le compilateur:
-Définition:
En pratique, un compilateur lit votre programme et le transforme en un exécutable,
c'est à dire quelque chose que la machine peut exécuter directement.
-Fonctionnement du compilateur LF vers Prolog
Notre compilateur permet d'utiliser directement des programmes LF qui ont été définis via l'interpréteur, en les
"traduisant" en Sicstus Prolog.
Instructions possibles pour le compilateur:
*compilo(Nom_Fonction): compile la fonction Nom_Fonction en Sicstus Prolog, permettant une utilisation directe
: Attention! Il faut avoir précédemment défini la fonction que l'on souhaite compiler.
Ex:
| ?- define(fact,[N],if(N=0,1,N*apply(fact,[N-1]))). %on définit la fonction fact
true ?
yes
| ?- compilo(fact). %on compile fact
yes
%il est possible maintenant d'utiliser fact comme une fonction "interne" écrite en Prolog.
| ?- fact([5],L).
L = 120 ?
yes
Si on souhaite vérifier le code Prolog de la fonction que l'on vient de compiler on peut utiliser la commande listing qui nous l'affiche:
Ex:
| ?- listing(fact/2).
fact([A], B) :-
C=A,
D=0,
( C=D ->
E=true
; E=false
),
E=false,
F=A,
G=A,
H=1,
I is G-H,
J=[],
fact([I|J], K),
L is F*K,
B=L.
fact([A], B) :-
C=A,
D=0,
( C=D ->
E=true
; E=false
),
E=true,
F=1,
B=F.
--------------------------------------------------------------

Voici les questions les plus fréquemment posées sur notre Forum LF for Prolog:
Comment compiler mon programme LF?
Pourquoi je ne peux pas utiliser le tant que?
Lors de certaines utilisations de la division j'obtiens des erreurs,pourquoi ?
Comment puis-je vous supportez dans votre travail?
Pourquoi votre programme est il aussi simplifié?
Où puis je me procurer la version deluxe de votre fabuleux programme?
Comment compiler mon programme LF?
Comme expliqué plus haut dans le manuel, la commande compilo permet de compiler un programme Lf très facilement
si tant est qu'il soit déjà définit par un 'define' comme expliqué dans le man.
Pourquoi je ne peux pas utiliser le tant que?
Malheureusement notre programme n'est qu'à ces balbutiements, de nouvelles fonctionnalités viendront compléter cette version
dans la version deluxe.
Lors de certaines utilisations de la division j'obtiens des erreurs,pourquoi ?
La fonction division est mal supportée dans cette version du fait des restes non nuls, nous continuons à travailler pour le résoudre.
Comment puis-je vous supportez dans votre travail?
En faisant une prière pour nous tous les soirs pour l'obtention de notre license d'informatique grâce au Prolog.
Pourquoi votre programme est il aussi simplifié?
Nous avons souhaité que les commandes pour compiler et définir soit le plus simple possible pour l'utlilisateur non aguerri.
Toutefois dans le manuel concepteur vous trouverez plusieurs fonctions plus complexes et plus complètes qui ne demandent qu'à être améliorées.
Où puis je me procurer la version deluxe de votre fabuleux programme?
Pour obtenir la version deluxe envoyez nous par tableau de license interposé,une note supérieure à 18 et nous vous enverrons
notre programme avec son code d'accès magiques sous 20 jours(promis ;) ).
Retour vers le menu des manuels |
|