Module (programmation) - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs est disponible ici.

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

Page générée en 0.005 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise