Hierarchical modularity

Matthias Blume, Andrew W. Appel

Research output: Contribution to journalArticle

39 Scopus citations

Abstract

To cope with the complexity of very large systems, it is not sufficient to divide them into simple pieces because the pieces themselves will either be too numerous or too large. A hierarchical modular structure is the natural solution. In this article we explain how that approach can be applied to software. Our compilation manager provides a language for specifying where individual modules fit into a hierarchy and how they are related semantically. We pay particular attention to the structure of the global name space of program identifiers that are used for module linkage because any potential for name clashes between otherwise unrelated parts of a program can negatively affect modularity. We discuss the theoretical issues in building software hierarchically, and we describe our implementation of CM, the compilation manager for Standard ML of New Jersey.

Original languageEnglish (US)
Pages (from-to)813-847
Number of pages35
JournalACM Transactions on Programming Languages and Systems
Volume21
Issue number4
DOIs
StatePublished - Jul 1999

All Science Journal Classification (ASJC) codes

  • Software

Keywords

  • Compilation management
  • D.2.2 [Software Engineering]: Tools and Techniques -Modules and interfaces
  • D.3.3 [Programming Languages]: Language Constructs and Features - Modules
  • Design
  • Languages
  • Linking
  • Management
  • Modularity
  • Modules
  • Packages

Fingerprint Dive into the research topics of 'Hierarchical modularity'. Together they form a unique fingerprint.

  • Cite this