2

Click here to load reader

3 intro

Embed Size (px)

Citation preview

Page 1: 3 intro

Introduction :

Les langages de programmation sont divisés en plusieurs familles, Dans ce petit rapport, nous

étudierons PROLOG, qui est le premier langage déclaratif. On oppose langage déclaratif et langage

procédural. Mais que recouvre cette distinction?

Dans un langage procédural tel que le C++, le Java … etc., un programme est une série d'instructions

qui indiquent à la machine COMMENT elle doit procéder pour résoudre un problème. Quel que soit le

niveau d'abstraction définie par le langage de programmation, c'est toujours en termes d'opérations à

effectuer que le programmeur raisonne.

Dans un langage déclaratif, le programmeur ne se préoccupe plus, de la marche à suivre pour résoudre

le problème. Il se préoccupe surtout de définir les objets manipulés par son programme, et les relations qui

existent entre ces objets, ou dont il veut prouver l'existence, et c’est à la machine de faire le reste. Le

mécanisme d'exécution d'un langage déclaratif évalue toutes les solutions du problème, c'est-à-dire toutes les

configurations d'objets qui satisfont la ou les relations recherchées.

PROLOG est un langage qui, comme son nom l’indique (PROgrammation LOGique) utilise un mode de

programmation logique. Ce langage nous permet aussi de découvrir les notions fondamentales de

l’informatique, par exemple : la récursivité, La déclarativité, l’unification, le backtracking … etc.

Nous avons vu que le principe de la programmation logique est de décrire le problème à résoudre.

Dans le cas de PROLOG, cela est formalisé grâce à un langage dérivé du calcul des prédicats (ou calcul du

premier ordre). Les prédicats servent à qualifier (donner les caractéristiques de) les objets du problème et à

décrire les relations dans lesquelles ils sont impliqués.

Programmer en Prolog signifie donc ‘identifier des objets et leurs relations’.

On doit déduire objets et relations entre objets d’un monde connu, comme par exemple des phrases comme «

Ahmed est le père de Amira » ou « Mohamed est riche » ou encore « Les objets rares sont chers ». Mais

attention les objets Prolog ne correspondent pas aux objets des langages de programmation par objets !

Et donc on doit :

- Spécifier des faits (vérifiés) sur les objets et leurs relations : Les faits sont des données élémentaires qu’on

considère vraies. Ce sont des formules atomiques constituées du nom d’un prédicat (c’est à dire d’une

relation (au sens mathématique du terme)) suivi entre parenthèse d’une liste ordonnée d’arguments qui

sont les objets du problème principal ou d’un sous-problème, exemple : animal(chat).

- Définir des règles sur les objets et leurs relations : Un programme PROLOG contient presque toujours des

règles, cependant ce n’est pas une obligation. Si les faits sont les hypothèses de travail de PROLOG, les

règles sont des relations qui permettent à partir de ces hypothèses d’établir de nouveaux faits par déduction

(si on a démontré F1 et F1⇒F2 alors on a démontré F2), exemple : père(X,Y) :-fils(Y,X).

- Poser des questions sur les objets et leurs relations, et donc interroger et donner des requêtes a notre base

de connaissance constituées de faits et de règles, exemple : animal(chien).

Et si, à première vue, la réponse se limite à un Oui ou Non, Prolog peut faire plus, nous allons voir tout sa

par la suite.

Page 2: 3 intro

Prolog est utilisé dans de nombreux programmes d’intelligence artificielle et dans le traitement de la

linguistique par ordinateur (surtout ceux concernant les langages naturels). Sa syntaxe et sa sémantique

sont considérées comme très simples et claires (le but original était de procurer un outil pour les linguistes

ignorant l’informatique).

Ce langage est né d'un projet, dont le but n'était pas de faire un langage de programmation mais de

traiter les langages naturels, en l'occurrence le Français, et d’automatiser le raisonnement humain.

On va alors découvrir dans ce qui suit l’origine de ce langage.