Aller au contenu

Module (programmation)

Un article de Wikipédia, l'encyclopédie libre.

Unmoduledésigne originellement un fichier de code de programmation ou un fichier debibliothèquestatique ou dynamique.

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 enpackage(espace de noms) éventuellement hiérarchique.

Dans l'histoire de la programmation, laprogrammation modulairesuccède à laprogrammation procéduraleet donnera naissance à laprogrammation orientée objet.

Quand on parle de programmation modulaire on parle duCqui a utilisé, en premier lieu, ce principe pour 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[1].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.

EnJava,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.

EnPython,chaque fichier peut être considéré comme un module à partir du moment où le fichier l'important se trouve dans le même répertoire que le module, autrement il sera impossible de l'importer.

Les langagesModulaetAdasont 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 langageObjective Caml,qui repose essentiellement sur la programmationfonctionnelleetmodulaire,propose un système de modules récursifs et paramétrables très puissant qui permet de fournir une grandegénéricitéau code.

Notes et références

[modifier|modifier le code]