Towards a Notion of Module for Data Abstraction
Volpano, Dennis M.
Traditionally, programming languages support data abstraction through some kind of module construct for partitioning large systems into manageable units. These constructs typically control access to data since program decomposition is usually guided by information hiding. As mechanisms for encapsulating implementations of data types, however, such constructs are too inflexible. Substituting one implementation (module) for another, in a client, may require the client to be revised for reasons related to representation. A more flexible notion of module is presented that is designed solely for the purpose of encapsulating implementations of data types. D.3 [Software]: Programming Languages; D.3.2 [Programming Languages]: Language Classifications - applicative languages; D.3.3 [Programming Languages]: Language Constructs - abstract data types, modules, packages; D.3.4 [Programming Languages]: Processors - compilers; F.3 [Theory of Computation]: Logics and Meanings of Programs; F.3.3 [Logics and Meanings of Programs]: Studies of Program Constructs - type structure. Additional Key Words and Phrases: representation independence, modules, functional programming, types.
computer science; technical report
Previously Published As