Optimization of object-oriented programs using partial evaluation

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. Severa...

Full description

Bibliographic Details
Main Author: Zhang, Ray L.
Format: Others
Language:en
en_US
Published: 2007
Online Access:http://hdl.handle.net/1993/1024
Description
Summary: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.