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 I-Java, an extension of the Java language with a form of incomplete objects, i.e., objects with some missing methods which can be provided at run-time by composition with another (complete) object. Therefore, we can exploit object composition as a linguistic construct, instead of resorting to a manual implementation. This work builds on our theoretical model of incomplete objects, which was proved type-safe.
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).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Babu, C., Janakiram, D.: Method Driven Model: A Unified Model for an Object Composition Language. ACM SIGPLAN Notices 39(8), 61–71 (2004)
Babu, C., Jaques, W., Janakiram, D.: DynOCoLa: Enabling Dynamic Composition of Object Behaviour. In: Proc. of RAM-SE (2005)
Baldoni, M., Boella, G., van der Torre, L.W.N.: Interaction between Objects in powerJava. Journal of Object Technology 6(2) (2007)
Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Stateful traits. In: De Meuter, W. (ed.) ISC 2006. LNCS, vol. 4406, pp. 66–90. Springer, Heidelberg (2007)
Bettini, L., Bono, V.: Type Safe Dynamic Object Delegation in Class-based Languages. In: Proc. of PPPJ, pp. 171–180. ACM Press, New York (2008)
Bettini, L., Bono, V., Naddeo, M.: A trait based re-engineering technique for Java hierarchies. In: Proc. of PPPJ, pp. 149–158. ACM Press, New York (2008)
Bettini, L., Bono, V., Venneri, B.: Object incompleteness and dynamic composition in Java-like languages. In: Paige and Meyer [29], pp. 198–217
Bettini, L., Capecchi, S., Giachino, E.: Featherweight Wrap Java: wrapping objects and methods. Journal of Object Technology 7(2), 5–29 (2008)
Bishop, J.: Language features meet design patterns: raising the abstraction bar. In: ROA 2008, pp. 1–7. ACM Press, New York (2008)
Bishop, J., Horspool, R.N.: On the Efficiency of Design Patterns Implemented in C# 3.0. In: Paige and Meyer [29], pp. 356–371
Chambers, C.: Object-Oriented Multi-Methods in Cecil. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 33–56. Springer, Heidelberg (1992)
Ducasse, S., Nierstrasz, O., Schärli, N., Wuyts, R., Black, A.: Traits: A mechanism for fine-grained reuse. ACM TOPLAS 28(2), 331–388 (2006)
Ernst, E.: gbeta – a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance. PhD thesis, Dep. of Computer Science, Univ. of Århus (1999)
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)
Florijn, G., Meijers, M., van Winsen, P.: Tool Support for Object-Oriented Patterns. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 472–495. Springer, Heidelberg (1997)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Guéhéneuc, Y.: Three Musketeers to the Rescue – Meta-Modeling, Logic Programming, and Explanation-based Constraint Programming for Pattern Description and Detection. In: Workshop on Declarative Meta-Programming at ASE 2002 (2002)
Hannemann, J., Kiczales, G.: Design pattern implementation in Java and AspectJ. In: Proc. of OOPSLA. ACM SIGPLAN Notices, vol. 37, pp. 161–173. ACM Press, New York (2002)
Herrmann, S.: A precise model for contextual roles: The programming language ObjectTeams/Java. Applied Ontology 2(2), 181–207 (2007)
Igarashi, A., Pierce, B., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM TOPLAS 23(3), 396–450 (2001)
Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
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)
Kristensen, B.B., Østerbye, K.: Roles: Conceptual abstraction theory and practical language issues. Theory and Practice of Object Sytems 2(3), 143–160 (1996)
Kuhlemann, M., Apel, S., Rosenmüller, M., Lopez-Herrejon, R.E.: A Multiparadigm Study of Crosscutting Modularity in Design Patterns. In: Paige and Meyer [29], pp. 121–140
Lieberman, H.: Using prototypical objects to implement shared behavior in object oriented systems. ACM SIGPLAN Notices 21(11), 214 (1986)
Lienhard, A., Ducasse, S., Arévalo, G.: Identifying traits with formal concept analysis. In: Proc. of ASE, pp. 66–75. IEEE, Los Alamitos (2005)
Nielsen, A.B., Ernst, E.: Optimizing Dynamic Class Composition in a Statically Typed Language. In: Paige and Meyer [29], pp. 161–177
Glowinski, R. (ed.): Proc. of TOOLS. LNBIP, vol. 11. Springer, Heidelberg (2008)
Pierce, B.C.: Types and Programming Languages. The MIT Press, Cambridge (2002)
Riecke, J.G., Stone, C.: Privacy via Subsumption. Inf. and Computation (172), 2–28 (2002)
Steimann, F.: On the representation of roles in object-oriented and conceptual modelling. Data Knowledge Engineering 35(1), 83–106 (2000)
Ungar, D., Smith, R.B.: Self: The power of simplicity. ACM SIGPLAN Notices 22(12), 227–242 (1987)
Viega, J., Tutt, B., Behrends, R.: Automated Delegation is a Viable Alternative to Multiple Inheritance in Class Based Languages. Technical Report CS-98-03 (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bettini, L., Bono, V., Turin, E. (2009). I-Java: An Extension of Java with Incomplete Objects and Object Composition. 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_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-02655-3_4
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)