Whole program compilation for embedded software: the ADSL experiment
Proceedings of the ninth international symposium on Hardware/software codesign
Lisaac: the power of simplicity at work for operating system
CRPIT '02 Proceedings of the Fortieth International Conference on Tools Pacific: Objects for internet, mobile and embedded applications
Stress-testing Control Structures for Dynamic Dispatch in Java
Proceedings of the 2nd Java Virtual Machine Research and Technology Symposium
Hi-index | 0.00 |
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.