Jump to content

Module (programming)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 84.160.235.153 (talk) at 07:08, 28 June 2005. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computing, a module is a software entity that groups a set of (typically cohesive) subprograms and data structures. Modules promote encapsulation (i.e. information hiding) through a separation between the interface and the implementation.

The module interface expresses the elements that are provided and required by the module. The elements defined in the interface are visible to other modules. The implementation contains the working code that corresponds to the elements declared in the interface.

Modules are units that can be compiled separately. This makes them reusable and allows multiple actors to work on different modules simultaneously.

Differences between classes and modules are the following:

  • Classes can be instantiated to create objects,
  • Classes can inherit behavior and data from another class,
  • Polymorphism allows relationships between class instances to change at run-time, while relations between modules are static.

Languages that explicitly support the module concept include Ada, D, F, Fortran, Haskell, ML and Modula-2.

Module Interconnection Languages (MILs) provide formal grammar constructs for deciding the various module interconnection specifications required to assemble a complete software system. MILs enable the separation between programming-in-the-small and programming-in-the-large. Coding a module represents programming in the small, while assembling a system with the help of a MIL represents programming in the large. An example of MIL is MIL-75.

See also