Paper

Type
ARTICLE  
Title
Xtraitj: Traits for the Java platform  
Authors
Lorenzo Bettini, Ferruccio Damiani 
Book
Journal of Systems and Software  
Pages
419-441  
Abstract
Abstract Traits were proposed as a mechanism for fine-grained code reuse to overcome many limitations of class-based inheritance. A trait is a set of methods that is independent from any class hierarchy and can be flexibly used to build other traits or classes by means of a suite of composition operations. In this paper we present the new version of Xtraitj, a trait-based programming language that features complete compatibility and interoperability with the Java platform. Xtraitj is implemented in Xtext and Xbase, and it provides a full Eclipse \IDE\ that supports an incremental adoption of traits in existing Java projects. The new version of Xtraitj allows traits to be accessed from any Java project or library, even if the original Xtraitj source code is not available, since traits can be accessed in their byte-code format. This allows developers to create Xtraitj libraries that can be provided in their binary only format. We detail the technique we used to achieve such an implementation; this technique can be reused in other languages implemented in Xtext for the Java platform. We formalize our traits by means of flattening semantics and we provide some performance benchmarks that show that the runtime overhead introduced by our traits is acceptable.  
Volume
131  
Year
2017  
Bibtex key
XtraitjJournal2017  
Paper Url1
http://www.sciencedirect.com/science/article/pii/S0164121216301297  
Bibtex
@ARTICLE{XtraitjJournal2017,
  title = {{Xtraitj: Traits for the Java platform}},
  author = {Bettini, Lorenzo and Damiani, Ferruccio},
  journal = {Journal of Systems and Software},
  pages = {419-441},
  abstract = {Abstract Traits were proposed as a mechanism for fine-grained code reuse to
      overcome many limitations of class-based inheritance. A trait is a set of
      methods that is independent from any class hierarchy and can be flexibly used to
      build other traits or classes by means of a suite of composition operations. In
      this paper we present the new version of Xtraitj, a trait-based programming
      language that features complete compatibility and interoperability with the Java
      platform. Xtraitj is implemented in Xtext and Xbase, and it provides a full
      Eclipse \IDE\ that supports an incremental adoption of traits in existing Java
      projects. The new version of Xtraitj allows traits to be accessed from any Java
      project or library, even if the original Xtraitj source code is not available,
      since traits can be accessed in their byte-code format. This allows developers
      to create Xtraitj libraries that can be provided in their binary only format. We
      detail the technique we used to achieve such an implementation; this technique
      can be reused in other languages implemented in Xtext for the Java platform. We
      formalize our traits by means of flattening semantics and we provide some
      performance benchmarks that show that the runtime overhead introduced by our
      traits is acceptable.},
  volume = {131},
  year = {2017},
  url = {http://www.sciencedirect.com/science/article/pii/S0164121216301297},
  doi = {http://dx.doi.org/10.1016/j.jss.2016.07.035},
}
 
Created
2017-02-10 10:42:55  
Modified
2017-10-30 11:22:18