Traduction et optimisation globale dans les langages de classes

Olivier Zendra 1
1 ECOO - Environment for cooperation
INRIA Lorraine, LORIA - Laboratoire Lorrain de Recherche en Informatique et ses Applications
Abstract : This work falls within the scope of research pertaining to the compilation of class-based languages --- especially Eiffel --- and more generally about the compilation of statically-typed object-oriented languages. In a nutshell, it can be said the aim of this thesis is to try to answer a fundamental question: how is it possible to better compile objet-oriented languages, that is, how is it possible to have faster and safer programs? This research work is mainly based on static analysis, with a two-pronged approach. The first axis consists in being able to do program validity and coherency checks, not only on finished programs but also from the beginning of the development, so as to be able to assist developers as much as possible during the design and implementation phase. The second axis --- the very core of this thesis --- considers the use of information coming from the system's static analysis to improve the generated code quality. Indeed, this kind of information offers important optimizations opportunities on the generated code, be it algorithm-based optimizations or data structures optimizations. We propose and experiment an approach based on code duplication and customization thanks to system-wide analysis, so as to efficiently implement the compiled program data structures and code, especially what pertains to late binding. We thus introduce a novel late binding method based on direct branching trees whose performance are greater than or equal to those of current classical systems relying on indirection tables. This approach is also extended to the generation by the compiler of a garbage collector which is automatically customized to the compiled application. We also carry some studies to evaluate the optimizations allowed by massive use of aliasing in a compiler written in a class-based language, as well as means to better handle this technique. This work is validated by, among other things, the development of an Eiffel compiler named SmallEiffel and its libraries, which, widely distributed and used, have become The GNU Eiffel Compiler.
Document type :
Theses
Complete list of metadatas

https://tel.archives-ouvertes.fr/tel-00565633
Contributor : Olivier Zendra <>
Submitted on : Monday, February 14, 2011 - 11:24:52 AM
Last modification on : Monday, April 16, 2018 - 10:41:58 AM
Long-term archiving on : Sunday, May 15, 2011 - 2:40:38 AM

Files

Identifiers

  • HAL Id : tel-00565633, version 1

Collections

Citation

Olivier Zendra. Traduction et optimisation globale dans les langages de classes. Génie logiciel [cs.SE]. Université Henri Poincaré - Nancy I, 2000. Français. ⟨tel-00565633⟩

Share

Metrics

Record views

384

Files downloads

433