Actors
Version 1.1
(C) J. Ferber - 2005
Description
JActor est un environnement minimal pour décrire des calculs en
utilisant le formalisme des acteurs. De plus, la technique d'implémentation
de ces acteurs constituent une bonne introduction à MadKit.
JActor est un environnement d'aide à la compréhension de la programmation
par acteurs. Il ne cherche pas à être réellement performant, mais sa simplicité
a le mérite de montrer comment on peut programmer simplement des acteurs.
Télécharger l'archive de JActor
Documentation sur l'usage de JActor.
Les langages d'acteurs
Cette partie est issue de la section 5.2 de ma thèse d'état intitulée:
Objets et Agents: une étude des structures de représentation
et de communication en Intelligence Artificielle, Université Paris
6, Juin 1989. Quelques éléments ont été mis à
jours. Ils font l'objet d'une marque spéciale.
Historique
Les langages d'acteurs ont une longue histroire derrière eux. Initialement
créés par Hewitt dès 1973 {{ref}}, ils ont véritablement
été rendus publics vers 1976 avec l'article initiateur "Viewing
control structures as patterns of passing messages" [Hewitt 1976], qui
développait une certaine conception des prorgammes conçus comme
des sociétés de spécialistes qui résolvent un problème
en communiquant par envois de messages. A cet effet, Hewitt montrait que son
modèle d'exécution permettait de considérer les structures
de contrôles des langages traditionnels comme des schémas (patterns)
de communications entre entités autonomes appelées acteurs.
A partir de cette date, les travaux dans le domaine des acteurs ont suivi trois
voies différentes:
- La première correspond à une lecture de premier degré
de l'article de Hewitt, qui y présentait un langage de programmation
Plasma, fondé sur le socncepts d'autonomie et d'envois de messages.
Il s'agissait de comprendre et d'implémenter des interprètes
efficaces de ce langage. Cest à cette tâche que s'est attelée
une équipe de recherc de l'université de Paul Sabatier à
Toulouse autour d'abord de J. L. Durieux [Durieux 81], puis de {{ref}}, et
à Paris dans la mouvance de P. Greussay [Greussay 77][Cointe 81]. Plusieurs
interprètes et de nombreuses machines virtuelles ont permis de disposer
de programmes "grandeur nature". Cependant, disposant maintenant
du recul nécessaire, on peut comprendre pourquoi cette approche ne
pouvait finalement aboutir: à l'époque, Plasma était
un langage séquentiel, alors que tous les concepts qu'il introduisait
ne pouvaient prendre leur intérêt que dans un mode d'exécution
parallèle. A partir de cette constatation deux routes s'ouvraient:
- Eliminer tous les concepts non-essentiels à une implémentation
séquentielle, débroussailler la syntaxe de plasma (plutôt
touffue,..) et définir un langage pratique dont la sémantique
soit bien définie. Le résultat produisit Scheme [Abelson et
al.86] qui dispose de récursivité terminale, de fonctions considérées
comme des éléments de première classe et implémentées
comme des fermetures, de la portée lexicale et de l'accès à
la continuation (globale) du calcul.
- Introduire le parallélisme dans le langage, ce que fit notamment
Patrick Sallé à Toulouse.