| I am a Research Staff Member at the T.J.
Watson Research Center in Hawthorne, New York, which is part of IBM's
Research
Division.
I consider myself an experimental computer scientist.
I build software prototypes that explore cutting-edge software engineering
technology and analyze that technology's behavior.
The technologies that I am most interested in are the analysis and optimization
of object-oriented languages, and software distribution.
One interest of mine is determining the sweet spot between the precision
of software analysis and the time required to perform the analysis.
-
Adaptive optimization techniques, which apply optimizations at program
execution time, require selective use of optimization to avoid excessive
overhead.
Run-time measurements provide the feedback that can be used to
identify likely candidates for optimization.
These measurements must be fast also to avoid excessive overhead, and are,
therefore, excellent candidates to trade off measurement precision for speed in
gathering the measurement data.
I am involved in building a prototype adaptive optimization system,
which is being developed within the
Jalapeño
project.
-
In our work on detecting dead data members in C++ applications,
Frank Tip and I
developed a conservative, yet efficient, algorithm to detect dead data members.
The algorithm's evaluation on a set of benchmarks demonstrated
its effectiveness.
The algorithm and the evaluation results were published in PLDI'98.
Another research interest explores how to make object-oriented programs
run faster and require less memory. Doing this well requires in-depth knowledge
of how the implementation of language features impacts program performance.
-
I co-developed JAX, Java
application extractor, a tool that reduces the size of Java
code.
JAX has incorporated a number of previously techiques such as eliminating
unreachable methods, eliminating dead data members, and transforming class
hierarchies to reduce the size of Java code.
-
With Michael Burke, I have quantified the space overhead for object-oriented
features. And with Yossi Gil,
I have developed new techniques to reduce the space and
time overhead for multiple inheritance.
Software distribution is another research interest of mine.
-
In general, I am interested in the problem of how to package software in one
computing environment so that it may be successfully deployed in another
computing environment over the internet.
JAX is a specific approach for extracting Java code and I am interested in
exploiting this technology for software distribution.
At Columbia University, I received
my M.S. in Computer Science in May, 1989 from the School
of Engineering and Applied Science, and I received my B.S. in Computer
Science in January, 1984 from the School
of General Studies.
Since graduating from Columbia as an undergraduate,
I have been working at the IBM T.J. Watson Research Center. It is a great
place to work!
|