Abstract:
Pure object-oriented languages have tended to assume that classes can take the place of modules in programming in the large. We argue that modules are still needed in these languages and present the design of a module construct for our language LOOM which works well with the object-oriented paradigm. We discuss and illustrate the advantages of these modules over a class-only approach. In particular we illustrate the advantages of modules in supporting better control over information hiding, including the support of access like C++'s friends. Research paper: language design 1 Introduction As programmers and language designers have gotten more experience with object-oriented languages, it has become clearer that class boundaries are not always the correct abstraction layer for large programs. Interestingly it is the hybrid languages which have grown from ADT-style languages which have often provided the best support for modularity. Thus Ada 95 [Int95] and Modula-3 [CDG + 88] have int...
Citations
|
1208
|
Object-Oriented Software Construction
– Meyer
- 1988
|
|
168
|
Type Systems
– Cardelli
- 1997
|
|
140
|
Design patterns: Abstraction and reuse of object-oriented design
– Gamma, Helm, et al.
- 1993
|
|
73
|
Virtual Classes: A Powerful Mechanism in Object-Oriented Programming
– Madsen, Moller-Pedersen
- 1989
|
|
61
|
A statical safe alternative to virtual types
– Bruce, Odersky, et al.
- 1998
|
|
58
|
Using parameterized signatures to express modular structure
– Jones
- 1996
|
|
50
|
Independently extensible systems: Software engineering potential and challenges
– Szyperski
- 1996
|
|
48
|
Import is not inheritance. why we need both: Modules and classes
– Szyperski
|
|
33
|
A type system for prototyping languages
– Katiyar, Mitchell
- 1995
|
|
30
|
Subtyping is not a good "Match" for object-oriented languages
– Bruce, Fiech, et al.
- 1997
|
|
27
|
Statically typed friendly functions via partially abstract types
– Pierce, Turner
- 1993
|
|
22
|
Strong typing of object-oriented languages revisited
– Madsen, Magnusson
- 1990
|
|
7
|
Abstraction mechanisms in Theta
– Day, Gruber, et al.
- 1994
|
|
7
|
A module system for LOOM. Williams College Senior Honors Thesis
– Petersen
- 1996
|
|
5
|
Krab Thorup. Genericity in Java with virtual types
– Kresten
- 1997
|
|
2
|
Ada 95 Reference Manual, version 6.0
– Intermetrics
- 1995
|