Les systèmes à prototypes sont utilisés aussi bien en représentation des connaissances, dans les langages de frames, qu'en programmation avec les langages à prototypes apparus vers la fin des années 80. La programmation par prototype est caractérisée par un mécanisme d'héritage différent (la délégation) de celui des langages à classes et par l'absence possible des dites classes.
Initié dans l'équipe RXF/LITP par Pierre Cointe, ce projet est maintenant
mené en collaboration entre l'EMN, le LIRMM et l'équipe de Jacques
Malenfant à l'Université de Montréal.
Il a pour objectifs:
(1) de mieux comprendre la programmation sans classes,
(2) de fournir une (ou des) sémantique(s) précise(s) au mécanisme de
délégation et
de ses bonnes utilisations, savoir s'il est caractéristiques des objets
sans classes ou s'il peut s'intégrer, et si oui comment, à n'importe
quel sorte de langage à objets.
(3) d'expliciter, à partir de cette étude, les différences fondamentales entre les différents paradigmes de programmation par objets que sont la programmation par classes, par frame et par prototypes (comme par exemple Garnet, Kevo, Self ou Yafool), auxquels on peut ajouter la programmation par acteurs qui présente des similitudes avec la programmation par prototype si on fait abstraction de l'aspect parallélisme.
4) d'utiliser les langages sans classes (plus simple) comme support à l'étude des langages à objets réflexifs.