Skip to main content

Object Incompleteness and Dynamic Composition in Java-Like Languages

  • Conference paper
Objects, Components, Models and Patterns (TOOLS EUROPE 2008)

Part of the book series: Lecture Notes in Business Information Processing ((LNBIP,volume 11))

Included in the following conference series:

Abstract

Object composition is often advocated as a more flexible alternative to standard class inheritance since it takes place at run-time, thus permitting the behavior of objects to be specialized dynamically. In this paper we present Incomplete Featherweight Java (IFJ), an extension of Featherweight Java with incomplete objects, i.e., objects that require some missing methods which can be provided at run-time by composition with another (complete) object. Incomplete object usage is disciplined by static typing, therefore the language enjoys type safety (which implies no “message-not-understood” run-time errors).

This work has been partially supported by the MIUR project EOS DUE and by EU Project Software Engineering for Service-Oriented Overlay Computers (SENSORIA, contract IST-3-016004-IP-09).

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. Anderson, C., Barbanera, F., Dezani-Ciancaglini, M., Drossopoulou, S.: Can Addresses be Types (a case study: Objects with Delegation). In: WOOD 2003. ENTCS, vol. 82(8), pp. 1–22. Elsevier, Amsterdam (2003)

    Google Scholar 

  2. Babu, C., Janakiram, D.: Method Driven Model: A Unified Model for an Object Composition Language. ACM SIGPLAN Notices 39(8), 61–71 (2004)

    Article  Google Scholar 

  3. Babu, C., Jaques, W., Janakiram, D.: DynOCoLa: Enabling Dynamic Composition of Object Behaviour. In: Proc. 2nd International Workshop on Reflection, AOP and Meta-Data for Software Evolution (RAM-SE) at ECOOP 2005 (2005)

    Google Scholar 

  4. Bettini, L., Bono, V., Likavec, S.: Safe and Flexible Objects with Subtyping. SAC 2005 10(4), 5–29 (2005); Special Issue: OOPS Track at SAC 2005

    Google Scholar 

  5. Bettini, L., Bono, V., Venneri, B.: Subtyping-Inheritance Conflicts: The Mobile Mixin Case. In: Proc. Third IFIP International Conference on Theoretical Computer Science (TCS 2004), Kluwer Academic Publishers (2004)

    Google Scholar 

  6. Bettini, L., Bono, V., Venneri, B.: MoMi: a calculus for mobile mixins. Acta Informatica 42(2-3), 143–190 (2005)

    Article  MATH  MathSciNet  Google Scholar 

  7. Bettini, L., Capecchi, S., Giachino, E.: Featherweight Wrap Java. In: Proc. of SAC 2007, Special Track on Object-Oriented Programming Languages and Systems (OOPS), pp. 1094–1100. ACM Press (2007)

    Google Scholar 

  8. Bono, V., Bugliesi, M., Dezani-Ciancaglini, M., Liquori, L.: A Subtyping for extensible, incomplete objects. Fundamenta Informaticae 38(4), 325–364 (1999)

    MATH  MathSciNet  Google Scholar 

  9. Boyle, T.: Design principles for authoring dynamic, reusable learning objects. Australian Journal of Educational Technology 19(1), 46–58 (2003)

    Google Scholar 

  10. Bracha, G.: The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. PhD thesis, University of Utah (1992)

    Google Scholar 

  11. Bracha, G., Odersky, M., Stoutamire, D., Wadler, P.: Making the future safe for the past: Adding genericity to the Java programming language. In: OOPSLA 1998 Conference Proceedings. ACM SIGPLAN Notices, vol. 33(10), pp. 183–200 (October 1998)

    Google Scholar 

  12. Chambers, C.: Object-Oriented Multi-Methods in Cecil. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 33–56. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  13. Crawford, D.: Communications of the ACM archive - Special Issue on Aspect-Oriented Programming, vol. 44. ACM, New York (2001)

    Google Scholar 

  14. Dezani-Ciancaglini, M., Mostrous, D., Yoshida, N., Drossopoulou, S.: Session Types for Object-Oriented Languages. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 328–352. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  15. Ducasse, S., Nierstrasz, O., Schärli, N., Wuyts, R., Black, A.: Traits: A mechanism for fine-grained reuse. ACM Transactions on Programming Languages and Systems 28(2), 331–388 (2006)

    Article  Google Scholar 

  16. Ernst, E.: gbeta – a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance. PhD thesis, Department of Computer Science, University of Århus, Denmark (1999), http://www.daimi.au.dk/~eernst/gbeta/

  17. Fisher, K., Honsell, F., Mitchell, J.C.: A lambda-calculus of objects and method specialization. Nordic J. of Computing 1(1), 3–37 (1994)

    MATH  MathSciNet  Google Scholar 

  18. Fisher, K., Mitchell, J.C.: A Delegation-based Object Calculus with Subtyping. In: Reichel, H. (ed.) FCT 1995. LNCS, vol. 965, pp. 42–61. Springer, Heidelberg (1995)

    Google Scholar 

  19. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)

    Google Scholar 

  20. Goldberg, A., Robson, D.: Smalltalk 80: The Language. Addison-Wesley (1989)

    Google Scholar 

  21. Igarashi, A., Pierce, B., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM Transactions on Programming Languages and Systems 23(3), 396–450 (2001)

    Article  Google Scholar 

  22. Kniesel, G.: Type-Safe Delegation for Run-Time Component Adaptation. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 351–366. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  23. Lieberman, H.: Using prototypical objects to implement shared behavior in object oriented systems. ACM SIGPLAN Notices 21(11), 214–214 (1986)

    Article  MathSciNet  Google Scholar 

  24. Pierce, B.C.: Types and Programming Languages. The MIT Press, Cambridge (2002)

    Google Scholar 

  25. Riecke, J., Stone, C.: Privacy via Subsumption. Information and Computation 172, 2–28 (2002); 3rd special issue of Theory and Practice of Object-Oriented Systems (TAPOS)

    Article  MATH  MathSciNet  Google Scholar 

  26. Taivalsaari, A.: On the notion of inheritance. ACM Computing Surveys 28(3), 438–479 (1996)

    Article  Google Scholar 

  27. Ungar, D., Smith, R.B.: Self: The power of simplicity. ACM SIGPLAN Notices 22(12), 227–242 (1987)

    Article  Google Scholar 

  28. Viega, J., Tutt, B., Behrends, R.: Automated Delegation is a Viable Alternative to Multiple Inheritance in Class Based Languages. Technical Report CS-98-03, UVa Computer Science (1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Richard F. Paige Bertrand Meyer

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bettini, L., Bono, V., Venneri, B. (2008). Object Incompleteness and Dynamic Composition in Java-Like Languages. In: Paige, R.F., Meyer, B. (eds) Objects, Components, Models and Patterns. TOOLS EUROPE 2008. Lecture Notes in Business Information Processing, vol 11. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69824-1_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-69824-1_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-69823-4

  • Online ISBN: 978-3-540-69824-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics