Modular programming is a software design technique that increases the extent to which software is composed from separate parts, called modules. Conceptually, modules represent a separation of concerns, and improve maintainability by enforcing logical boundaries between components. In Computer science, separation of concerns ( SoC) is the process of breaking a Computer program into distinct features that overlap in functionality as In Software testing, based on the definition given in ISO 9126, the ease with which a software product can be modified in order to correct defects meet Modules are typically incorporated into the program through interfaces. Interface generally refers to an abstraction that an entity provides of itself to the outside A 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. Implementation is the realization of an application or execution of a Plan, idea Model, Design, Specification, standard, Algorithm
Languages that formally support the module concept include Ada, D, F, Fortran, Pascal (some derivatives), ML, Modula-2, Erlang, Python and Ruby. Ada is a structured, Statically typed, imperative, and object-oriented high-level computer Programming language The D programming language, also known simply as D, is an object-oriented, imperative, multiparadigm System programming language F is a compiled, structured, array programming language especially well suited to education and scientific computing Fortran (previously FORTRAN) is a general-purpose, procedural, imperative Programming language that is especially suited to Pascal is an influential imperative and procedural Programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small ML is a general-purpose Functional programming language developed by Robin Milner and others in the late 1970s at the University of Edinburgh, whose syntax Modula-2 is a computer Programming language invented by Niklaus Wirth at ETH, around 1978 as a successor to his intermediate language Modula Erlang is a general-purpose concurrent Programming language and Runtime system Python is a general-purpose High-level programming language. Its design philosophy emphasizes programmer productivity and code readability Ruby is a dynamic, reflective, general purpose Object-oriented programming language that combines syntax inspired by Perl with Smalltalk The IBM System i (aka AS/400 and iSeries) also uses Modules in RPG, COBOL and CL when programming in the ILE environment.
Modular programming can often be performed even where the language lacks explicit syntax or semantics to support modules. The use of libraries hooked together by a linker are a common mechanism for separating parts of the software into distinct modules. In Computer science, a library is a collection of Subroutines used to develop Software.
Module Interconnection Languages (MILs) provide formal grammar constructs for deciding the various module interconnection specifications required to assemble a complete software system. In Formal semantics, Computer science and Linguistics, a formal grammar (also called formation rules) is a precise description of a Formal MILs enable the separation between programming-in-the-small and programming-in-the-large. In computer science terms programming in the small deals with short-lived programmatic behavior often executed as a single ACID transaction and which allows access to local In Software development, programming in the large can involve programming by larger groups of people or by smaller groups over longer time periods 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.