Software tools for efficient programming and scientific computing are two technologies labeled as `critical` to this nation's security and industrial growth. Object-oriented programming (OOP) offers a partial solution to increasing productivity during software development. OOP emphasizes modular and incremental development of applications. OOP enhances maintainability and reliability because changes that are needed in an implementation can be localized to a specific component. Object-oriented development also fosters reuse of software assets. Reuse leads to increased reliability, decreased development costs, and increased productivity. The cost of adopting an object-oriented, framework- centered approach is the run-time overhead imposed by object-oriented languages. Languages such as C++ provide a wide-spectrum of support to a programmer, but little assistance to compilers that must generate fast and efficient code. This research approaches the specification and implementation of class-specific program optimizations- optimizations defined by the user of an object-oriented programming system and attached to object types. By associating optimizations with classes, one preserves the class-oriented style of object-oriented programming while providing optimization information at a level of specification convenient to the developer. To implement the class-specific optimizations, Object Science Corporation proposes to draw on techniques for tree-rewriting systems. The work will be validated by inserting the optimizer into an existing C++ compiler.