MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Modular Object-Oriented Programming with Units and Mixins (1998) [108 citations — 15 self]

by Robert Bruce Findler ,  Matthew Flatt ,  Robert Bruce ,  Findler Matthew Flatt
Add To MetaCart

Abstract:

Module and class systems have evolved to meet the demand for reuseable software components. Considerable effort has been invested in developing new module and class systems, and in demonstrating how each promotes code reuse. However, relatively little has been said about the interaction of these constructs, and how using modules and classes together can improve programs. In this paper, we demonstrate the synergy of a particular form of modules and classes---called units and mixins, respectively---for solving complex reuse problems in a natural manner. 1 Introduction Module and class systems both promote code reuse. In theory, many uses of classes can be simulated with modules, and vice versa. Experience shows, however, that programmers need both constructs because they serve different purposes [43]. A module delineates boundaries for separate development. A class permits fine-grained reuse via selective inheritance and overriding. Since modules and classes aid different patterns of ...

Citations

3853 Design Patterns: Elements of Reusable Object-Oriented Software – Gamma, Helm, et al. - 1995
1415 The Definition of Standard ML – Milner, Tofte, et al. - 1990
221 Smalltalk-80: The Language – Goldberg, Robson - 1989
210 Classes and mixins – Flatt, Krishnamurthi, et al. - 1998
178 The Java Language Specification. The Java Series – Gosling, Joy, et al. - 1996
157 The revised report on the algorithmic language Scheme – Clinger, Rees - 1991
150 Units: cool modules for HOT languages – Flatt, Felleisen - 1998
121 The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance – Bracha - 1992
94 Typechecking and modules for multi-methods – Chambers, Leavens - 1995
84 Object-oriented programming versus abstract data types – Cook - 1990
73 Common LISP: The Language – Jr - 1984
72 The revised 4 report on the algorithmic language Scheme – Clinger, Rees - 1991
71 Report on the programming language Haskell – Hudak, Wadler - 1991
61 PLT MzScheme: Language manual – Flatt - 1997
61 The essence of the Visitor pattern – Palsberg, Jay - 1997
48 Objective ML: A simple object-oriented extension of ML – R'emy, Vouillon - 1997
48 Import is not inheritance. why we need both: Modules and classes – Szyperski
47 The Cecil language specification and rationale: Version 2.0. Available from http://www.cs.washington.edu/research/projects/cecil/www/Papers/cecilspec. html – Chambers - 1995
42 SIMULA 67. common base language – Dahl, Myrhaug, et al. - 1968
42 Simple objects for Standard ML – Reppy, Riecke - 1996
38 Object-oriented programming in Scheme – Adams, Rees - 1988
36 A module system for Scheme – Curtis, Rauen - 1990
33 Synthesizing object-oriented and functional design to promote re-use – Krishnamurthi, Felleisen, et al. - 1998
31 The Objective Caml system – Leroy - 1996
25 The Dylan Reference Manual – Shalit - 1996
24 User-defined types and procedural data structures as complementary approaches to data abstraction – Reynolds - 1975
19 An algebraic approach to mixins and modularity – Ancona, Zucca - 1996
17 Metalevel building blocks for modular systems – Jagannathan - 1994
17 Quasi-static scoping: Sharing variable bindings across multiple lexical scopes – Lee, Friedman - 1993
16 The implementation of PC Scheme – Bartley, Jensen - 1986
16 A Little Java, A Few Patterns – Felleisen, Friedman - 1998
14 Enriching the lambda calculus with context toward a theory of incremental program construction – Lee, Friedman - 1996
14 Free variables and first-class environments – Miller, Rozas - 1991
11 Another module system for scheme – Rees - 1993
11 Interactive modular programming in scheme – Tung - 1992
10 The translator pattern---external functionality with homomorphic mappings – Kuhne - 1997
9 Oaklisp: an objectoriented dialect of Scheme – Lang, Pearlmutter - 1988
8 Roure. Sharing code through first-class envinroments – Queinnec, De - 1996
5 Meroon V3: A Small, Efficient, and Enhanced Object System – Queinnec - 1997
4 Fully-parameterized modules or the missing link – Kelsey - 1997
3 a portable Scheme implementation – Feeley - 1996
2 Distributed generic functions – Queinnec - 1997