module

1. An independent piece of software which
forms part of one or more larger programs. Different
languages have different concepts of a module but there are
several common ideas.

Modules are usually compiled seperately (in compiled
languages) and provide an abstraction or information hiding
mechanism so that a module's implementation can be changed
without requiring any change to other modules. In this
respect they are similar to objects in an object-oriented
language, though a module may contain many procedures
and/or functions which would correspond to many objects.

A module often has its own name space for identifiers so
the same identifier may be used to mean different things in
different modules.