Long ago, I wrote a dissertation on Garbage collection and other optimizations.

Before I was done, I generated an over-long summary chapter on then-current garbage collection algorithms; it was removed from the dissertation, but might nonetheless be of some use.

I wrote a paper on pattern-matching in the summer of 1986 that turned out to be useful. Not only did I get a subsidized trip to Germany to present it, other people actually built on my work. This paper appears in the ACM SIGAACT/SIGPLAN Proceedings of the 1987 Conference on Principles of Programming Languages.

I wrote a paper, based on a part of my dissertation, on a "safety" of storage allocation optimizations. This appeared in the 1988 SIGPLAN Conference on Programming Language Design and Implementation. The basic idea behind "safety" is that storage allocated on a garbage-collected heap can be reclaimed as soon as it is no longer needed, whereas storage allocated on the stack can (generally) not be reclaimed until all stack storage allocated later in time has been reclaimed. Thus, naive translation of heap allocations into faster stack allocations can lead to storage waste and potential program failure.

While at Olivetti, there was some interest in the Intel 860, and some question as to whether it would live up to the performance claims made for it. I wrote this evaluation.

There is an amusing and/or serious problem with verification of Java bytecodes. Here's the description, example, and solution.

I'm a big fan of benchmark cheating. I wrote this short guide in hopes of helping people understand why most benchmarks are utterly bogus.

I wrote two papers on exception handling in 1994 for the Journal of C Language Translation. This is more or less a recap of the engineering decisions that I made, or wished I could have made, when I worked on the exception handling API for Sun's SparcCompilers 3.0. Since then I have also worked on exception handling in Java, where I did something slightly different. These papers appear here (perhaps temporarily) by permission of John Levine, publisher of the JCLT.
First paper
Second paper