ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Adding wildcards to the Java programming language
Full text PdfPdf (208 KB)
Source Symposium on Applied Computing archive
Proceedings of the 2004 ACM symposium on Applied computing table of contents
Nicosia, Cyprus
SESSION: Object-oriented programming languages and systems (OOP) table of contents
Pages: 1289 - 1296  
Year of Publication: 2004
ISBN:1-58113-812-1
Authors
Mads Torgersen  University of Aarhus, Århus N, Denmark
Christian Plesner Hansen  University of Aarhus, Århus N, Denmark
Erik Ernst  University of Aarhus, Århus N, Denmark
Peter von der Ahé  University of Aarhus, Århus N, Denmark
Gilad Bracha  Sun Microsystems, Inc., Santa Clara, CA
Neal Gafter  Sun Microsystems, Inc., Santa Clara, CA
Sponsor
SIGAPP: ACM Special Interest Group on Applied Computing
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 65,   Citation Count: 19
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/967900.968162
What is a DOI?

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
2
3
4
 
5
K. Bruce. Subtyping is not a good match for object-oriented programming languages. In ECOOP97 {11}.
 
6
7
 
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
 
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

Collaborative Colleagues:
Mads Torgersen: colleagues
Christian Plesner Hansen: colleagues
Erik Ernst: colleagues
Peter von der Ahé: colleagues
Gilad Bracha: colleagues
Neal Gafter: colleagues