Abstract
Modeling protean objects, i.e. objects adapting their structure and behavior dynamically with respect to changeable environment, may be challenging in traditional object oriented languages. While some dynamic languages make the implementation of changeable behavior of objects possible by injecting code into the objects at run-time, their lack of an in-depth compile-time code analysis makes the resulting code fragile. The concept of object metamorphism (OM) targets the gap between the two language types by introducing a declarative modeling of protean objects. Such a model, which is validated at compile-time, defines all possible compositions of a given object from smaller parts represented by traits. The actual composition used to instantiate the object is chosen dynamically with respect to the current environment. The result of this research will provide the theoretical concept of OM along with a proof-of-concept adoption of OM to Scala.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Harrison, W., Ossher, H.: Subject-oriented programming (a critique of pure objects). In: Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1993), Washington, D.C. ACM, September 1993
Harrison, W., Budinsky, F., Simmonds, I.: Subject-oriented programming: supporting decentralized development of objects, IBM TJ Watson Research Center (1995)
Coplien, J.O., Reenskaug, T.M.H.: The data, context and interaction paradigm. In: Proceedings of the 3rd Annual Conference on Systems, Programming, and Applications: Software for Humanity (SPLASH 2012), pp. 227–228. ACM, New York (2012)
Alam, O., Kienzle, J.: designing with inheritance and composition. In: Proceedings of the 3rd International Workshop on Variability & Composition (VariComp 2012), pp. 19–24. ACM, New York (2012)
Herrmann, S.: Demystifying object schizophrenia. In: Proceedings of the 4th Workshop on MechAnisms for SPEcialization, Generalization and inHerItance (MASPEGHI 2010). ACM, New York (2010)
Malayeri, D., Aldrich, J.: CZ: multiple inheritance without diamonds. In: Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA 2009). ACM, New York (2009)
Odersky, M., Spoon, L., Venners, B.: Programming in Scala, Artima, 0981531644 (2008)
Šlajchrt, Z.: Morpheus: a scala extension introducing metamorphism of objects (2015). https://github.com/zslajchrt/morpheus
Wright, K.: A Taste of Scala: The Autoproxy Plugin (2009). http://www.artima.com/weblogs/viewpost.jsp?thread=275135
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Šlajchrt, Z. (2017). Object Metamorphism. In: Janech, J., Kostolny, J., Gratkowski, T. (eds) Proceedings of the 2015 Federated Conference on Software Development and Object Technologies. SDOT 2015. Advances in Intelligent Systems and Computing, vol 511. Springer, Cham. https://doi.org/10.1007/978-3-319-46535-7_24
Download citation
DOI: https://doi.org/10.1007/978-3-319-46535-7_24
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-46534-0
Online ISBN: 978-3-319-46535-7
eBook Packages: EngineeringEngineering (R0)