CS690A: Seminar in Advanced Compiling and Programming Systems
or
``So you want to know how to make Java run fast''
Spring 1999
Course Description
Papers:
-
References
-
The Java
Language Specification
-
The
Java Virtual Machine Specification
-
Preliminaries:
-
The Java Factor
-
Why are we using Java again?
-
Self
-
An Efficient Implementation of Self,
a Dynamically-Typed Object-Oriented Language Based on Prototypes
-
Making Pure Object-Oriented Languages
Practical
-
Reconciling Responsiveness with Performance
in Pure Object-Oriented Languages
-
Type analysis, control flow analysis
-
Selective Specialization for Object-Oriented
Languages
-
Optimization of Object-Oriented
Programs Using Static Class Hierarchy Analysis
-
Profile-Guided Receiver Class
Prediction
-
Reducing Indirect Function Call Overhead
in C++ Programs
-
Simple and Effective Link-Time Optimization
of Modula-3 Programs
-
Simple and Effective Analysis of Statically-Typed
Object-Oriented Programs
-
Object-oriented type inference
-
Constraint-Based Type Inference and Parametric
Polymorphism
-
The Cartesian Product Algorithm
-
Dynamic vs. Static Optimization Techniques
for Object-Oriented Languages
-
Precise Concrete Type Inference for Object-Oriented
Languages
-
Call Graph Construction in Object-Oriented
Languages
-
Fast Interprocedural Class Analysis
-
Pointer/alias analysis
-
Type-Based Alias Analysis
-
Partial
Redundancy Elimination for Access Path Expressions
-
Automatic Inline Allocation of Objects
-
An Evaluation of Automatic Object Inline
Allocation Techniques
-
From
Polyvariant Flow Information to Intersection and Union Types
-
A Safe Approximate Algorithm for Interprocedural
Pointer Aliasing
-
Points-to Analysis in Almost Linear
Time
-
Fast and Accurate Flow-Insensitive Points-To
Analysis
-
Putting Pointer Analysis to Work
-
Mobile code and security
-
Extensible Security Architectures for
Java
-
Proof-Carrying Code
-
Safe Kernel Extensions Without Run-Time
Checking
-
The Design and Implementation of a Certifying
Compiler
-
A Decentralized Model for Information Flow
Control
- Java language extensions: genericity
- Parameterized Types for Java
- Pizza into Java: Translating theory into
practice
- Adding Type Parameterization to the Java
Language
- Making the future safe for the past:
Adding Genericity to the Java Programming Language
- Compatible Genericity with Run-time
Types for the Java Programming Language
- Parametric Polymorphism for Java: A
Reflective Solution