|
ABSTRACT
This paper presents WHITEOAK: a JAVA extension that introduces structural type equivalence and subtyping into the language. We argue that structural subtyping addresses common software design problems, and promotes the development of loosely coupled modules without compromising type safety. We discuss language design issues, including subtyping in face of self-referencing structural types, compile-time operators for computing the new types from existing ones, and the semantics of constructors and non-abstract methods in structural types. We describe implementation techniques, including the compile-time and run-time challenges that we faced (in particular, preserving the identity of objects). Measurement indicate that the performance of our implementation of structural dispatching is comparable to that of the JVM's standard invocation mechanisms.
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
|
Timothy Andrews , Craig Harris, Combining language and database advances in an object-oriented development environment, Conference proceedings on Object-oriented programming systems, languages and applications, p.430-440, October 04-08, 1987, Orlando, Florida, United States
|
 |
4
|
|
| |
5
|
|
| |
6
|
|
 |
7
|
|
| |
8
|
|
 |
9
|
Gilad Bracha , Martin Odersky , David Stoutamire , Philip Wadler, Making the future safe for the past: adding genericity to the Java programming language, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.183-200, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
10
|
K. B. Bruce and J. N. Foster. LOOJ: Weaving LOOM into Java. In Proceedings of the 18th European Conference on Object-Oriented Programming (ECOOP'04), pages 389--413, Oslo, Norway, June 14-18 2004.
|
 |
11
|
Martin Büchi , Wolfgang Weck, Compound types for Java, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.362-373, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
12
|
|
 |
13
|
Richard P. Gabriel , Linda Northrop , Douglas C. Schmidt , Kevin Sullivan, Ultra-large-scale systems, Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
[doi> 10.1145/1176617.1176645]
|
| |
14
|
|
 |
15
|
Peter F. Sweeney , Joseph (Yossi) Gil, Space and time-efficient memory layout for multiple inheritance, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.256-275, November 01-05, 1999, Denver, Colorado, United States
|
| |
16
|
|
| |
17
|
W. Harrison, D. Lievens, and T. Walsh. Using recombinance to improve modularity. Technical Report 104 Software Structures Group, Trinity College Dublin, Dublin, Ireland, March 2007.
|
 |
18
|
Haruo Hosoya , Alain Frisch , Giuseppe Castagna, Parametric polymorphism for XML, Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.50-62, January 12-14, 2005, Long Beach, California, USA
|
| |
19
|
B. N. Jørgensen. Integration of independently developed components through aliased multi-object type widening. Journal of Object Technology, 3(11):55--76, 2004.
|
| |
20
|
K. Läufer, G. Baumgartner, and V. F. Russo. Safe structural conformance for Java. The Computer Journal, 43(6):469--481, 2001.
|
| |
21
|
|
| |
22
|
|
 |
23
|
Emerson R. Murphy-Hill , Philip J. Quitslund , Andrew P. Black, Removing duplication from java.io: a case study using traits, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
[doi> 10.1145/1094855.1094963]
|
| |
24
|
|
 |
25
|
|
| |
26
|
N. Schärli, S. Ducasse, O. Nierstrasz, and A. P. Black. Traits: Composable units of behavior. In L. Cardelli, editor, Proc. of the 17th Euro. Conf. on OO Prog. (ECOOP'03), volume 2743 of LNCS, pages 248--274, Darmstadt, Germany, July 21--25 2003. Springer.
|
 |
27
|
|
 |
28
|
Yoav Zibin , Joseph Yossi Gil, Efficient subtyping tests with PQ-encoding, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.96-107, October 14-18, 2001, Tampa Bay, FL, USA
|
CITED BY
|
|
Gilles Dubochet , Martin Odersky, Compiling structural types on the JVM: a comparison of reflective and generative techniques from Scala's perspective, Proceedings of the 4th workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems, p.34-41, July 06-06, 2009, Genova, Italy
|
|