MODULARITY (PROGRAMMING)
(Redirected from Module (programming))
'Modularity' is a concept that has applications in the contexts of computer science, particularly programming, as well as cognitive science in investigating the structure of mind. A 'module' can be defined variously, but generally must be a component of a larger system, and operate within that system independently from the operations of the other components.
Modules provide a separation between interface and implementation. 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. Languages that explicitly support the module concept include Ada, D, F, Fortran, Pascal (some derivatives), ML, Modula-2, Python and Ruby. The IBM System i (aka AS/400 and iSeries) also uses Modules in RPG, COBOL and CL when programming in the ILE environment.
The differences between classes and modules are:
★ 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.
The similarities between classes and modules are:
★ Both can be used to hide implementation details from public view.
★ Both can form a hierarchy of modules/classes.
'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.
'Modularity' is the property of computer programs that measures the extent to which they have been composed out of separate parts called modules. A modular approach to programming is gaining popularity in fields of artificial intelligence systems integration, where a large-scale general A.I. system is composed of modules that each serve a specific purpose and communicate with each other to produce the system's overall behavior.
Programs that have many direct interrelationships between any two random parts of the program code are less 'modular' (more tightly coupled) than programs where those relationships occur mainly at well-defined interfaces between modules.
'Modular programming' techniques are those which increase modularity. (See also: modular programming, structured programming, procedural programming, object-oriented programming and aspect-oriented programming, distributed computing.)
★ Guimerá, R. & L.A. Nunes Amaral (2005). ''Functional Cartography of Complex Metabolic Networks''. Nature, '433': 895-900.
★ Yang, A.S. (2001). ''Modularity, Evolvability and Adaptive Radiations''. Evolution and Development, '3':2, 59-72.
★ Modular programming
★ Cognitive Science
★ Cohesion
★ Coupling
★ Encapsulation
★ Library (computing)
★ David Parnas
★ Ilities
★ Modularity of mind
★ Philosophy of mind
★ Constructionist design methodology. A methodology for creating modular, broad A.I. systems.
★ Environment Modules
'Modularity' is a concept that has applications in the contexts of computer science, particularly programming, as well as cognitive science in investigating the structure of mind. A 'module' can be defined variously, but generally must be a component of a larger system, and operate within that system independently from the operations of the other components.
Modules provide a separation between interface and implementation. 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. Languages that explicitly support the module concept include Ada, D, F, Fortran, Pascal (some derivatives), ML, Modula-2, Python and Ruby. The IBM System i (aka AS/400 and iSeries) also uses Modules in RPG, COBOL and CL when programming in the ILE environment.
| Contents |
| Modules and classes |
| Module Interconnection Languages (MILs) |
| Modularity in Computer Science |
| Works Cited |
| See also |
| External links |
Modules and classes
The differences between classes and modules are:
★ 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.
The similarities between classes and modules are:
★ Both can be used to hide implementation details from public view.
★ Both can form a hierarchy of modules/classes.
Module Interconnection Languages (MILs)
'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.
Modularity in Computer Science
'Modularity' is the property of computer programs that measures the extent to which they have been composed out of separate parts called modules. A modular approach to programming is gaining popularity in fields of artificial intelligence systems integration, where a large-scale general A.I. system is composed of modules that each serve a specific purpose and communicate with each other to produce the system's overall behavior.
Programs that have many direct interrelationships between any two random parts of the program code are less 'modular' (more tightly coupled) than programs where those relationships occur mainly at well-defined interfaces between modules.
'Modular programming' techniques are those which increase modularity. (See also: modular programming, structured programming, procedural programming, object-oriented programming and aspect-oriented programming, distributed computing.)
Works Cited
★ Guimerá, R. & L.A. Nunes Amaral (2005). ''Functional Cartography of Complex Metabolic Networks''. Nature, '433': 895-900.
★ Yang, A.S. (2001). ''Modularity, Evolvability and Adaptive Radiations''. Evolution and Development, '3':2, 59-72.
See also
★ Modular programming
★ Cognitive Science
★ Cohesion
★ Coupling
★ Encapsulation
★ Library (computing)
★ David Parnas
★ Ilities
★ Modularity of mind
★ Philosophy of mind
★ Constructionist design methodology. A methodology for creating modular, broad A.I. systems.
External links
★ Environment Modules
This article provided by Wikipedia. To edit the contents of this article, click here for original source.
psst.. try this: add to faves

العربية
中国
Français
Deutsch
Ελληνική
हिन्दी
Italiano
日本語
Português
Русский
Español