Janvier 1996 – Journ´ ees Francophones des Langages Applicatifs – JFLA96 Programmation modulaire avec surcharge et liaison tardive Mar´ ıa-Virginia Aponte , Giuseppe Castagna 1: CEDRIC Conservatoire National des Arts et M´ etiers 292, rue St. Martin - 75003 Paris - France. e-mail: 2: CNRS DMI-LIENS. ´ Ecole Normale Sup´ erieure 45, Rue d’Ulm - 75005 Paris - France. e-mail: R´ esum´ e Les syst` emes de modules ` a la SML, tout en ´ etant tr` es g´ en´ eraux et puissants, n’autorisent qu’une forme limit´ ee de r´ eutilisation de code et de programmation incr´ ementale. Dans ce travail nous proposons une extension d’un syst` eme de modules ` a la SML qui incorpore surcharge et liaison tardive au langage des modules, et nous montrons les avantages de cette extension pour la programmation incr´ ementale, aboutissant ainsi ` a un style de programmation similaire ` a celui utilis´ e dans certains langages orient´ es objets. 1. Introduction Les syst` emes de modules ` a la SML [Mac85, MTH90] sont tr` es g´ en´ eraux et puissants. Ils permettent un d´ ecoupage modulaire des programmes et la d´ efinition de transformations (appel´ ees foncteurs) sur les modules mˆ emes (appel´ es structures). Toutefois, il n’autorisent qu’une forme tr` es limit´ ee de r´ eutilisation de code et de programmation incr´ ementale. Plus pr´ ecis´ ement, les modules ` a la SML ne poss` edent pas les caract´ eristiques d’h´ eritage et sp´ ecialisation de code qui ont fait le succ` es des langages ` a objets. Ce manque est p´ enalisant lorsqu’on veut faire ´ evoluer un programme. Ainsi, si ` a un moment de la vie du programme on d´ ecide d’ajouter des nou- velles fonctionnalit´ esend´ eclarant des nouvelles structures qui sp´ ecialisent celles d´ ej` a existantes, l’utilisation pour ces structures de foncteurs du programme ini- tial (avant sp´ ecialisation) reste valide. En revanche il est impossible d’affiner le comportement de ces foncteurs par la prise en compte des fonctionnalit´ es ajou- t´ ees. Ainsi, les nouvelles structures, soit utilisent les foncteurs d´ efinis pour les anciennes, soit en d´ efinissent des nouveaux qui leur sont propres et qui n’auront 1