Efficient implementation of first-class polymorphic methods in Java

Date
2005
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract

This thesis describes a new implementation architecture for polymorphic methods in Generic Java using the NEXTGEN compiler framework. The standard Generic Java (Java 1.5) compiler erases generic types at compilation. This transformation prohibits type-dependent operations, limiting generic expressivity. Type erasure causes unchecked warnings at compilation, and unexpected behavior or exceptions at runtime. Alternative reflection-based implementations of Generic Java support type-dependent operations at the cost of significant execution overhead. In contrast, this work presents an efficient implementation of polymorphic methods using NEXTG EN. An extended NEXTGEN compiler generates snippet environment template classes to encode type-dependent operations for polymorphic methods. A customized class-loader generates specialized template instantiations on demand. This demand-driven code specialization provides an efficient mechanism to propagate runtime type information, while maintaining backwards compatibility with existing libraries and Java Virtual Machines. Benchmarks show runtime support for polymorphic methods in NEXTG EN outperforms reflection-based approaches, with runtime overhead comparable to erasure-based Generic Java.

Description
Degree
Master of Science
Type
Thesis
Keywords
Computer science
Citation

Sasitorn, James. "Efficient implementation of first-class polymorphic methods in Java." (2005) Master’s Thesis, Rice University. https://hdl.handle.net/1911/17822.

Has part(s)
Forms part of
Published Version
Rights
Copyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.
Link to license
Citable link to this page