Skip to main content

Implicit First Class Genericity

  • Conference paper
Software Composition (SC 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5634))

Included in the following conference series:

  • 266 Accesses

Abstract

While software systems are growing bigger, and the market demands shorter software production cycles, IT companies need more and more extensive reuse of existing components. Additionally, sophisticated reuse scenarios demand flexible components which are able to adapt to different needs. As a result, it is required that all the components are as customizable as possible. In object-oriented (OO) programming languages, the base tool of reuse and customization is inheritance, which is widely known and exploited, however shows its limits when it comes to reuse nested components, which implement their behaviour using other classes instantiated internally. In this paper we present a new proposal that offers a feature for replacing a class with a compatible subclass within a library without the need of modifying its sources. As a result, it increases the possible reuse and the customization scenarios of existing components, with little additional coding required. Our idea is presented as an extension of an arbitrary OO language, however it is studied in more details as an extension of Java called ImpliJava.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Delphi Language Guide. Borland Software Corporation (2004)

    Google Scholar 

  2. Allen, E., Bannet, J., Cartwright, R.: A first-class approach to genericity. In: Proc. OOPSLA 2003, pp. 96–114 (2003)

    Google Scholar 

  3. Aracic, I., Gasiunas, V., Mezini, M., Ostermann, K.: Overview of CaesarJ. In: Rashid, A., Aksit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, pp. 135–173. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  4. Bergel, A., Ducasse, S., Nierstrasz, O.: Classbox/J: Controlling the scope of change in Java. In: Proc. OOPSLA 2005, pp. 177–189. ACM Press, New York (2005)

    Google Scholar 

  5. Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Classboxes: Controlling visibility of class extensions. Computer Languages, Systems and Structures 31(4), 107–126 (2005)

    Article  MATH  Google Scholar 

  6. Bono, V., Kuśmierek, J.D.M.: FJMIP: A calculus for a modular object initialization. In: Csuhaj-Varjú, E., Ésik, Z. (eds.) FCT 2007. LNCS, vol. 4639, pp. 100–112. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  7. Bono, V., Kuśmierek, J.D.M.: Modularizing constructors. Journal of Object Technology 6(9), 297–317 (2007); Special Issue: Tools Europe 2007

    Article  Google Scholar 

  8. Cardone, R.J.: Language and Compiler Support for Mixin Programming. PhD thesis, The University of Texas at Austin (2002)

    Google Scholar 

  9. Clifton, C., Millstein, T., Leavens, G.T., Chambers, C.: MultiJava: Design rationale, compiler implementation, and applications. ACM Trans. Prog. Lang. Syst. 28(3) (May 2006)

    Google Scholar 

  10. Cohen, T., Gil, J.: Better construction with factories. Journal of Object Technology 6(6), 109–129 (2007)

    Article  Google Scholar 

  11. Craig, I.D.: Programming in Dylan. Springer, New York (1996)

    MATH  Google Scholar 

  12. Denker, M., Gîrba, T., Lienhard, A., Nierstrasz, O., Renggli, L., Zumkehr, P.: Encapsulating and exploiting change with changeboxes. In: Proc ICDL 2007, pp. 25–49. ACM Press, New York (2007)

    Google Scholar 

  13. Goldberg, A., Robson, D.: Smalltalk-80: The Language and its Implementation. Addison-Wesley Longman, Amsterdam (1983)

    MATH  Google Scholar 

  14. Gosling, J., Joy, B., Steele, G., Bracha, G.: The JavaTM Language Specification. Addison-Wesley, Sun Microsystems (2005)

    Google Scholar 

  15. Guy, J., Steele, L.: Common LISP: the language, 2nd edn. Digital Press, Newton (1990)

    MATH  Google Scholar 

  16. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: Getting started with AspectJ. Commun. ACM 44(10), 59–65 (2001)

    Article  MATH  Google Scholar 

  17. Liskov, B.: Keynote address - data abstraction and hierarchy. In: OOPSLA 1987: Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum), pp. 17–34. ACM, New York (1987)

    Google Scholar 

  18. Madsen, O.L., Møller-Pedersen, B.: Virtual classes: a powerful mechanism in object-oriented programming. In: Proc. OOPSLA 1989, pp. 397–406. ACM Press, New York (1989)

    Google Scholar 

  19. Muller, H., Rose, J., Kempf, J., Stansbury, T.: The use of multimethods and method combination in a CLOS based window interface. In: Proc. OOPSLA 1989, pp. 239–253. ACM Press, New York (1989)

    Google Scholar 

  20. Nystrom, N., Chong, S., Myers, A.C.: Scalable extensibility via nested inheritance. SIGPLAN Not. 39(10), 99–115 (2004)

    Article  Google Scholar 

  21. Prehofer, C.: Feature-Oriented Programming: A Fresh Look at Objects. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 419–443. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  22. Hirschfeld, O.N.R., Costanza, P.: Context-oriented programming. Journal of Object Technology 7(3), 125–151 (2008)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kuśmierek, J.D.M. (2009). Implicit First Class Genericity. In: Bergel, A., Fabry, J. (eds) Software Composition. SC 2009. Lecture Notes in Computer Science, vol 5634. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02655-3_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-02655-3_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-02654-6

  • Online ISBN: 978-3-642-02655-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics