Abstract
One major vehicle for reuse is the use of libraries of code. Reusability is the prime route to software reliability. In this work, we will use the term software component in its widest sense, including all kinds of self-contained libraries of code, including collection libraries, APIs (bindings), application frameworks etc. Abstraction boundaries are essential both for reuse and for reliability. We study language features that help overcome limitations imposed by abstraction boundaries (e.g., incomplete interfaces) without completely breaking abstraction. Language features discussed: type sytem features, object orientation, genericity and reflection.
The work presented is work in progress, preliminary results and observations will be shown and discussed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ada95 Language Reference Manual, 1995, ANSI/ISO/IEC 8652:1995
Ada95 Ada Issues, available from http://www.ada-auth.org/acats/ais.html
Backhouse R., Jansson P., Jeuring J., Meertens L., Generic Programming — An Introduction, Lecture Notes in Computer Science 1608, Springer-Verlag, 1999
Bieman J. M., Zhoa J. X., Reuse through Inheritance: A Quantative Study of C++, 17th Intl. Conf. on Software Engineering, 1995
Booch G., Software Engineering in Ada, Benjamin/Cummings, 1983
Bosch J., Mitchell S. (Eds.) Object-Oriented Technology, ECOOP’97 Workshop Reader, Lecture Notes in Computer Science 1357, Springer-Verlag, 1997
Canning P. S., Cook W. R., Hill W. L. and Olthoff W. G., Interface for Strongly-Typed Object-Oriented Programming, OOPSLA’89
Cook W. R., Hill, W. L., Canning P. S., Inheritance is Not Subtyping, POPL’90, 1990
Daly J., Brooks A., Miller J., Roper M., Wood M., An Empirical Study Evaluating Depth of Inheritance on the Maintainability of Object-Oriented Software, research report EFoCS-10-95, Department of Computer Science, University of Strathclyde, Glasgow 1995, available from http://www.cs.strath.ac.uk/research/EFOCS/abstracts.html
Day M., Gruber R., Liskov B., Myers A. C., Subtypes vs. Where Clauses: Constraining Parameteric Polymorphism, OOPSLA’95
De Volder K., De Meuter W., Type Oriented Programming, ECOOP’97. In [6]
Gamma E., Helm R, Johnson R., Vlissides J., Design Patterns, Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995
Gil J., Lorenz D. H, Design Pattens vs. Language Design, ECOOP’97. In [6]
Harrison R., Counsell S., Nithi R., Experimental Assessment of the Effect of Inheritance on the Maintainability of Object-Oriented Systems, 3rt Intl. Conf. on Empirical Assessment and Evaluation in Software Engineering, 1999
Hopkins J., Component Primer, CACM, Vol. 43,No. 10, 2000
Hortsmann C. S., Cornell G., Core Java, Volume I–Fundamentals, Sun Microsystems Press, 1999
Hughes J., Why Functional Programming Matters, in D. Turner, editor, Research Topics in Functional Programming, Addison-Wesley, 1990
Hutton G., A Tutorial on the Universality and Expressiveness of Fold, J. Functional Programming, 1, 1993
Kernighan B. W., Ritchie D. M., The C Programming Language, second edition, Prentice Hall, 1988
Kiczales G., Lamping J., Issues in the Design and Specification of Class Libraries, OOPSLA’92, 1992
Kiczales G., Towards a New Model of Abstraction in Software Engineering, IMSA’92 Workshop on Reflection and Meta-level Architectures, 1992
Lamm E. Building Frameworks in Ada95, Ada-Belgium’99, Ada-Belgium Newsletter, Vol. 7, 1999
Lamm E. The Little Abstractionist–A Cacaphony of Abstractions in Ada, unpublished manuscript
Lamping J., Typing the Specialization Interface, OOPSLA’93, 1993
Liskov B., Guttag J., Abstraction and Specification in Program Development, MIT Press, 1986
Liskov B., A History of CLU, ACM SIGPLAN Notices, Vol. 28,No. 3, 1993
Maes P., Concepts and Experiments in Computational Reflection, OOPSLA’87, ACM SIGPLAN Notices, Vol. 22,No. 12, 1987
Martin R. C., The Open-Closed Principle, C++ Report, January, 1996
Meyer B., Obejct Oriented Software Construction 2nd edition, Prentice Hall, 1997
Meyers S., Effective C++, Second Edition, Addison-Wesley, 1997
Mitchell J. C., Plotkin G. D., Abstract Types Have Existential Type, ACM TOPLAS Vol. 10,No. 3, 1988
Parnas D. L., On the Criteria To Be Used in Decomposing Systems into Modules, CACM, Vol. 15,No. 12, 1972
Prechelt L., Unger B., Philippsen M., Tichy W. F., A Controlled Experiment on Inheritance Depth as a Cost Factor for Maintenance, submmited to IEEE Trans. on Software Engineering, March 200, Available from http://wwwipd.ira.uka.de/EIR/
Sethi R. Programming Languages–Concepts and Constructs, Addison-Weseley, 1996
Shen J., Cormak G. V., Automatic Instantation in Ada, Annual International Conference on Ada, 1991
Sobel J. M., Friedman D. P., An Introduction to Reflection-Oriented Programming, Reflection’96, 1996
Sparling M., Lessons Learned–through six years of component based development, CACM, Vol. 43,No. 10, 2000
Wadler P. L., Blott S., How to Make Ad-Hoc Polymorphism Less Ad Hoc, POPL’89, 1989
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lamm, E. (2001). Component Libraries and Language Features. In: Craeynest, D., Strohmeier, A. (eds) Reliable SoftwareTechnologies — Ada-Europe 2001. Ada-Europe 2001. Lecture Notes in Computer Science, vol 2043. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45136-6_17
Download citation
DOI: https://doi.org/10.1007/3-540-45136-6_17
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42123-8
Online ISBN: 978-3-540-45136-5
eBook Packages: Springer Book Archive