On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Bounded quantification is undecidable
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A syntactic approach to type soundness
Information and Computation
Bounded existentials and minimal typing
Theoretical Computer Science
Abstract types have existential types
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Types and programming languages
Types and programming languages
Existential Types for Imperative Languages
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Unifying Genericity - Combining the Benefits of Virtual Types and Parameterized Classes
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Adding wildcards to the Java programming language
Proceedings of the 2004 ACM symposium on Applied computing
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Understanding access restriction of variant parametric types and Java wildcards
Proceedings of the 2005 ACM symposium on Applied computing
Variant parametric types: A flexible subtyping scheme for generics
ACM Transactions on Programming Languages and Systems (TOPLAS)
A flow-based approach for variant parametric types
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Tribe: a simple virtual class calculus
Proceedings of the 6th international conference on Aspect-oriented software development
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Barendregt's Variable Convention in Rule Inductions
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
On ownership and accessibility
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Existential Quantification for Variant Ownership
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
On the Decidability of Subtyping with Bounded Existential Types
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Ownership and immutability in generic Java
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Encoding ownership types in java
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Towards a semantic model for Java wildcards
Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
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
Types, regions, and effects for safe programming with object-oriented parallel frameworks
Proceedings of the 25th European conference on Object-oriented programming
Proceedings of the 25th European conference on Object-oriented programming
Separating ownership topology and encapsulation with generic universe types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Exact type parameterization and ThisType support
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
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
Hi-index | 0.00 |
Wildcards are a complex and subtle part of the Java type system, present since version 5.0. Although there have been various formalisations and partial type soundness results concerning wildcards, to the best of our knowledge, no system that includes all the key aspects of Java wildcards has been proven type sound. This paper establishes that Java wildcards are type sound. We describe a new formal model based on explicit existential types whose pack and unpack operations are handled implicitly, and prove it type sound. Moreover, we specify a translation from a subset of Java to our formal model, and discuss how several interesting aspects of the Java type system are handled.