nous allons examiner les diff´erentes possibilit´es offertes par ces deux langages et
voir les avantages qu’il peut y avoir `a les utiliser ensemble.
Pourquoi Prolog ?
Le langage Prolog est un langage logique, de haut niveau, utilis´e pour les
applications d’intelligence artificielle telle que les syst`emes experts, le traitement
de la langue naturelle, pour les bases de donn´ees relationnelles, le datamining, et
bien d’autres applications faisant intervenir des probl`emes de parcours d’arbres
de r´esolution.
Il permet de programmer de mani`ere simple des probl`emes qui peuvent ˆetre
repr´esent´es sous formes d’un ensembles de r`egles et de faits. En Prolog, il n’est
pas n´ecessaires, comme c’est le cas dans les langages imp´eratifs, de construire
la r´esolution explicite d’un probl`eme. Il suffit simplement de mod´eliser une base
de connaissances 2qui seront utilis´es par un moteur d’inf´erence pour construire
les solutions `a un probl`eme donn´e (Voir figure 1.1).
Malgr´e tous ses avantages lorsqu’il faut d´ecrire des syst`emes complexes en
terme de r`egles d’inf´erences et d’axiomes logiques, Prolog est devenu aujour-
d’hui, pour diverses raisons que nous allons quelque peu d´etailler, peu ad´equat
pour d´evelopper des applications orient´ees utilisateurs.
En effet, l’int´egration d’un interpr´eteur Prolog dans un serveur web ou un
browser est difficile `a cause du manque d’interfaces efficaces entre Prolog et les
autres langages et de l’impl´ementation native de l’interpr´eteur. Ensuite, Prolog
ne fournit pas de fonctions pr´ed´efinies pour construire une interface utilisateur
graphique, ce qui rend difficile la conception de programmes interactifs ”user-
friendly”. Prolog est ´egalement tr`es peu adapt´e pour la r´ealisation d’application
r´eseau.
Fig. 1.1 – Architecture de Prolog
Pourquoi Java ?
Java est un langage orient´e objet devenu tr`es populaire en raison de sa sim-
plicit´e de mise en oeuvre, de sa portabilit´e et de son int´egration simple dans
des applications orient´ees Web. Java int`egre la plupart des grandes fonctions
des lagages modernes : multithreading, interfaces graphiques, programmation
r´eseau, garbage collection... Le d´eveloppement d’application en Java est gran-
dement facilit´ee par l’encapsulation des appels `a des fonctions de bas niveaux
dans des classes telles que le package SWING, AWT, java.net...
2Un ensemble de r`egles et de faits.
4