A form of Modularisation where modules are compiled separately into linkable files that are combined in a single executable.
A header (AKA signature) file contains information that allows a program, that uses the module, to type-check and be compiled independently of the module.
Examples
In C
file.cis a module file.file.his a header file.
file.ois a linkable file.
In F#
file.fsis a module file.file.fsiis a signature file.file.dllis a linkable file.