Content area

Abstract

Object oriented languages are now very widely spread. A large number of those languages and their compilers are now available. They integrate many concepts such as data encapsulation, inheritance, methods overriding and overloading, dynamic binding and many more. All those concepts make object oriented languages very popular as they make it possible for developers to write more flexible, extensible, and reusable good quality programs in a much quicker way. Java, which is one of the latest object oriented languages to come on the market, has an increasing popularity especially to its code mobility. Java is at the same time simple, robust and portable with high security features. It integrates many concepts such as mobile code, a virtual machine, an automatic garbage collector concurrency management and exception handling. Those qualities are however also responsible for Java's lack of performances when compared to other languages like C++.

This performance problem has motivated us to work on a Java project. Our main goals are to develop optimization techniques and to incorporate them in a compiler in order to improve Java's program performances. We use static analysis techniques to extract information which will be used to transform the code and make it more efficient.

The work achieved in this master's context deals with dynamic methods invocations optimization. We use a technique called class hierarchy analysis and have developed a data flow and control analysis to extract information from the code which will be used for dynamic invocations optimizations. We have also developed a platform that consists in a parser. This will allow the application of the analysis techniques we developed along with the ones that will be developed in the future.

Abstract (AI English translation)

Information popover about translation disclaimer

Les langages orientés objet sont désormais très répandus. Un grand nombre de ces langages et leurs compilateurs sont désormais disponibles. Ils intègrent de nombreux concepts tels que l'encapsulation des données, l'héritage, le remplacement et la surcharge de méthodes, la liaison dynamique et bien d'autres encore. Tous ces concepts rendent les langages orientés objet très populaires car ils permettent aux développeurs d'écrire des programmes de bonne qualité plus flexibles, extensibles et réutilisables de manière beaucoup plus rapide. Java, qui est l'un des derniers langages orientés objet à apparaître sur le marché, connaît une popularité croissante, notamment en raison de la mobilité de son code. Java est à la fois simple, robuste et portable avec des fonctionnalités de haute sécurité. Il intègre de nombreux concepts tels que du code mobile, une machine virtuelle, un garbage collector automatique, une gestion de la concurrence et une gestion des exceptions. Ces qualités sont cependant aussi responsables du manque de performances de Java par rapport à d'autres langages comme le C++.

Ce problème de performances nous a motivé à travailler sur un projet Java. Nos principaux objectifs sont de développer des techniques d'optimisation et de les intégrer dans un compilateur afin d'améliorer les performances des programmes Java. Nous utilisons des techniques d'analyse statique pour extraire des informations qui serviront à transformer le code et à le rendre plus efficace.

Les travaux réalisés dans le cadre de ce master portent sur l'optimisation des invocations de méthodes dynamiques. Nous utilisons une technique appelée analyse de hiérarchie de classes et avons développé une analyse de flux de données et de contrôle pour extraire des informations du code qui seront utilisées pour les optimisations d'invocations dynamiques. Nous avons également développé une plateforme qui consiste en un analyseur. Cela permettra d’appliquer les techniques d’analyse que nous avons développées ainsi que celles qui seront développées à l’avenir.

Details

1010268
Classification
Title
Optimisation des langages orientes objets: Application a l'optimisation des invocations dynamiques en Java
Alternate title
Optimization of Object-Oriented Languages: Application to the Optimization of Dynamic Invocations in Java
Number of pages
143
Publication year
1999
Degree date
1999
School code
0726
Source
MAI 38/03M, Masters Abstracts International
ISBN
978-0-612-43748-7
Advisor
University/institution
Universite Laval (Canada)
University location
Canada -- Quebec, CA
Degree
M.Sc.
Source type
Dissertation or Thesis
Language
French
Document type
Dissertation/Thesis
Dissertation/thesis number
MQ43748
ProQuest document ID
304555445
Document URL
https://www.proquest.com/dissertations-theses/optimisation-des-langages-orientes-objets/docview/304555445/se-2?accountid=208611
Copyright
Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.
Database
ProQuest One Academic