15:30 - 16:00
|
Applying Traits to the Smalltalk Collection Classes
Andrew P. Black,
OGI School of Science & Engineering, Oregon Health & Science University,
black@cse.ogi.edu Nathanael Schärli,
University of Bern,
schaerli@iam.unibe.ch Stéphane Ducasse,
University of Bern,
ducasse@iam.unibe.ch
Traits are a programming language technology modeled after mixins
but avoiding their problems. This paper reports on a refactoring of
the Smalltalk collections classes using traits. We observed that the
original collection classes contained much duplication of code;
traits let us remove all of it. We also found places where the
protocols of the collections lacked uniformity; traits allow us to
correct these non-uniformities without code duplication. In addition,
traits make possible more general reuse of collection code outside of
the existing hierarchy; for example, they make it easy to convert
other collection-like things into true collections. Our refactoring
reduced the number of methods in the collection classes by
approximately 10 per cent. More importantly, understandability and
reusability of the code was significantly improved.
|
16:00 - 16:30
|
OOPAL: Integrating Array Programming in Object-Oriented Programming
Philippe Mougin,
pmougin@acm.org Stéphane Ducasse,
University Of Bern,
ducasse@iam.unibe.ch
Array programming shines in its ability to express computations at
a high-level of abstraction, allowing one to manipulate and query
whole sets of data at once. This paper presents the OOPAL model that
enhances object-oriented programming with array programming features.
The goal of OOPAL is to determine a minimum set of modifications that
must be made to the traditional object model in order to take
advantage of the possibilities of array programming. It is based on a
minimal extension of method invocation and the definition of a kernel
of methods implementing the fundamental array programming operations.
The model is validated in F-Script, a new scripting language.
|