Aller au contenu

Module (programmation)

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 22 août 2007 à 19:00 et modifiée en dernier par Nipou (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

Un module en programmation désigne un espace de nommage. Pour reprendre l'image de la programmation objet, un module est une instance unique qui n'utilise pas d'héritage et ne contient aucun module fils. Chaque module peut exporter ou importer certains symboles comme des variables, des fonctions ou des classes. Les modules peuvent se regrouper en package éventuellement hiérarchique.

Dans l'histoire de la programmation, la programmation modulaire succède à la programmation fonctionnelle et donnera naissance à la programmation orientée objet.

Typiquement quand on parle de programmation modulaire, on parle du C qui a utilisé ce principe pour, en particulier, scinder la compilation de projet. Dans ce cas, un module est identifié par un fichier de déclaration (en-têtes ou prototypes) et un fichier de description (définition ou code). On n'est plus obligé de recompiler l'ensemble d'un programme lorsque seuls quelques modules sont modifiés. Les fonctions et variables déclarées dans le fichier de déclaration sont publiques et peuvent être utilisées par n'importe quel autre module, il s'agit de l'interface du module. Les fonctions et variables déclarées dans le fichier de description sont privées et ne peuvent être utilisées que par ce module particulier.

En Java, on n'utilise généralement pas le terme de module, mais certains compilateurs permettent de déclarer plusieurs classes successives (sans imbrication) dans un même fichier. On peut alors considérer un fichier de code Java comme un module contenant un ensemble de classes.

Les langages Modula et Ada sont typiquement modulaires avec des instructions pour la gestion des modules. Le langage C/C++ est modulaire mais les instructions pour la gestion des modules se retrouvent dans un langage de prétraitement (dédié au préprocesseur). Le langage Objective Caml, qui repose essentiellement sur la programmation fonctionnelle et modulaire, propose un système de modules récursifs et paramétrables très puissant qui permet de fournir une grande généricité au code.