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.

Open PDF

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

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Abstracts
  • Calculus
  • Compilers
  • Computer Programming
  • Computer Science
  • Computers
  • Decomposition
  • Equations
  • Identities
  • Inspection
  • Language
  • Observation
  • Programming Languages
  • Recursive Functions
  • Splitting
  • Standards

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Graph Algorithms and Convex Optimization.
  • Software Engineering.