|
ABSTRACT
Recently, traits have been proposed as a single inheritance backward compatible solution in which the composing entity has the control over the trait composition. Traits are fine-grained units used to compose classes, while avoiding many of the problems of multiple inheritance and mixin-based approaches. To evaluate the expressiveness of traits, some hierarchies were refactored, showing code reuse. However, such large refactorings, while valuable, may not be facing all the problems, since the hierarchies were previously expressed within single inheritance and following certain patterns. We wanted to evaluate how traits enable reuse, and what problems could be encountered when building a library using traits from scratch, taking into account that traits are units of reuse. This paper presents our work on designing a new stream library named Nile. We present the reuse that we attained using traits, and the problems we encountered.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.: Traits: Composable units of behavior. In: Proceedings of European Conference on Object-Oriented Programming (ECOOP'03). Volume 2743 of LNCS., Springer Verlag (July 2003) 248--274
|
 |
2
|
|
| |
3
|
Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Stateful traits. In: Advances in Smalltalk --- Proceedings of 14th International Smalltalk Conference (ISC 2006). Volume 4406 of LNCS., Springer (2007) 66--90
|
 |
4
|
Stéphane Ducasse , Roel Wuyts , Alexandre Bergel , Oscar Nierstrasz, User-changeable visibility: resolving unanticipated name clashes in traits, Proceedings of the 22nd annual ACM SIGPLAN conference on Object oriented programming systems and applications, October 21-25, 2007, Montreal, Quebec, Canada
|
| |
5
|
Schärli, N., Ducasse, S., Nierstrasz, O., Wuyts, R.: Composable encapsulation policies. In: Proceedings of European Conference on Object-Oriented Programming (ECOOP'04). LNCS 3086, Springer Verlag (June 2004) 26--50
|
 |
6
|
|
| |
7
|
ANSI New York: American National Standard for Information Systems -- Programming Languages -- Smalltalk, ANSI/INCITS 319-1998. (1998) http://wiki.squeak.org/squeak/uploads/172/standard_v1_9-indexed.pdf.
|
 |
8
|
Dan Ingalls , Ted Kaehler , John Maloney , Scott Wallace , Alan Kay, Back to the future: the story of Squeak, a practical Smalltalk written in itself, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.318-326, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
9
|
Robert Godin , Hafedh Mili , Guy W. Mineau , Rokia Missaoui , Amina Arfi , Thuy-Tien Chau, Design of class hierarchies based on concept (Galois) lattices, Theory and Practice of Object Systems, v.4 n.2, p.117-133, April 1998
[doi> 10.1002/(SICI)1096-9942(1998)4:2<117::AID-TAPO6>3.3.CO;2-I]
|
 |
10
|
|
 |
11
|
Mirko Streckenbach , Gregor Snelting, Refactoring class hierarchies with KABA, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
 |
12
|
William R. Cook, Interfaces and specifications for the Smalltalk-80 collection classes, conference proceedings on Object-oriented programming systems, languages, and applications, p.1-15, October 18-22, 1992, Vancouver, British Columbia, Canada
|
 |
13
|
Ivan Moore, Automatic inheritance hierarchy restructuring and method refactoring, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.235-250, October 06-10, 1996, San Jose, California, United States
|
| |
14
|
Casais, E.: Automatic reorganization of object-oriented hierarchies: A case study. Object-Oriented Systems 1(2) (December 1994) 95--115
|
 |
15
|
H. Dicky , C. Dony , M. Huchard , T. Libourel, On automatic class insertion with overloading, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.251-267, October 06-10, 1996, San Jose, California, United States
|
|