Cet article aborde le défi technique que représente la programmation du comportement adaptatif collectif de dispositifs informatiques distribués, denses et multi-échelles, dans des environnements variés, résultant de tendances récentes telles que l'Internet des objets (IoT). Pour cela, nous avons besoin d'une abstraction capable de capturer des concepts tels que les ensembles, qui sont des groupes dynamiques de dispositifs coopérants, et les tâches collectives, qui sont les opérations conjointes effectuées par l'ensemble. Dans cet article, nous considérons un ensemble de dispositifs interagissant avec leurs voisins et exécutant des cycles quasi synchronisés d'interaction détection-calcul. Ici, le calcul est assuré par un programme unique qui mappe les valeurs de détection et les messages entrants aux messages de sortie et sortants. Pour programmer l'ensemble de calcul, nous proposons une abstraction appelée processus collectif distribué, qui permet de définir simultanément la logique de formation de l'ensemble et la tâche collective. Cette abstraction est formalisée en eXchange Calculus (XC), un langage fonctionnel de base basé sur les valeurs de voisinage (mise en correspondance des voisins avec les valeurs), et implémentée dans le langage FCPP. Nous expérimentons ensuite le processus d'agrégation distribuée à l'aide de deux études de cas : la propagation de messages multi-sauts et la surveillance distribuée des propriétés spatiales. Enfin, nous discutons des caractéristiques de l'abstraction et de son adéquation à différents types d'applications informatiques distribuées.