Preexistence and concrete type analysis in the context of multiple inheritance - Archive ouverte HAL Accéder directement au contenu
Communication Dans Un Congrès Année : 2016

Preexistence and concrete type analysis in the context of multiple inheritance

Résumé

In the framework of just-in-time compilation, preexistence is a property which asserts that the receiver of a given call site has been instantiated before the current invocation of the considered method [5]. Hence, preexistence is a mean to avoid such low-level repair techniques as on-stack replacement or code patching, when a method must be recompiled during its own activation, because a previous optimization such as devirtualization or inlining has been invalidated by a new class loading. In the original proposition, preexistence considers only values, its analysis is purely intra-procedural, and its result is immutable. In this paper, we reconsider all three aspects: we focus on types instead of values, especially on concrete types, and we accept a limited form of inter-procedural analysis, whose results can be, marginally, mu-table. Moreover, while the original proposition considered only method invocation, we place ourselves in the context of full multiple-inheritance, where attribute accesses need to be optimized, too. Overall, we propose a static analysis at runtime, combining concrete types and preexistence. The former allow for more optimizations, while the latter provides the condition for applying these optimizations without any need for repair. We experimented the approach in the prototype of a virtual machine for the Nit language, and the results are really encouraging. In spite of the focus on multiple inheritance, and the experiment setting, this proposal could be applied to most languages with static typing and runtime systems like the Java virtual machine.
Fichier non déposé

Dates et versions

hal-01362506 , version 1 (12-09-2016)

Licence

Paternité - Pas d'utilisation commerciale - Pas de modification

Identifiants

Citer

Roland Ducournau, Julien Pagès, Jean Privat. Preexistence and concrete type analysis in the context of multiple inheritance. PPPJ: Principles and Practices of Programming on the Java Platform, Aug 2016, Lugano, Switzerland. pp.#10, ⟨10.1145/2972206.2972207⟩. ⟨hal-01362506⟩
113 Consultations
0 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More