OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
The annotated C++ reference manual
The annotated C++ reference manual
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A parallel object-oriented language with inheritance and subtyping
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Strongtalk: typechecking Smalltalk in a production environment
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Pizza into Java: translating theory into practice
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Adding type parameterization to the Java language
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
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
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
Featherweight Java: a minimal core calculus for Java and GJ
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Design and implementation of generics for the .NET Common language runtime
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
The Definition of Standard ML
A Statically Safe Alternative to Virtual Types
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
On Variance-Based Subtyping for Parametric Types
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Converting java programs to use generic libraries
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Understanding access restriction of variant parametric types and Java wildcards
Proceedings of the 2005 ACM symposium on Applied computing
Associated types and constraint propagation for mainstream object-oriented generics
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Scalable component abstractions
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Union types for object-oriented programming
Proceedings of the 2006 ACM symposium on Applied computing
Variant parametric types: A flexible subtyping scheme for generics
ACM Transactions on Programming Languages and Systems (TOPLAS)
cJ: enhancing java with safe type conditions
Proceedings of the 6th international conference on Aspect-oriented software development
Typed parametric polymorphism for aspects
Science of Computer Programming - Special issue: Foundations of aspect-oriented programming
An extended comparative study of language support for generic programming
Journal of Functional Programming
The when, why and why not of the BETA programming language
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
StrongAspectJ: flexible and safe pointcut/advice bindings
Proceedings of the 7th international conference on Aspect-oriented software development
A Model for Java with Wildcards
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Java type inference is broken: can we fix it?
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Improving type error messages for generic java
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Range parameterized types: use-site variance without the existential questions
Proceedings of the 11th International Workshop on Formal Techniques for Java-like Programs
Proceedings of the 11th International Workshop on Formal Techniques for Java-like Programs
Towards gradual typing for generics
Proceedings for the 1st workshop on Script to Program Evolution
Safer typing of complex API usage through Java generics
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Effective and Efficient Compilation of Run-Time Generics in Java
Electronic Notes in Theoretical Computer Science (ENTCS)
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Morphing: Structurally shaping a class by reflecting on others
ACM Transactions on Programming Languages and Systems (TOPLAS)
Towards a semantic model for Java wildcards
Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs
Functional programming with C++ template metaprograms
CEFP'09 Proceedings of the Third summer school conference on Central European functional programming school
A language for generic programming in the large
Science of Computer Programming
Refactoring using type constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
Taming the wildcards: combining definition- and use-site variance
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Taming wildcards in Java's type system
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Guarded type promotion: eliminating redundant casts in Java
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
Exact type parameterization and ThisType support
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
A core calculus for scala type checking
MFCS'06 Proceedings of the 31st international conference on Mathematical Foundations of Computer Science
Efficiently refactoring java applications to use generic libraries
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
On ownership and accessibility
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Improving type error messages for generic Java
Higher-Order and Symbolic Computation
Design of concept libraries for c++
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
ACM Transactions on Programming Languages and Systems (TOPLAS)
Extensibility for the masses: practical extensibility with object algebras
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Java wildcards meet definition-site variance
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Refactoring using type constraints
SAS'07 Proceedings of the 14th international conference on Static Analysis
Morphing: safely shaping a class in the image of others
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Inference rules for generic code migration of aspect-oriented programs
Science of Computer Programming
Hi-index | 0.00 |
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.