- External Web Presence
- Hash Functions and Their Applications
- Link prediction benchmarks
- Rock Climbing
- Software Development Governance
- Computer Science
- Algorithms and Theory
- Computer Systems Design
- Programming Languages & Software Engineering
- Software Platform
Things I'm proud of:
Being one of the inventors of the Static Single Assignment form, used in the analysis portion of most if not all modern optimizing compilers. SIGPLAN recognized this work in 2006 with its Programming Languages Achievement Award.
Making contributions to algorithms and information theory, for example Universal Hash Functions, one of the earliest and most important randomized algorithms. Contributing to the data compression ideas embodied in all modern modems, GIF format files and the UNIX Compress utility.
Being named an IBM, ACM and IEEE Fellow and elected to the National Academy of Engineering.
Finding two climbs so badly mislabeled as 5.12's that even I could climb them.
Things I like to think about:
Making software developers, and perhaps other parts of the economy, more efficient. I'm currently working on a white paper about this called "Managing Businesses That Design", (future link). My motivation to make software developers more efficient is in some sense related to my motivation to make machines more efficient through compiler optimization. The techniques, of course, are very different.
Thinking about algorithms (e.g. Universal Hash Functions), information theory (e.g. compression algorithms) and mathematically modeling real world information so it can be manipulated.
Things I think are important:
Trends in technology mean that frequency will not be increasing at the rate at which we are accustomed. Over time programmers have used higher levels of abstraction using the changes in our machines to compensate for the potential slowdown. We cannot make a programmer's job easier by introducing parallelism, the new direction in hardware. I think software will continue to become less efficient. We need a whole new approach to optimization to address this kind of inefficiency. Here's an example of what might be an interesting approach.
B.A., New York University, Washington Square College
Ph.D., University of California, Berkeley
Joined IBM Research in 1975
Currently CTO Software Technology
See honors section for more detail.