|
Warning: The download time has expired please click on the item to try again.
ABSTRACT
This paper describes wildcards, a new language construct designed to increase the flexibility of object-oriented type systems with parameterized classes. Based on the notion of use-site variance, wildcards provide a type safe abstraction over different instantiations of parameterized classes, by using '?' to denote unspecified type arguments. Thus they essentially unify the distinct families of classes often introduced by parametric polymorphism. Wildcards are implemented as part of the upcoming addition of generics to the Java™ programming language, and will thus be deployed world-wide as part of the reference implementation of the Java compiler javac available from Sun Microsystems, Inc. By providing a richer type system, wildcards allow for an improved type inference scheme for polymorphic method calls. Moreover, by means of a novel notion of wildcard capture, polymorphic methods can be used to give symbolic names to unspecified types, in a manner similar to the "open" construct known from existential types. Wildcards show up in numerous places in the Java Platform APIs of the upcoming release, and some of the examples in this paper are taken from these APIs.
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
|
Ole Agesen , Stephen N. Freund , John C. Mitchell, Adding type parameterization to the Java language, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.49-65, October 05-09, 1997, Atlanta, Georgia, United States
|
 |
2
|
|
 |
3
|
Gilad Bracha , David Griswold, Strongtalk: typechecking Smalltalk in a production environment, Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications, p.215-230, September 26-October 01, 1993, Washington, D.C., United States
|
 |
4
|
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
|
| |
5
|
K. Bruce. Subtyping is not a good match for object-oriented programming languages. In ECOOP97 {11}.
|
| |
6
|
|
 |
7
|
Robert Cartwright , Guy L. Steele, Jr., Compatible genericity with run-time types for the Java programming language, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.201-215, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
8
|
W. Cook. A proposal for making Eiffel type-safe. In European Conference on Object-Oriented Programming, pages 57--70, Nottingham, England, July 1989. ECOOP89, Cambridge University Press. Stephen Cook, editor.
|
 |
9
|
|
| |
10
|
ECMA. C# language specification. http://www.ecma-international.org/publications/standards/Ecma-334.htm, 2002.
|
| |
11
|
ECOOP97. European Conference on Object-Oriented Programming, Jyväskylä, Finland, June 1997. LNCS 1241, Springer Verlag. Mehmet Akşit and Satoshi Matsuoka, editors.
|
| |
12
|
ECOOP99. European Conference on Object-Oriented Programming, Lisbon, Portugal, June 1999. LNCS 1628, Springer Verlag. Rachid Guerraoui, editor.
|
| |
13
|
|
| |
14
|
E. Ernst. gbeta - a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance. PhD thesis, Department of Computer Science, University of Aarhus, Århus, Denmark, 1999.
|
 |
15
|
Atshushi Igarashi , Benjamin Pierce , Philip Wadler, Featherwieght Java: a minimal core calculus for Java and GJ, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.132-146, November 01-05, 1999, Denver, Colorado, United States
|
| |
16
|
|
| |
17
|
|
 |
18
|
|
| |
19
|
D. MacQueen. SML '97 conversion guide. http://www.smlnj.org/doc/Conversion/index.html, 2003.
|
| |
20
|
|
 |
21
|
|
| |
22
|
|
 |
23
|
|
 |
24
|
|
 |
25
|
|
| |
26
|
OOPSLA98. Object Oriented Programming: Systems, Languages and Applications, Vancouver, BC, Oct. 1998. ACM Press. Craig Chambers, editor.
|
| |
27
|
|
| |
28
|
D. Stoutamire and S. Omohundro. The Sather 1.1 specification. Technical Report TR-96-012, International Computer Science Institute, Berkeley, CA, Aug. 1996.
|
| |
29
|
K. K. Thorup. Genericity in Java with virtual types. In ECOOP97 {11}, pages 444--471.
|
| |
30
|
|
| |
31
|
M. Torgersen. Virtual types are statically safe. In K. Bruce, editor, 5th Workshop on Foundations of Object-Oriented Languages, San Diego, CA, Jan. 1998.
|
| |
32
|
M. Torgersen. Unifying Abstractions. PhD thesis, Computer Science Department, University of Aarhus, bogade 34, DK-8200 rhus N, Sept. 2001.
|
CITED BY 19
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bent Bruun Kristensen , Ole Lehrmann Madsen , Birger Møller-Pedersen, The when, why and why not of the BETA programming language, Proceedings of the third ACM SIGPLAN conference on History of programming languages, p.10-1-10-57, June 09-10, 2007, San Diego, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|