Participants : Daniel Le Métayer
Deux techniques principales ont été étudiées pour l'analyse de programmes déclaratifs : l'interprétation abstraite et la synthèse de types non standards.
Nous avons montré qu'il est possible de dériver de manière systématique les algorithmes traditionnels d'analyse par interprétation abstraite à partir de la spécification sous forme de système de types, dressant ainsi un pont entre les deux techniques. Ce résultat nous a ensuite conduit à proposer un nouvel algorithme de synthèse de types complet et efficace pour le système d'inférence considéré. Il procède par inférence de types paresseux, calculant les types des sous-expressions à la demande, ce qui lui confère un avantage majeur sur la mise en oeuvre traditionnelle de l'interprétation abstraite [6]. Celle-ci peut être vue comme un moyen de calculer systématiquement le type complet d'une expression (conjonction de tous les types possédés par l'expression). Il s'avère que le type complet d'une sous-expression est rarement nécessaire. L'algorithme d'inférence de types paresseux a été implanté et se révèle en effet plus efficace, en moyenne, que les autres analyseurs connus. Ce travail s'effectue en collaboration avec C. Hankin d'Imperial College.