PROJECT TITLE:

Java Compilation/Optimization

PROJECT ADVISOR:

Anindya Banerjee

Purpose:

A fundamental benefit of modern programming languages like Java is the power of abstraction: programmers are able to abstract away from low-level, system-specific implementation details and construct reusable, modular and secure systems. Unfortunately, abstraction makes the efficient implementation of these langauge hard. In particular, the compiler has to work harder to obtain informations hidden awway in abstractions. For example, java's garbage collection raises serious performance-related questions for distributed applications; it raises even more serious problems in real-time settings. A second challenge is that of the compilation of incomplete code fragments, on particular link-time optimizations.

Approach:

We will address both of these challenge using a notion of control-flow types that encodes within it the flow information at every program point, maintains the accuracy of the information through every stage of the compiler and specializes data representation to every context. Products of this research will include a compiler workbench that can be tuned with varying degrees of flow information, and a new framework that supports compilation of incomplete code fragments. The upshot of the workbench and framework will be improved performance of applications written in Java and similar languages.

Status:

 

Related Publications: