Coping with aliasing in the GNU Eiffel Compiler implementation
Résumé
This paper reports our experience about aliasing in the implementation of SmallEiffel, the GNU Eiffel Compiler. The SmallEiffel compiler source code makes intensive use of aliasing in order to achieve very good performance. We explain how aliasing can be handled in a safer way, and how helpful the design by contract capabilities of the Eiffel language have been. The Singleton pattern appears to be crucial in implementing alias provider objects. We propose an efficient implementation of this pattern made easy by some Eiffel idioms. This technique, which requires no language modification, is very appropriate for compilation, but can also be applied to a much wider range of applications. We show the performance impact of string aliasing both in terms of memory footprint and execution time.