Traits: Composable units of behaviour

N Schärli, S Ducasse, O Nierstrasz… - ECOOP 2003–Object …, 2003 - Springer
Despite the undisputed prominence of inheritance as the fundamental reuse mechanism in
object-oriented programming languages, the main variants—single inheritance, multiple …

A nominal theory of objects with dependent types

M Odersky, V Cremet, C Röckl, M Zenger - ECOOP 2003–Object-Oriented …, 2003 - Springer
We design and study v Obj, a calculus and dependent type system for objects and classes
which can have types as members. Type members can be aliases, abstract types, or new …

Chai: Traits for Java-Like Languages

C Smith, S Drossopoulou - … 19th European Conference, Glasgow, UK, July …, 2005 - Springer
Traits support the factoring out of common behaviour, and its integration into classes in a
manner that coexists smoothly with inheritance-based structuring mechanisms. We …

FeatherTrait: A modest extension of Featherweight Java

L Liquori, A Spiwack - ACM Transactions on Programming Languages …, 2008 - dl.acm.org
In the context of statically typed, class-based languages, we investigate classes that can be
extended with trait composition. A trait is a collection of methods without state; it can be …

Typed first-class traits

X Bi, BCS Oliveira - 32nd European Conference on Object …, 2018 - drops.dagstuhl.de
Many dynamically-typed languages (including JavaScript, Ruby, Python or Racket) support
first-class classes, or related concepts such as first-class traits and/or mixins. In those …

Applying traits to the Smalltalk collection classes

AP Black, N Schärli, S Ducasse - ACM SIGPLAN Notices, 2003 - dl.acm.org
Traits are a programming language technology that promote the reuse of methods between
unrelated classes. This paper reports on a refactoring of the Smalltalk collections classes …

[PDF][PDF] A typed calculus of traits

K Fisher, J Reppy - Electronic proceedings of FOOL, 2004 - people.cs.uchicago.edu
Schärli et al. recently proposed a mechanism called traits as a way to foster code reuse in
object-oriented programs [SDNB03]. They have prototyped the mechanism in the context of …

[PDF][PDF] A foundation for trait-based metaprogramming

J Reppy, A Turon - … workshop on foundations and developments of …, 2006 - aturon.github.io
Schärli et al. introduced traits as reusable units of behavior independent of the inheritance
hierarchy. Despite their relative simplicity, traits offer a surprisingly rich calculus. Trait calculi …

[PDF][PDF] Statically typed traits

K Fisher, J Reppy - 2003 - academia.edu
Traits are mechanism, recently proposed by Scharli et al, for factoring Smalltalk class
hierarchies. By separating the issue of code reuse from the inheritance hierarchy, traits allow …

Sustainable system infrastructure and big bang evolution: can aspects keep pace?

C Gibbs, CR Liu, Y Coady - European Conference on Object-Oriented …, 2005 - Springer
Realistically, many rapidly evolving systems eventually require extensive restructuring in
order to effectively support further evolution. Not surprisingly, these overhauls reverberate …