Compatible Genericity with Run-time Types for the Java™ Programming Language

69Citations
Citations of this article
26Readers
Mendeley users who have this article in their library.

Abstract

The most serious impediment to writing substantial programs in the Java™ programming language is the lack of a genericity mechanism for abstracting classes and methods with respect to type. During the past two years, several research groups have developed Java extensions that support various forms of genericity, but none has succeeded in accommodating general type parameterization (akin to Java arrays) while retaining compatibility with the existing Java Virtual Machine. In this paper, we explain how to support general type parameterization - including both non-variant and covariant subtyping - on top of the existing Java Virtual Machine at the cost of a larger code footprint and the forwarding of some method calls involving parameterized classes and methods. Our language extension is forward and backward compatible with the Java 1.2 language and run-time environment: programs in the extended language will run on existing Java 1.2 virtual machines (relying only on the unparameterized Java core libraries) and all existing Java 1.2 programs have the same binary representation and semantics (behavior) in the extended language.

Cite

CITATION STYLE

APA

Cartwright, R., & Steele, G. L. (1998). Compatible Genericity with Run-time Types for the JavaTM Programming Language. SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 33(10), 201–215. https://doi.org/10.1145/286942.286958

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free