|
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.
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
|
|
 |
2
|
|
| |
3
|
|
| |
4
|
Chambers, C. The Cecil Language Specification and Rationale: Version ~.0, 1995.
|
 |
5
|
|
| |
6
|
Clinger, W. and Rees, J. (Eds.). The revised4 report on the algorithmic language Scheme. ACM Lisp Pointers, 4(3), July 1991.
|
| |
7
|
|
 |
8
|
|
| |
9
|
Dalai, O.-J., B. Myrhaug and K. Nygaard. SIMULA 67. common base language. Technical Report Publ. No. S- 2, Norwegian Computing Center, Oslo, Norway, May 1968.
|
| |
10
|
Feeley, M. Gambit-C, a portable Scheme implementation, 1996.
|
| |
11
|
|
| |
12
|
Flatt, M. PLT MzScheme: Language manual. Technical Report TR97-280, Rice University, 1997.
|
 |
13
|
|
 |
14
|
Matthew Flatt , Shriram Krishnamurthi , Matthias Felleisen, Classes and mixins, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.171-183, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268961]
|
| |
15
|
|
| |
16
|
|
| |
17
|
|
| |
18
|
|
| |
19
|
Hudak, P. and Wadler, P. (Eds.). Report on the programming language Haskell. Technical Report YALE/DCS/RR777, Yale University, Department of Computer Science, August 1991.
|
| |
20
|
International Organization for Standardization. Ada 95 Reference Manual. The Language. The Standard Libraries, Janurary 1995.
|
 |
21
|
|
| |
22
|
Kelsey, R. A. Fully-parameterized modules or the missing link. Technical Report 97-3, NEC Research Institute, 1997.
|
| |
23
|
|
| |
24
|
|
| |
25
|
Lang, K. J. and B. A. Pearlmutter. Oaklisp: an objectoriented dialect of Scheme. Lisp and Symbolic Computation: An International journal, 1(1):39-51, May 1988.
|
 |
26
|
|
 |
27
|
|
| |
28
|
Leroy, X. The Objective Carol system, 1996. URL: http://pauillac, inria, fr/ocaml/.
|
| |
29
|
|
| |
30
|
|
| |
31
|
Mitchell, J. G., W. Mayberry and R. Sweet. Mesa Language Manual, 1979.
|
| |
32
|
Palsberg, J. and C. B. Jay. The essence of the Visitor pattern. Technical Report 05, University of Technology, Sydney, 1997.
|
| |
33
|
Queinnec, C. Distributed generic functions. In Proc. 1997 France-Japan Workshop on Object-Based Parallel and Distributed Computing, 1997.
|
| |
34
|
Queinnec, C. Meroon V$: A Small, Efficient, and Enhanced Object System, 1997.
|
 |
35
|
|
| |
36
|
Rees, J. Another module system for Scheme, 1994. Scheme48 documentation.
|
 |
37
|
|
 |
38
|
|
 |
39
|
|
| |
40
|
Reynolds, J. C. User-defined types and procedural data structures as complementary approaches to data abstraction. In Schuman, S. A., editor, New Directions in Algorithmic Languages, pages 157-168. {FIP Working Group 2.1 on Algol, 1975.
|
| |
41
|
Shalit, A. The Dylan Reference Manual. Addison- Wesley, 1996.
|
| |
42
|
|
| |
43
|
|
 |
44
|
|
| |
45
|
|
CITED BY 33
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Curtis Clifton , Todd Millstein , Gary T. Leavens , Craig Chambers, MultiJava: Design rationale, compiler implementation, and applications, ACM Transactions on Programming Languages and Systems (TOPLAS), v.28 n.3, p.517-575, May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Alastair Reid , Matthew Flatt , Leigh Stoller , Jay Lepreau , Eric Eide, Knit: component composition for systems software, Proceedings of the 4th conference on Symposium on Operating System Design & Implementation, p.24-24, October 22-25, 2000, San Diego, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|