scispace - formally typeset
Journal ArticleDOI

Optimizing array reference checking in Java programs

Samuel P. Midkiff, +2 more
- 01 Jul 1998 - 
- Vol. 37, Iss: 3, pp 409-453
Reads0
Chats0
TLDR
A collection of transformations that can dramatically reduce overhead in the common case (when the access is valid) while preserving the program state at the time of an exception while fully compliant with the Java language semantics are described.
Abstract
The JavaTM language specification requires that all array references be checked for validity. If a reference is invalid, an exception must be thrown. Furthermore, the environment at the time of the exception must be preserved and made available to whatever code handles the exception. Performing the checks at run time incurs a large penalty in execution time. In this paper we describe a collection of transformations that can dramatically reduce this overhead in the common case (when the access is valid) while preserving the program state at the time of an exception. The transformations allow trade-offs to be made in the efficiency and size of the resulting code, and are fully compliant with the Java language semantics. Preliminary evaluation of the effectiveness of these transformations shows that performance improvements of 10 times and more can be achieved for array-intensive Java programs.

read more

Citations
More filters
Journal ArticleDOI

The Jalapeño virtual machine

TL;DR: Jalapeno is a virtual machine for JavaTM servers written in the Java language to be as self-sufficient as possible and to obtain high quality code for methods that are observed to be frequently executed or computationally intensive.
Proceedings ArticleDOI

The Jalapeño dynamic optimizing compiler for Java

TL;DR: The optimal order for basic block generation that minimizes number of regeneration is a topological order (ignoring the back edges), however, because BC2IR computes the control ow graph in the same pass, it cannot compute the optimal order a priori.
Proceedings ArticleDOI

ABCD: eliminating array bounds checks on demand

TL;DR: ABCD is a light-weight algorithm for elimination of Array Bounds Checks on Demand that can be applied to a set of frequently executed (hot) bounds checks, which makes it suitable for the dynamic-compilation setting, in which compile-time cost is constrained but hot statements are known.
Journal ArticleDOI

Book review: Applied cryptography: Protocols, algorithms, and source code in C

TL;DR: This is Applied Cryptography Protocols Algorithms And Source Code In C Applied Cryptographic Protocols algorithms and Source Code in C By Schneier Bruce Author Nov 01 1995 the best ebook that you can get right now online.
Journal ArticleDOI

Java programming for high-performance numerical computing

TL;DR: Programming techniques that lead to Java numerical codes with performance comparable to FORTRAN or C, the more traditional languages for this field are discussed.
References
More filters
Book

Compilers: Principles, Techniques, and Tools

TL;DR: This book discusses the design of a Code Generator, the role of the Lexical Analyzer, and other topics related to code generation and optimization.
Proceedings ArticleDOI

Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints

TL;DR: In this paper, the abstract interpretation of programs is used to describe computations in another universe of abstract objects, so that the results of abstract execution give some information on the actual computations.
Book

The Java Language Specification

TL;DR: The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language.
Book

Applied Cryptography: Protocols, Algorithms, and Source Code in C

TL;DR: This document describes the construction of protocols and their use in the real world, as well as some examples of protocols used in the virtual world.