Optimization of object-oriented programs using partial evaluation

Thumbnail Image
Zhang, Ray L.
Journal Title
Journal ISSN
Volume Title
Object-oriented programming languages foster the development of reusable, extensible class libraries and frameworks. However, heavy use of inheritance and dynamic typing can impose a significant performance overhead compared to the equivalent programs written in a non-object-oriented fashion. Several object-oriented programming languages have been designed and implemented, including C++, Eiffel and Smalltalk. In this thesis, the features of these languages will be examined and their implementations will be studied in detail. Various optimizing techniques have been proposed by several researchers; this thesis provides a detailed analysis of their approaches. This thesis discusses the design of an object-oriented programming language called $Safer\sb{-}C\ with\ Classes.$ We also present implementation techniques for a translator to produce efficient target code for programs written in a heavily-object-oriented style, and use these techniques in an actual translator for Safer$\sb{-}$C with Classes. The method consists principally of applying class hierarchy analysis and customization that exploit static information known at compile-time. Sometimes class analysis determines that the receiver of the method invocation can be an instan e of only one class, allowing the dynamically-dispatched method invocation to be replaced with a direct function call at compile-time and further optimized using inline expansion.