Component Libraries and Language Features

  • Ehud Lamm
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2043)


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.


Software Component Software Reliability Language Feature Application Framework Component Library 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ada95 Language Reference Manual, 1995, ANSI/ISO/IEC 8652:1995Google Scholar
  2. 2.
    Ada95 Ada Issues, available from
  3. 3.
    Backhouse R., Jansson P., Jeuring J., Meertens L., Generic Programming — An Introduction, Lecture Notes in Computer Science 1608, Springer-Verlag, 1999Google Scholar
  4. 4.
    Bieman J. M., Zhoa J. X., Reuse through Inheritance: A Quantative Study of C++, 17th Intl. Conf. on Software Engineering, 1995Google Scholar
  5. 5.
    Booch G., Software Engineering in Ada, Benjamin/Cummings, 1983Google Scholar
  6. 6.
    Bosch J., Mitchell S. (Eds.) Object-Oriented Technology, ECOOP’97 Workshop Reader, Lecture Notes in Computer Science 1357, Springer-Verlag, 1997Google Scholar
  7. 7.
    Canning P. S., Cook W. R., Hill W. L. and Olthoff W. G., Interface for Strongly-Typed Object-Oriented Programming, OOPSLA’89Google Scholar
  8. 8.
    Cook W. R., Hill, W. L., Canning P. S., Inheritance is Not Subtyping, POPL’90, 1990Google Scholar
  9. 9.
    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 Google Scholar
  10. 10.
    Day M., Gruber R., Liskov B., Myers A. C., Subtypes vs. Where Clauses: Constraining Parameteric Polymorphism, OOPSLA’95Google Scholar
  11. 11.
    De Volder K., De Meuter W., Type Oriented Programming, ECOOP’97. In [6]Google Scholar
  12. 12.
    Gamma E., Helm R, Johnson R., Vlissides J., Design Patterns, Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995Google Scholar
  13. 13.
    Gil J., Lorenz D. H, Design Pattens vs. Language Design, ECOOP’97. In [6]Google Scholar
  14. 14.
    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, 1999Google Scholar
  15. 15.
    Hopkins J., Component Primer, CACM, Vol. 43,No. 10, 2000Google Scholar
  16. 16.
    Hortsmann C. S., Cornell G., Core Java, Volume I–Fundamentals, Sun Microsystems Press, 1999Google Scholar
  17. 17.
    Hughes J., Why Functional Programming Matters, in D. Turner, editor, Research Topics in Functional Programming, Addison-Wesley, 1990Google Scholar
  18. 18.
    Hutton G., A Tutorial on the Universality and Expressiveness of Fold, J. Functional Programming, 1, 1993Google Scholar
  19. 19.
    Kernighan B. W., Ritchie D. M., The C Programming Language, second edition, Prentice Hall, 1988Google Scholar
  20. 20.
    Kiczales G., Lamping J., Issues in the Design and Specification of Class Libraries, OOPSLA’92, 1992Google Scholar
  21. 21.
    Kiczales G., Towards a New Model of Abstraction in Software Engineering, IMSA’92 Workshop on Reflection and Meta-level Architectures, 1992Google Scholar
  22. 22.
    Lamm E. Building Frameworks in Ada95, Ada-Belgium’99, Ada-Belgium Newsletter, Vol. 7, 1999Google Scholar
  23. 23.
    Lamm E. The Little Abstractionist–A Cacaphony of Abstractions in Ada, unpublished manuscriptGoogle Scholar
  24. 24.
    Lamping J., Typing the Specialization Interface, OOPSLA’93, 1993Google Scholar
  25. 25.
    Liskov B., Guttag J., Abstraction and Specification in Program Development, MIT Press, 1986Google Scholar
  26. 26.
    Liskov B., A History of CLU, ACM SIGPLAN Notices, Vol. 28,No. 3, 1993Google Scholar
  27. 27.
    Maes P., Concepts and Experiments in Computational Reflection, OOPSLA’87, ACM SIGPLAN Notices, Vol. 22,No. 12, 1987Google Scholar
  28. 28.
    Martin R. C., The Open-Closed Principle, C++ Report, January, 1996Google Scholar
  29. 29.
    Meyer B., Obejct Oriented Software Construction 2nd edition, Prentice Hall, 1997Google Scholar
  30. 30.
    Meyers S., Effective C++, Second Edition, Addison-Wesley, 1997Google Scholar
  31. 31.
    Mitchell J. C., Plotkin G. D., Abstract Types Have Existential Type, ACM TOPLAS Vol. 10,No. 3, 1988Google Scholar
  32. 32.
    Parnas D. L., On the Criteria To Be Used in Decomposing Systems into Modules, CACM, Vol. 15,No. 12, 1972Google Scholar
  33. 33.
    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
  34. 34.
    Sethi R. Programming Languages–Concepts and Constructs, Addison-Weseley, 1996Google Scholar
  35. 35.
    Shen J., Cormak G. V., Automatic Instantation in Ada, Annual International Conference on Ada, 1991Google Scholar
  36. 36.
    Sobel J. M., Friedman D. P., An Introduction to Reflection-Oriented Programming, Reflection’96, 1996Google Scholar
  37. 37.
    Sparling M., Lessons Learned–through six years of component based development, CACM, Vol. 43,No. 10, 2000Google Scholar
  38. 38.
    Wadler P. L., Blott S., How to Make Ad-Hoc Polymorphism Less Ad Hoc, POPL’89, 1989Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Ehud Lamm
    • 1
  1. 1.Max Rowe Educational CenterThe Open University of IsraelTel-AvivIsrael

Personalised recommendations