title = {{Object Reuse and Behavior Adaptation in Java-like Languages}},
  author = {Bettini, Lorenzo and Venneri, Betti},
  booktitle = {Proceedings of Principles and Practice of Programming in Java (PPPJ)},
  editor = {Christian Wimmer and  Christian W. Probst},
  pages = {111-120},
  abstract = {Inheritance, which is a basic mechanism in mainstream object-oriented languages,
      introduces a strong coupling which limits modularity and code reuse.
      Furthermore, static  class hierarchies cannot easily deal with unpredictable
      dynamic adaptations  of the object behavior. In order to overcome these
      limitations, we propose new linguistic constructs  for composing objects in a
      Java-like language. Objects are  intended as featherweight components which can
      be used in multiple compositions,  and object types specify not only the
      implemented functionalities, but also the required methods, which will be
      provided by other components during composition. Thus the language supports
      flexible object reuse and adaptation of the object behavior at run time. The
      static type discipline guarantees that method calls on well-typed object
      compositions are safe.},
  year = {2011},
  url = {http://dl.acm.org/citation.cfm?doid=2093157.2093173},
  publisher = {ACM},