Zastre, Michael M. J. (Michael Marcus Joseph)2024-08-152024-08-1519951995https://hdl.handle.net/1828/20263Current compiler optimization research focuses on program transformations that increase code speed. Decreasing object file size is sometimes a goal since less code often means faster code. In this thesis we examine parameterized procedural abstraction. This is an extension of an optimization whose sole purpose is to reduce code size. Previously pub­lished implementations of procedural abstraction have produced space savings where instruction sequences are exact matches (i.e. instruction operations and operands are the same between code sequences). Researchers felt that parameterizing differences had too high a cost, but no investigations have been made into the potential space savings from exploiting inexact matches. We show that permanent space savings (compaction) are pos­sible when (1) covering matches with more than one procedure and (2) carefully choosing which inexact match instances are covered by each procedure. Our heuristic algorithms choose a mix of parameterized and unparameterized procedures that yield substantially better space savings in comparison to unparameterized procedures only.71 pagesAvailable to the World Wide WebCompacting object code via parameterized procedural abstractionThesis