Abstract
Traits are fine-grained components that can be used to compose classes,
while avoiding many of the problems of multiple inheritance and mixin-based
approaches. Since most implementations of traits have focused on
dynamically-typed languages, the question naturally arises, how can
one best introduce traits to statically-typed languages, like Java
and C#? In this paper we argue that the flattening property of traits
should be used as a guiding principle for any attempt to add traits
to statically-typed languages. This property essentially states that,
semantically, traits can be compiled away. We demonstrate how this
principle applies to Featherweight-Trait Java, a conservative extension
to Featherweight Java.
Users
Please
log in to take part in the discussion (add own reviews or comments).