Optimizations of Eiffel Programs: Smalleiffel, the GNU Eiffel Compiler

  • Authors:
  • Dominique Colnet;Olivier Zendra

  • Affiliations:
  • -;-

  • Venue:
  • TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

The design of the Eiffel language makes it possible to perform global optimizations on Eiffel programs. In this paper, we describe some of the techniques we used in SmallEiffel, The GNU Eiffel compiler (http://SmallEiffel.loria.fr), to produce highly efficient executables for Eiffel programs. Most of these techniques --- related to global analysis or not --- may also be applied to other object-oriented languages.In this paper, after briefly recalling our main compilation technique, we describe more precisely some other kinds of optimizations implemented in SmallEiffel, whether they are specific to Eiffel or not. We first detail the implementation of expanded objects, then we focus on the optimization of dynamic dispatch for reference types. The handling of generic types and of once objects is also explained. Finally, the kind of static evaluation allowed by global analysis is briefly described.We presented in other papers the techniques for global optimization we used in SmallEiffel to generate efficient code for late binding as well as for the generation of a garbage collector (GC) customized to the system.