Computing stack maps with interfaces

Frédéric Besson 1 Thomas Jensen 1 Tiphaine Turpin 1
1 Lande - Logiciel : ANalyse et DEveloppement
IRISA - Institut de Recherche en Informatique et Systèmes Aléatoires, Inria Rennes – Bretagne Atlantique
Abstract : Lightweight bytecode verification uses stack maps to annotate Java bytecode programs with type information in order to reduce the verification to type checking. This paper describes an improved bytecode analyser together with algorithms for optimizing the stack maps generated. The analyser is simplified in its treatment of base values (keeping only the necessary information to ensure memory safety) and enriched in its representation of interface types, using the Dedekind-MacNeille completion technique. The computed interface information allows to remove the dynamic checks at interface method invocations. We prove the memory safety property guaranteed by the bytecode verifier using an operational semantics whose distinguishing feature is the use of un-tagged 32-bit values. For bytecode typable without sets of types we show how to prune the fix-point to obtain a stack map that can be checked without computing with sets of interfaces i.e., lightweight verification is not made more complex or costly. Experiments on three substantial test suites show that stack maps can be computed and correctly pruned by an optimized (but incomplete) pruning algorithm.
Type de document :
Communication dans un congrès
ECOOP'08, 2008, Paphos, Cyprus. 2008
Liste complète des métadonnées

Littérature citée [16 références]  Voir  Masquer  Télécharger
Contributeur : Frédéric Besson <>
Soumis le : mardi 21 octobre 2008 - 10:40:59
Dernière modification le : mercredi 16 mai 2018 - 11:23:03
Document(s) archivé(s) le : mardi 9 octobre 2012 - 14:05:51


Fichiers produits par l'(les) auteur(s)


  • HAL Id : inria-00332526, version 1



Frédéric Besson, Thomas Jensen, Tiphaine Turpin. Computing stack maps with interfaces. ECOOP'08, 2008, Paphos, Cyprus. 2008. 〈inria-00332526〉



Consultations de la notice


Téléchargements de fichiers