Putting Traits in Perspective

  • Stéphane Ducasse
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5634)


Traits have been proposed as a mechanism to compose and share behavioral units between distinct class hierarchies. Several versions have been developed and they have been used to build complex libraries. This keynote puts in perspective the current versions and stress their relationships and limits.


Class reuse Multiple Inheritance Smalltalk 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.: Traits: Composable units of behavior. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 248–274. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  2. 2.
    Lienhard, A.: Bootstrapping Traits. Master’s thesis, University of Bern (2004)Google Scholar
  3. 3.
    Schärli, N.: Traits — Composing Classes from Behavioral Building Blocks. PhD thesis, University of Bern (2005)Google Scholar
  4. 4.
  5. 5.
    Ingalls, D., Kaehler, T., Maloney, J., Wallace, S., Kay, A.: Back to the future: The story of Squeak, a practical Smalltalk written in itself. In: Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA 1997), pp. 318–326. ACM Press, New York (1997)CrossRefGoogle Scholar
  6. 6.
    Flatt, M., Finder, R.B., Felleisen, M.: Scheme with classes, mixins and traits. In: AAPLAS 2006 (2006)Google Scholar
  7. 7.
    The Fortress language specification,
  8. 8.
    Fisher, K., Reppy, J.: Statically typed traits. Technical Report TR-2003-13, University of Chicago, Department of Computer Science (2003)Google Scholar
  9. 9.
    Smith, C., Drossopoulou, S.: Chai: Typed traits in Java. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 453–478. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  10. 10.
    Liquori, L., Spiwack, A.: FeatherTrait: A modest extension of Featherweight Java. ACM Transactions on Programming Languages and Systems (TOPLAS) 30, 1–32 (2008)CrossRefzbMATHGoogle Scholar
  11. 11.
    Reppy, J., Turon, A.: Metaprogramming with traits. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 373–398. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  12. 12.
    Bono, V., Damiani, F., Giachino, E.: On traits and types in a java-like setting. In: Fifth IFIP International Conference On Theoretical Computer Science - TCS 2008. IFIP International Federation for Information Processing, pp. 367–382. Springer, Heidelberg (2008)Google Scholar
  13. 13.
    Black, A.P., Schärli, N., Ducasse, S.: Applying traits to the Smalltalk collection hierarchy. Technical Report IAM-02-007, Institut für Informatik, Universität Bern, Switzerland, Also available as Technical Report CSE-02-014, OGI School of Science & Engineering, Beaverton, Oregon, USA (2002)Google Scholar
  14. 14.
    Cassou, D., Ducasse, S., Wuyts, R.: Redesigning with traits: the nile stream trait-based library. In: Proceedings of the 2007 International Conference on Dynamic Languages (ICDL 2007), pp. 50–75. ACM Digital Library, New York (2007)Google Scholar
  15. 15.
    Cassou, D., Ducasse, S., Wuyts, R.: Traits at work: the design of a new trait-based stream library. Journal of Computer Languages, Systems and Structures 35, 2–20 (2009)CrossRefGoogle Scholar
  16. 16.
    Ducasse, S., Schärli, N., Wuyts, R.: Uniform and safe metaclass composition. Journal of Computer Languages, Systems and Structures 31, 143–164 (2005)CrossRefzbMATHGoogle Scholar
  17. 17.
    Black, A.P., Schärli, N.: Traits: Tools and methodology. In: Proceedings ICSE 2004, pp. 676–686 (2004)Google Scholar
  18. 18.
    Lienhard, A., Ducasse, S., Arévalo, G.: Identifying traits with formal concept analysis. In: Proceedings of 20th Conference on Automated Software Engineering (ASE 2005), pp. 66–75. IEEE Computer Society, Los Alamitos (2005)Google Scholar
  19. 19.
    Bettini, L., Bono, V., Naddeo, M.: A trait based re-engineering technique for java hierarchies. In: PPPJ 2008. ACM International Conference Proceedings. ACM Press, New York (2008)Google Scholar
  20. 20.
    Schärli, N., Black, A.P.: A browser for incremental programming. Journal of Computer Languages, Systems and Structures 30, 79–95 (2004)CrossRefzbMATHGoogle Scholar
  21. 21.
    Ducasse, S., Pollet, D., Bergel, A., Cassou, D.: Reusing and composing tests with traits. In: Proceedings of the 47th International Conference Objects, Models, Components, Patterns (TOOLS-Europe 2009) (2009)Google Scholar
  22. 22.
    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)CrossRefGoogle Scholar
  23. 23.
    Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Stateful traits and their formalization. Journal of Computer Languages, Systems and Structures 34, 83–108 (2008)CrossRefGoogle Scholar
  24. 24.
    Ducasse, S., Wuyts, R., Bergel, A., Nierstrasz, O.: User-changeable visibility: Resolving unanticipated name clashes in traits. In: Proceedings of 22nd International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2007), pp. 171–190. ACM Press, New York (2007)Google Scholar
  25. 25.
    van Cutsem, T., Bergel, A., Ducasse, S., Meuter, W.D.: Adding state and visibility control to traits using lexical nesting. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS. Springer, Heidelberg (2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Stéphane Ducasse
    • 1
  1. 1.RMoDINRIA Lille Nord-EuropeFrance

Personalised recommendations