ACM LAUNCHES
ENHANCED DIGITAL LIBRARY
The new DL simplifies usability, extends
connections, and expands content with:
• Broadened citation pages
• Redesigned binders
• Expanded table-of-contents
• Enhanced interactivity tools
Visit the ACM Digital Library at:
dl.acm.org
Not a DL Subscriber yet?
Register for a free 3 month
personal subscription at:
dl.acm.org/free3
We worked on both the theory and ab-
straction, building up methods that
were analyzable and could be reasoned
about, and implementing them. I in-
sisted in this project that, if someone
on the systems side showed me a piece
of code, I would say, “Can you describe
this in a paper? How would other peo-
ple know about this?” If they were on
the theoretical side, I would say, “Can
you implement it? Show me the imple-
mentation.”
The idea of trying to change a pro-
gram into a functional program was
something that I was trying to push.
We could do much better analysis even
for just plain straight optimization if
we could name the values but not bur-
den it with the location, apply a func-
tional paradigm to it.
we could trace that idea back to your
early work on strength reduction, when
you were making hash names for inter-
mediate values.
Yes. The value contributes to the
answer, but where that value resides
should be irrelevant to the writer of the
program.
apparently, just convincing the early
programmers of that was one of your
early successes. foRtRaN is good
enough; you don’t need to keep track of
every single machine register yourself.
That’s right. So I had that challenge
out there. We needed to try and recast
the program as close as we could to
functional.
Another thing I think was a very big
step was not only identifying parallelism, but identifying useful parallelism.
Another problem: say that one of the
optimizations is constant propagation.
For some variable deep in the code,
that was a problem
we struggled with
early on: how do
you avoid redoing
the analysis?