Home · Schedule · Tracks · Recommendations · Registration

Technical Papers

Smalltalkiana

Tuesday, 28 October – 15:30-16:30

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.