Abstract
It is often asserted that our ability to reuse programs is limited primarily by the power of programming language abstraction mechanisms. We argue that, on the basis of performance considerations, this is just not the case in practice—these “generalization” mechanisms must be complemented by techniques to adapt the generalized structures to specific applications. Based on this argument, we consider a view of programming experience as a network of programs that are generalizations and specializations on one another and that are interconnected by appropriate program derivation fragments. We support this view with a number of examples. These examples illustrate the important role of abstract data type boundaries in program derivation.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
Bibliography
Balzer, R., T.E. Cheatham, Jr., and C.C. Green, Software Technology in the 1990's: Using a New Paradigm. IEEE Computer, vol. 16, no. 11, pp. 39–45, November 1983.
Bauer, et al., The Munich Project CIP, Volume 1. Springer-Verlag, 1985.
Boyle, J.M. and M.N. Muralidharan, Program Reusability through Program Transformation. IEEE Transactions on Software Engineering SE-10, No. 5, September, 1984.
Cheatham, T.E., Reusability Through Program Transformations. IEEE Transactions on Software Engineering SE-10, No. 5, September, 1984.
Dietzen, S.R. and W.L. Scherlis, Analogy in Program Development. Second Conference on the Role of Language in Problem Solving. North-Holland, 1986. To appear.
Green, C.C. et al, Report on a Knowledge Based Software Assistant. Kestrel Institute Report, 1983.
Guttag, J.V., J.J. Horning, and J.M. Wing, Larch in Five Easy Pieces. DEC SRC Technical Report, 1985.
Kernighan, B.W., The Unix System and Software Reusability. IEEE Transactions on Software Engineering SE-10, No. 5, September, 1984.
Jorring, U. and W.L. Scherlis, Compilers and Staging Transformations. Thirteenth POPL Conference, 1986.
Jorring, U. and W.L. Scherlis, Deriving and Using Destructive Data Types. IFIP TC2 Working Conference on Program Specification and Transformation, North-Holland, 1986.
Neighbors, J.M., The Draco Approach to Constructing Software from Reusable Components. IEEE Transactions on Software Engineering SE-10, No. 5, September, 1984.
Rich, C., A Formal Representation for Plans in the Programmer's Apprentice. Seventh IJCAI Proceedings, pp. 1044–1052, 1981.
Scherlis, W.L., Program Improvement by Internal Specialization. Eighth POPL, pp. 41–49, 1981.
Scherlis, W.L. and D.S. Scott, First Steps Towards Inferential Programming. IFIP Congress 83, pp. 199–212, North-Holland, 1983.
Scherlis, W.L., Software Development and Inferential Programming. In Program Transformation and Programming Environments, edited by P. Pepper, Springer-Verlag, pp. 341–346, 1983.
Scherlis, W.L., Adapting Abstract Data Types. Carnegie Mellon Technical Report, 1985.
Wile, D.S., Type Transformations. IEEE Transactions on Software Engineering SE-7, pp. 32–39, January 1981.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Scherlis, W.L. (1987). Abstract data types, specialization, and program reuse. In: Conradi, R., Didriksen, T.M., Wanvik, D.H. (eds) Advanced Programming Environments. Lecture Notes in Computer Science, vol 244. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-17189-4_112
Download citation
DOI: https://doi.org/10.1007/3-540-17189-4_112
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-17189-8
Online ISBN: 978-3-540-47347-3
eBook Packages: Springer Book Archive