Procedures as persistent data objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
The persistent store as an enabling technology for integrated project support environments
ICSE '85 Proceedings of the 8th international conference on Software engineering
Proceedings of an ACM conference on Language design for reliable software
Capsules: A data abstraction facility for Pascal
ACM '81 Proceedings of the ACM '81 conference
ACM SIGPLAN Notices
Toward type-oriented dynamic vertical migration
ACM SIGMICRO Newsletter
Hi-index | 0.00 |
It is currently popular to say that programming languages need “data abstraction facilities,” and to assert that the provision of such facilities would provide conceptual and practical advantages in the domain of data structures akin to the advantages provided by procedures in the domain of computational structures. This note explores some of the implications of this metaphor, without attempting to make it precise. I shall use the term capsule to refer to the data analog of procedure. [Those who are familiar with the SIMULA class, the CLU cluster, or the ALPHARD form, may use any of these as an approximation to capsule; I use a neutral term to avoid implying the details of any particular language.] First, what are the advantages provided by procedures (subroutines, functions, macros)? I can think of at least eight (highly interrelated) categories: 1) avoidance of repetition, 2) modular program structure, 3) a basis for structured programming, 4) conceptual units for understanding and reasoning about programs, 5) clearly defined interfaces that may be precisely specified, 6) units of maintenance and improvement, 7) a language extension mechanism, and 8) units for separate compilation. Let us consider each of these in turn.