ACM Home Page
Please provide us with feedback. Feedback
The design of a class mechanism for Moby
Full text PdfPdf (1.50 MB)
Source ACM SIGPLAN Notices archive
Volume 34 ,  Issue 5  (May 1999) table of contents
Pages: 37 - 49  
Year of Publication: 1999
ISSN:0362-1340
Also published in ...
Authors
Kathleen Fisher  AT&T Labs, Research
John Reppy  Bell Labs, Lucent Technologies
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 26,   Citation Count: 21
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/301631.301638
What is a DOI?

Warning: The download time has expired please click on the item to try again.


ABSTRACT

Typical class-based languages, such as C++ and JAVA, provide complex class mechanisms but only weak module systems. In fact, classes in these languages incorporate many of the features found in richer module mechanisms. In this paper, we describe an alternative approach to designing a language that has both classes and modules. In our design, we rely on a rich ML-style module system to provide features such as visibility control and parameterization, while providing a minimal class mechanism that includes only those features needed to support inheritance. Programmers can then use the combination of modules and classes to implement the full range of class-based features and idioms. Our approach has the advantage that it provides a full-featured module system (useful in its own right), while keeping the class mechanism quite simple.We have incorporated this design in MOBY, which is an ML-style language that supports class-based object-oriented programming. In this paper, we describe our design via a series of simple examples, show how various class-based features and idioms are realized in MOBY, compare our design with others, and sketch its formal semantics.


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.

AC93
 
AC96
 
AG98
 
BCC+96
 
BFP97
Brace, K. B., A. Fiech, and L. Petersen. Subtyping is not a good "match" for object-oriented languages, in ECOOP'97, vol. 1241 of LNCS, New York, NY, 1997. Springer-Verlag, pp. 104-127.
 
BPV98
Bruce, K. B., L. Petersen, and J. ~anderwaart. Modules in LOOM: Classes are not enough. Available from http: //www. cs. williams, edu/~kim, April 1998.
 
BSv95
 
CDG+89
Cardelli, L., J. Donahue, L. Glassman, M. Jordan, B. Kalsow, and G. Nelson. Modula-3 report (revised). Technical Report 52, Digital System Research Center, Palo Alto, CA, November 1989.
CHC90
 
Coo89
Cook, W. R. A proposal for making Eiffel type-safe. In ECOOP'89, 1989, pp. 57-72.
 
Fis96
 
FM95
 
FR99
Fisher, K. and J. Reppy. Foundations for MOB Y classes. Technical Memorandum, Bell Labs, Lucent Technologies, Murray Hill, NJ, February 1999.
 
GJS96
HL94
 
HS97
Harper, R. and C. Stone. An interpretation of Standard ML in type theory. Technical Report CMU-CS-97-147, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, June 1997.
 
Jav97
Inner classes specification, February 1997. Available from http: / / java. sun. com/products/jDK/1.1.
KLM94
Ler94
 
Ler96
Leroy, X. A syntacfc theory of type generativity and sharing. JFP, 6(5), September 1996, pp. 1-32.
 
Ler98
Leroy, X. The Objective Caml System (release 2.00), August 1998. Available from http: //pauillac. inria, fr/caml.
Mac84
 
MTHM97
 
Pro95
Programming Methodology Group, MIT LCS, Cambridge, MA. Theta Reference Manual (Preliminary Version), February 1995. Available from httD: //www .pmg. lcs .mit. edu/Theta, html.
 
PT93
Pierce, B. C, and D. N. Turner. Statically typed friendly functions via partially abstract types. Technical Report ECS-LFCS-93-256, University of Edinburgh, LFCS, April 1993. Also available as INRIA-Rocquencourt Rapport de Recherche No. 1899.
PT98
 
Rém94
 
RR96a
Reppy, J. H. and J. G. Riecke. Classes in Object ML via modules. In FOOL3, July 1996.
RR96b
 
RS98
Riecke, J. G. and C. Stone. Privacy via subsumpfion. In FOOL5, January 1998. A longer version will appear in TAPOS.
 
RV98
 
Str94
 
Str97
 
Szy92
 
Vou98
Vouillon, J. Using modules as classes. In FOOL5, January 1998.

CITED BY  21

Collaborative Colleagues:
Kathleen Fisher: colleagues
John Reppy: colleagues