An approach to programming in which the program is broken into several independently compiled modules. Each module exports specified elements (such as constants, data types, variables, functions, and procedures); all other elements remain private to the module. Other modules can use only the exported elements. Modules clarify and regularize the interfaces among the major parts of a program. Thus, they facilitate group programming efforts and promote reliable programming practices. Modular programming is a precursor of object-oriented programming. See also module (definition 1), object-oriented programming.