1. L'objectif
2. La réponse
4. L'état de la science dans le domaine
6. Le choix de la Représentation Interne
8. La référence
L'élément essentiel qui a guidé les travaux est la constatation suivante : un programme informatique, exprimé à l'aide d'un langage informatique, a le fâcheux trait de comporter un grand nombre de répétitions : répétitions de texte, de traitements, d'identificateurs. La définition même des langages modernes – typés, à structure de bloc – nécessite à l'introduction d'un concept une répétition ; d'un part on déclare l'objet, d'autre part on l'utilise. Le lien sémantique entre la déclaration et l'utilisation d'un même concept est très généralement réalisé par la reconnaissance lexicale d'un identificateur ; c'est le « paradigme DESIGNER », une des « étapes élémentaires » dans l'analyse d'un programme [Gra 86].
Ces répétitions ne s'arrêtent pas aux seuls identificateurs : on peut avoir des répétitions sur les traitements, mais celles-ci sont alors plus difficiles à détecter, et plus encore à expliciter, parce que ces traitements ne travaillent pas nécessairement sur les mêmes structures de données. On introduit alors la notion de généricité qui permet de définir un traitement sur un type d'objet auquel on ne demande qu'un nombre minimal de propriétés. C'est ainsi qu'on procède dans la « méthode Jackson » : on définit le traitement, sans préciser la structure exacte des objets qu'on manipule ; puis on instancie ces traitements par le choix d'une structure de données complètement définie [Cam 86]. C'est aussi un des points essentiels de la Méthode Orientée Objet proposée par G. Booch [Boo 86]. La généricité ne résout cependant pas totalement le problème : on réintroduit en effet des répétitions par la définition des paramètres de généricité, formels et effectifs ; on est en plus relativement limité dans le choix du langage de programmation.
La question est de savoir si l'on peut éviter les répétitions dans un texte source, le but n'étant pas de s'économiser des efforts inutiles mais de conserver son programme sous une forme lisible et maintenable.