Accession Number:

ADA355899

Title:

What is a Recursive Module?

Descriptive Note:

Corporate Author:

CARNEGIE-MELLON UNIV PITTSBURGH PA SCHOOL OF COMPUTER SCIENCE

Personal Author(s):

Report Date:

1998-10-01

Pagination or Media Count:

24.0

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 OCaml 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.

Subject Categories:

  • Numerical Mathematics
  • Computer Programming and Software

Distribution Statement:

APPROVED FOR PUBLIC RELEASE