Michael G. Burke
Office: Rice University Duncan Hall 3134
6100 Main Street Houston, Texas
Home: 1085 Warburton Avenue, Apt. 704
Yonkers, NY 10701
(914) 413-0122 (mobile)
Static analysis-based tools for programming language optimization, mobile security, compiling for parallelism, database applications. Programming models for high performance parallel computing.
– Senior Research Scientist/Instructor May 2009 – present
IBM Thomas J. Watson Research Center
– Research Staff Member March 1983 – February 2009
– Research Staff Member/Manager August 1987 – May 2000
Habanero group May 2009 – 2016.
– Static-analysis based Tizen security, in collaboaration with Samsung (2012-14).
– Development of Fuse system for compositional dataflow analysis in Rose framework, in collaboration with Lawrence Livermore National Lab (2009-13) (research partners at Google and Intel (2014-present)). – Design of Concurrent Collections (CnC) tuning language and runtime model.
In collaboration with Intel and Center for Domain Specific Computing (CDSC), UCLA (2009-2012).
– Static-analysis based Android security. Collaboration with IBM Watson (2009-2012).
– Document master for Platform-Aware Compilation Environment (PACE) system design document (2009-2011).
IBM Watson Projects
– IBM Watson Data Access Language Integration group September 2002 – February 2009
From 2007-2009: static program analysis for tooling for database application development in Java with integrated SQL-like queries. The analysis supports tools for resource management; code impact determination and semi-automatic transformations for modified database schemas; enforcing data privacy policies based on information-flow and role-based access control.
From 2002-2006: XML Enhancements for Java (XJ), a research language that integrates XML as a first-class construct into Java, bringing the benefits of static type checking and program optimization. The design of XJ differs from other programming languages that integrate XML in its support of in-place updates of XML data, and its adherence to standards such as XML Schema, XPath, and XQuery.
XJ was first released on alphaWorks in January 2005: alphaWorks Emerging Technologies Toolkit Release of the XML Enhancements for Java (XJ) Programming Language.
For languages such as XJ that integrate imperative and XPath query constructs, we developed program analysis techniques and transformations that eliminate redundant computations of XPath expressions and redundant traversals of XML data.
Was a primary contributor to the design and documentation of XJ. Main author of XML Enhancements to Java, the User Manual for the Release 1.01 (and subsequent releases) on alphaWorks.
– IBM Eclipse Innovation Grant Research Coordinator January 2003 – December 2006
The Eclipse Innovation Grant Program was an annual program announced through
an open call that funded faculty for projects that use Eclipse as the base for
research or education. We received more than 300 submissions (from five continents
and more than 20 countries) and funded about 80 per year. As the Research Coordinator
of the program, I helped raise funding for it from within IBM; assembled the review committee of about 25 Eclipse experts from IBM Research and Software Group (SWG); chaired the review committee; finalized funding decisions with senior management from Research and SWG; coordinated notification with IBM University Relations; assigned IBM technical liaisons to awardees. I worked with IBM Communications to publicize the grants.
– Organized a variety of Eclipse technical meetings at leading conferences, such
as Eclipse workshops and receptions/poster sessions at OOPSLA, ICSE, ETAPS, ECOOP, etc.
– Organized Eclipse two-day classes, taught by an IBM team, for faculty,
students, and university administrative programmers at UC Berkeley, MIT, and Carnegie Mellon.
– Project Leader: XML Transformation project May 2000 – August 2002
Project developed tools for semi-automatic matching between XML Schemas, and reconciling differences between them.
We developed a general method, similarity analysis, for matching
between a pair of graphs whose nodes are associated with certain properties.
We implemented similarity analysis in the Eclipse Modeling Framework.
– 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 include:
– seminal work in lightweight locks in Java (David Bacon, et al., PLDI 1998),
implemented in IBM’s Tokoyo JIT compiler (shipped on JDK 1.1.6), and in IBM’s
Jikes Research Virtual Machine (RVM);
– seminal work in concurrent garbage collection in Java (David Bacon, et al.,
PLDI 2001), implemented in Jikes RVM;
– reducing the cost of virtual dispatch for C++ and Java (Bacon, Sweeney, OOPSLA 1996);
– reducing the size of Java class files through program analysis (Java Application
eXtractor), released on alphaWorks in August 1999; later integrated into IBM’s
WebSphere Studio Device Developer (Tip, et al., OOPSLA 1999);
– extant analysis, a method for safe and efficient inter-class and interprocedural
optimization of Java code in the presence of dynamic class loading
(Sreedhar, Burke, Choi, PLDI 2000);
– efficient memory layouts for implementing C++ objects and classes
(Sweeney, Burke, SP&E 2003).
We designed a memory layout for C++, based on our conceptual modeling and
experimental evaluation of alternative memory layouts, that was incorporated
as the “Best of Breed” object model into IBM’s Visual Age C++ compiler on
As manager of this group, also managed a project that developed incremental computation techniques based on static slicing. This project team (John Field, G. Ramalingam) developed techniques and IBM tools for understanding and restructuring legacy COBOL code. They also developed techniques for detecting Y2K defects in COBOL and PL/I code.
In 1997 I served as the IBM Research Coordinator for the IBM Y2K team.
– Member of Parallel Translation (PTRAN) group March 1983 – April 1994
– Group Manager August 1987 – April 1994
We developed seminal technology and an implementation for automatically
restructuring FORTRAN programs for execution on shared-memory parallel
architectures. We developed a representation of program control dependence
and combined it with a representation of program data flow, Static Single Assignment
(SSA), which we authored with others at Watson. The resulting SSA/Program
Dependence Graph representation became the basis for modern optimizing compilers and program understanding tools such as for restructuring legacy code, testing, and debugging.
We developed a linearized form of SSA to reduce the space required by more
than a factor of 20 in the Perfect (FORTRAN parallelization) benchmarks.
My own work focused on developing novel methods and practical techniques for
interprocedural analysis, including:
– array subscript analysis (Burke, Cytron, PLDI 1986);
– efficient flow-sensitive analysis of reaching definitions and exposed uses
(Allen, et al., JP&DC, 1988);
– flow-sensitive constant propagation (Allen, et al., JP&DC, 1988);
– C and FORTAN 90 flow-sensitive and flow-insensitive pointer analysis (Choi, et al. POPL 1993; Burke, et al. LCPC 1994; Hind, et al. TOPLAS, 1999);
– minimizing recompilation in the presence of interprocedural analysis (Burke, Torczon, TOPLAS 1993).
We developed a range of pointer analyses, trading off efficiency and precision.
I initiated and managed M. Hind’s (plus students’) empirical studies of our analyses and others (Hind, Pioli, SAS 1998; Hind, Pioli, ISSTA 2000).
Managed our collaboration with IBM development sites (1989-1994) to
incorporate our technologies into IBM product compilers.
Within IBM, the technologies developed by the PTRAN group were transferred to key components of IBM’s XL product compilers, including the ASTI optimizer, the TPO optimizer, and the HPF parallelization component.
New York University, Courant Institute
Adjunct Lecturer June 1979 – January 1983
– Teaching undergraduate and graduate courses in computer science.
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
– Ph.D. in Computer Science, February 1983, New York University
Thesis: “A Practical Method for LR and LL Syntactic Error Diagnosis and Recovery”.
Advisor: Gerald A. Fisher, Jr.
– Master of Science in Computer Science, February 1980, New York University
Advisor: Paul Abrahams
IMPACT ON IBM SOFTWARE RELEASES:
(With I. Peshansky) Code for on-demand slicing analysis for JDBC and pureQuery SQL queries, to IBM Data Studio Developer 2.1, November 2008. Data Studio provides an integrated environment to design, develop, deploy, operate, optimize, and govern enterprise data, databases, and data-driven applications. The on-demand slicing analysis feature allows database application developers to track the flow of data between the application code and database.
XJ design and documentation contributions to alphaWorks Emerging Technologies
Toolkit Release of the XML Enhancements for Java (XJ) Programming Language,
C++ memory layout to Visual Age C++ as the default memory model for all platforms,
for V5 and subsequent releases, beginning January 2000.
Interprocedural flow-sensitive analysis of reaching definitions, exposed uses, and constants; interprocedural flow-insensitive analysis of possible variable modifications;
interprocedural flow-sensitive and flow-insensitive pointer analysis;
Burke-Cytron array subscript dependence analysis became key components of IBM’s XL product compilers in and after 1996, including the ASTI optimizer, the TPO optimizer, and the HPF parallelization component.
Burke-Fisher syntactic error diagnosis and recovery incorporated in IBM products; Jikes and PG (SourceForge) open source.
IMPACT ON TEXTBOOKS:
Andrew W. Appel, Modern Compiler Implementation in ML (also Modern
Compiler Implementation in C, Modern Compiler Implementation in Java),
Cambridge University Press, 1998. In Chapter 3, Parsing,
uses Burke-Fisher error repair as example to illustrate “Gloabl Error Repair” section.
Michael Wolfe, Optimizing Supercompilers for Supercomputers, The MIT Press, 1989.
In Section 2.4, Data Dependence Framework, uses Burke-Cytron dependence analysis
framework for computing data dependence relations.
Randy Allen, Ken Kennedy, Optimizing Compilers for Modern Architectures,
Morgan Kaufman Publishers, 2002. Testing for All Direction Vectors subsection of
Chapter 3, Dependence Testing, uses Burke-Cytron dependence analysis framework
for computing data dependences.