programming language optimization, program analysis, distributed object
schema transformation and integration, compiling object-oriented languages,
Thomas J. Watson Research Center Hawthorne, NY March 1983 - present Research
- Manager August 1987 - May 2000
- Project Leader: XML Transformation project May 2000 - present
Applications that exchange and share data use different definitions
of the data, especially when integration was not anticipated. This
project provides tools for semi-automatic matching of corresponding
elements of data definitions that share common content, and reconciling
differences between them. We have developed a general method, similarity
analysis, for matching between a pair of graphs whose nodes are labelled
with certain properties, which we applied to automatic support of
matching between XML Schemas. We implemented similarity analysis in
the Eclipse Modelling Framework, adding a generic similarity plugin
to the Eclipse Mapping Framework, and a specialized similarity plugin
to the XML Schema Mapping Editor. Our code is now being assimilated
into the product version of the above Eclipse tools, which is part
of the WebSphere Application Deveoper (WSAD) product.
- Manager: Object-Oriented Optimization group April 1994 - May 2000
Group developed compiler and run-time optimization techniques for C++
and Java. The technologies we developed included: reducing the cost
of virtual dispatch; efficient memory layouts for implementing objects
and classes; reducing the size of Java class files through program analysis;
efficient locking in Java; concurrent garbage collection for Java; inter-class
and interprocedural optimization in the presence of Java dynamic class
loading. We developed prototypes and measured the effectiveness of these
techniques, which were incorporated into IBM product compilers and tools.
We authored numerous publications and patents. My own work focused on:
- efficient memory layouts for C++, in particuar for implementing
virtual dispatch, virtual inheritance, and the semantics of C++
object construction/destruction. The memory layout we recommended,
based on our experimental results, was incorporated as the "Best
of Breed" object model into IBM's Visual Age C++ V5 compiler.
- extant analysis for Java, a technique that allows for inter-class
optimizations such as devirtualizing method calls for known classes,
and the safe and efficient disabling of these optimizations when
required by further class loading. This technique has been incorporated
into IBM's Jikes Research Virtual Machine.
- Member of Parallel Translation (PTRAN) group March 1983 - April 1994
Group Manager August 1987 - April 1994
We developed technology and an implementation for automatically restructuring
FORTRAN programs for execution on shared-memory parallel architectures.
We developed a representation of program control flow, the Progam Dependence
Graph (PDG), and combined it with a representation of program data flow,
Static Single Assignment (SSA), which we authored with others at Watson.
The resulting SSA/PDG representation became the basis for modern industrial
and academic optimizing compilers and program understanding tools such
as for restructuring legacy code, testing, and debugging. My own work
focused in particular on developing practical techniques for interprocedural
- efficient flow-sensitive analysis;
- pointer analysis;
- array subscript analysis;
- minimizing recompilation in the presence of interprocedural analysis.
I managed our collaboration with IBM development sites (1989-1994)
to incorporate our technologies into an IBM product Fortran compiler
(the IBM XL FORTRAN compiler, which first shipped in 1996).
- New York University, Courant Institute
Adjunct Lecturer, teaching undergraduate and graduate courses. June
1979 - January 1983
Research Assistant, September 1979 - August 1982
- Member of NYUADA project, developing automatic syntactic error
diagnosis and recovery component.
Research and Teaching Assistant September 1977 - May 1979
- Testing and debugging of CIMS PL/I compiler.
Hunter College, City University of New York January - May 1979
- Adjunct Lecturer, teaching undergraduate courses in programming
and remedial mathematics.
Ph.D. in Computer Science February 1983 New York University
Thesis: "A Practical Method for LR and LL Syntactic Error Diagnosis and
Advisor: Gerald A. Fisher, Jr.
Master of Science in Computer Science February 1980 New York University
Advisor: Paul Abrahams
- Vice Chair of ACM SIGPLAN Executive Committee, two year elected position
beginning July 2001. As vice chair I am responsible for approving and
tracking all conferences and workshops sponsored or endorsed by SIGPLAN,
including final budget review.
- Member-at-Large of ACM SIGPLAN Executive Committee, July 1997- June
twice elected to two-year position.
- Chair of SIGPLAN Distinguished Services Award Committee, September
1999 - present.
- General Chair, ACM SIGPLAN '01 Conference on Programming Language
Design and Implementation (PLDI), Snowbird, Utah, June 18-22, 2001.
The conference included a full-day tutorial program, three co-located
workshops, a student poster session, and two Birds-of-a-Feather sessions.
Conference attendance was more than 300, and a survey of attendees gave
excellent marks for all aspects of the confernence.
- Industrial Panel Chair, ACM SIGPLAN '96 Conference on PLDI, Atlanta,
May 1-4, 1999. Session title: "Trends in the Future of Industrial
- Program Chair, ACM SIGPLAN '96 Conference on PLDI,Philadelphia, Pennsylvania,
May 22-24, 1996.
- Program Committee Member, ACM SIGPLAN '95 Conference on PLDI, LaJolla,
California, June 18-21, 1995.
- Program Committee Member, ACM SIGPLAN '90 Conference on PLDI, White
Plains, New York, June 20-22, 1990.
- Member, ACM Scholars' Advisory Group on electronic publication, 1994.
- Steering Committee Memberships:
SIGPLAN PLDI: July 2001 - present.
SIGPLAN POPL (Principles of Programming Languages): July 2001 - present.
SIGPLAN OOPSLA (Object-Oriented Programming Systems, Languages, and
October 2001 - present.
- ACM SIGPLAN (Special Interest Group on Programming Languages) Selection
of 50 Most Influential Papers Published in Twenty Years of PLDI (1979-1999)
included paper by Michael Burke and Ron Cytron: "Interprocedural Dependence
Analysis and Parallelization," Proceedings of the ACM SIGPLAN Conference
on Programming Language Design and Implementation, Palo Alto, California,
June 1986. Selection announced in September 2002.
- IBM Research Division Award, "For Contributions to Gemstone Fortran
Development", November 1993.
- Janet Fabri Award for an Outstanding Thesis in Computer Science, NYU,1983