2. Architectures des agents et langages
2.3 Langages orientés agents

2.3.1 Langages de programmation des agents

L'architecture de l'agent une fois décidée, on peut utiliser n'importe quel langage de programmation pour implémenter l'agent. Il serait toutefois souhaitable d'avoir un langage de programmation qui offre des constructions spéciales pour bâtir nos agents et qui permette, de cette manière, de développer plus vite nos applications. Les langages de programmation agents ont été conçus dans ce but. Pourtant il est bien difficile de concevoir un langage qui offre des constructions adéquates et efficaces pour implémenter n'importe quel agent. On a vu dans la section précédente qu'il y a une grande diversité d'architectures possibles pour les agents et que les concepts mêmes sur lesquels on conçoit nos agents peuvent être très différents. Les chercheurs ont proposé de nombreux langages pour la programmation des agents, chaque langage favorisant une vision particulière de la notion d'agent intelligent. On ne peut pas dire qu'il y ait actuellement un tel langage généralement accepté. Une place particulière dans le panorama est occupée par le langage de programmation qui a introduit l'approche de la programmation orientée agents. C'est ce langage qui va être présenté dans la section suivante.

Il faut aussi noter que, parfois, un langage de programmation agent est intégré dans une plate-forme multi-agent qui offre des bibliothèques de composants utiles pour l'implémentation des agents, des mécanismes qui facilitent la communication entre agents et des protocoles d'interaction. Les plates-formes multi-agents sont le sujet du chapitre 7 ci-dessous.


Langages concurrents orientés objets

Les langages concurrents orientés objets peuvent être considérés comme un premier pas vers la programmation des agents. Le langage le plus connu est le langage Actors, où on trouve des objets qui peuvent s'exécuter d'une manière concurrente. Comme dans la programmation orienté objets, un acteur, objet du langage, a un état interne qui n'est pas accessible de l'extérieur, et répond aux messages envoyés par d'autres acteurs. Le successeur le plus récent du langage Actors est le langage ABCL.


Langages concurrents formels pour la programmation des agents

Dans cette catégorie, le langage le plus représentatif est le langage Concurrent  METATEM. Ce langage est basé sur la logique temporelle et l'exécution d'un programme correspond en fait à l'exécution directe des formules de la logique temporelle.

Pour savoir plus sur la logique temporelle vous pouvez parcourir notre premier cours en ligne cours en ligne

Un système METATEM contient un certain nombre d'agents qui s'exécutent de manière concurrentielle, et qui peuvent communiquer par envoi de messages. Chaque agent est une structure qui contient deux composantes :

  • une interface qui spécifie l'interaction de l'agent avec l'environnement et avec les autres agents du système,
  • une composante d'exécution qui assure le fonctionnement de l'agent et qui est capable d'appliquer les inférences spécifiques de la logique temporelle.

Le comportement de l'agent est défini par des règles de production avec l'interprétation intuitive que si on a un certain passé, on doit construire un futur d'une certaine manière. Par exemple, si l'agent X a reçu dans le passé un message de l'agent Y qui lui demande un objet O alors X s'engage à donner O à Y dans le futur.


Langages pour les agents mobiles

Un des langages les plus connus pour développer des agents mobiles est le langage TELESCRIPT qui est, en même temps, le premier langage agents commercial. Ce langage utilise deux concepts principaux : les places et les agents. Les places sont des emplacements virtuels qui peuvent être occupés par les agents. Les agents sont des modules logiciels qui se déplacent d'une place à l'autre, et qui peuvent offrir ou demander des ressources ou des services.

Dans cette même catégorie, on mentionnera aussi le langage Agent-Tcl qui a été conçu comme un développement du langage Tcl ("Tool Communication Language") ; ce langage permet aux agents de se déplacer d'un ordinateur à l'autre et de communiquer entre eux par des messages.

Un autre langage bien connu pour la programmation des agents mobiles est le langage Aglets, conçu initialement par la compagnie IBM et qui est maintenant développé par la succursale IBM au Japon.

<< Section précédente Table de matières Section suivante >>

Politechnica University of Bucharest - 2002