| Symmetric encapsulated multi-methods to abstract over application structure |
| Full text |
Pdf
(393 KB)
|
Source
|
Symposium on Applied Computing
archive
Proceedings of the 2009 ACM symposium on Applied Computing
table of contents
Honolulu, Hawaii
SESSION: Object oriented programming languages and systems track
table of contents
Pages 1873-1880
Year of Publication: 2009
ISBN:978-1-60558-166-8
|
|
Authors
|
|
| Sponsor |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 8, Downloads (12 Months): 23, Citation Count: 0
|
|
|
ABSTRACT
In object systems, classes take the role of modules, and interfaces consist of methods. Because methods are encapsulated in objects, interfaces in object systems do not allow abstracting over where methods are implemented. This implies that any change to the implementation structure may cause a rippling effect. Sometimes this unduly restricts the scope of software evolution, in particular for methods with multiple parameters where there is no clear owner. We propose a simple scheme where symmetric methods may be defined in the classes of any of their parameters. This allows client code to be oblivious of what class contains a method implementation, and therefore immune against it changing. When combined with multiple dynamic dispatch, this scheme allows for modular extensibility (but not modular type-checking) where a method defined in one class is overridden by a method defined in a class that is not its subtype. In this paper, we illustrate the scheme by extending a core calculus of class-based languages with these symmetric encapsulated multi-methods, and prove the result sound.
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
|
Allen, Chase, Hallett, Luchangco, Maessen, Ryu, Steele, and Tobin-Hochstadt. The Fortress Language Specification. Version 1.0. Sun Microsystems, 2008.
|
 |
2
|
Eric Allen , J. J. Hallett , Victor Luchangco , Sukyoung Ryu , Guy L. Steele, Jr., Modular multiple dispatch with multiple inheritance, Proceedings of the 2007 ACM symposium on Applied computing, March 11-15, 2007, Seoul, Korea
[doi> 10.1145/1244002.1244245]
|
 |
3
|
Daniel G. Bobrow , Linda G. DeMichiel , Richard P. Gabriel , Sonya E. Keene , Gregor Kiczales , David A. Moon, Common Lisp Object System specification, ACM SIGPLAN Notices, v.23 n.SI, p.1-142, September 1988
[doi> 10.1145/885631.885632]
|
 |
4
|
|
 |
5
|
John Boyland , Giuseppe Castagna, Parasitic methods: an implementation of multi-methods for Java, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.66-76, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
6
|
|
 |
7
|
|
| |
8
|
|
 |
9
|
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
[doi> 10.1145/1133651.1133655]
|
| |
10
|
B. Foote, R. E. Johnson, and J. Noble. Efficient multimethods in a single dispatch language. In ECOOP, pages 337--361, 2005.
|
| |
11
|
C. Frost and T. Millstein. Modularly typesafe interface dispatch in jpred. In The 2006 International Workshop on Foundations and Developments of Object-Oriented Languages (FOOL/WOOD '06), January 2006.
|
| |
12
|
W. Harrison, D. Lievens, and T. Walsh. Continuum/j language specification. Technical report, Trinity College Dublin, 2008.
|
 |
13
|
|
 |
14
|
|
| |
15
|
D. Lievens and W. Harrison. Symmetric encapsulated multi-methods. Technical report, Trinity College Dublin, 2008.
|
 |
16
|
Todd Millstein , Mark Reay , Craig Chambers, Relaxed MultiJava: balancing extensibility and modular typechecking, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
| |
17
|
|
 |
18
|
|
 |
19
|
|
|