What is a Recursive Module?
Abstract
Hierarchical decomposition is a fundamental design principle for controlling the complexity of large programs. According to this principle a software system is to be decomposed into a collection of modules whose dependency relationships form a directed, acyclic graph. Most modern programming languages include module systems that support hierarchical decomposition. Many, such as Standard ML 13 and O'Caml 12, also support parameterized, or generic, modules to better support code re-use. There is no question that hierarchical design is an important tool for structuring large systems. It has often been noted, however, that strict adherence to a hierarchical architecture can preclude the decomposition of a system into "mind-sized" components. In some situations the natural decomposition of a system into modules introduces cyclic dependencies, which cannot be expressed in a purely hierarchical formalism. The only solution is to consolidate mutually-dependent fragments into a single module, which partially undermines the very idea of modular organization.
Document Details
- Document Type
- Technical Report
- Publication Date
- Oct 01, 1998
- Accession Number
- ADA355899
Entities
People
- Karl Crary
- Robert Harper
- Sidd Puri
Organizations
- Carnegie Mellon University