On the reification of Java wildcards


Maurizio Cimadamore, Mirko Viroli

Science of Computer Programming 73(2-3), pages 59-75
October 2008

Providing runtime information about generic types–that is, reifying generics–is a challenging problem studied in several research papers in the last years. This problem is not tackled in current version of the Java programming language (Java 6), which consequently suffers from serious safety and coherence problems. The quest for finding effective and efficient solutions to this problem is still open, and is further made more complicated by the new mechanism of wildcards introduced in Java J2SE 5.0: its reification aspects are currently unexplored and pose serious semantics and implementation issues.

In this paper, we discuss an implementation support for wildcard types in Java. We first analyse the problem from an abstract viewpoint, discussing the issues that have to be faced in order to extend an existing reification technique so as to support wildcards, namely, subtyping, capture conversion and wildcards capture in method calls. Secondly, we present an implementation in the context of the EGO compiler. EGO is an approach for efficiently supporting runtime generics at compile-time: synthetic code is automatically added to the source code by the extended compiler, so as to create generic runtime type information on a by need basis, store it into object instances, and retrieve it when necessary in type-dependent operations. The solution discussed in this paper makes the EGO compiler the first reification approach entirely dealing with the present version of the Java programming language.

(keywords) Generic types, Wildcards, Java, Reification

Journals & Series

Publications

Publications / Views

Home

Clouds
•  tags  •  authors  •  editors  •  journals  

Year
 2023    2022    2021    2020    2019    2018    2017    2016    2015    2014–1927

Sort
•  in journal  •  in proc  •  chapters  •  books  •  edited  •  spec issues  •  editorials  •  entries  •  manuals  •  tech reps  •  phd th  •  others  

Status
•  online  •  in press  •  proof  •  camera-ready  •  revised  •  accepted  •  revision  •  submitted  •  draft  •  note  

Services
•  ACM Digital Library  •  DBLP  •  IEEE Xplore  •  IRIS  •  PubMed  •  Google Scholar  •  Scopus  •  Semantic Scholar  •  Web of Science  •  DOI  

Publication

— authors

— editors

Marjan Mernik

— status

published

— sort

article in journal

— publication date

October 2008

— journal

Science of Computer Programming

— volume

73

— issue

2-3

— pages

59-75

URLs

original page

identifiers

— DOI

doi:10.1016/j.scico.2008.06.005

— print ISSN

0167-6423

notes

— note

Selected Papers from the 22th ACM Symposium on Applied Computing (SAC 2007)

Partita IVA: 01131710376 — Copyright © 2008–2023 APICe@DISI – PRIVACY