Mining inline cache data to order inferred types in dynamic languages

Nevena Milojković 1 Clément Béra 2 Mohammad Ghafari 1 Oscar Nierstrasz 1
2 RMOD - Analyses and Languages Constructs for Object-Oriented Application Evolution
Inria Lille - Nord Europe, CRIStAL - Centre de Recherche en Informatique, Signal et Automatique de Lille (CRIStAL) - UMR 9189
Abstract : The lack of static type information in dynamically-typed languages often poses obstacles for developers. Type inference algorithms can help, but inferring precise type information requires complex algorithms that are often slow. A simple approach that considers only the locally used interface of variables can identify potential classes for variables, but popular interfaces can generate a large number of false positives. We propose an approach called inline-cache type inference (ICTI) to augment the precision of fast and simple type inference algorithms. ICTI uses type information available in the inline caches during multiple software runs, to provide a ranked list of possible classes that most likely represent a variable's type. We evaluate ICTI through a proof-of-concept that we implement in Pharo Smalltalk. The analysis of the top-n+2 inferred types (where n is the number of recorded run-time types for a variable) for 5486 variables from four different software systems shows that ICTI produces promising results for about 75% of the variables. For more than 90% of variables, the correct run-time type is present among first six inferred types. Our ordering shows a twofold improvement when compared with the unordered basic approach, i.e., for a significant number of variables for which the basic approach offered ambiguous results, ICTI was able to promote the correct type to the top of the list.
Type de document :
Article dans une revue
Science of Computer Programming, Elsevier, 2018, 161, pp.105-121. 〈10.1016/j.scico.2017.11.003〉
Liste complète des métadonnées

Littérature citée [46 références]  Voir  Masquer  Télécharger
Contributeur : Lse Lse <>
Soumis le : lundi 18 décembre 2017 - 15:03:48
Dernière modification le : jeudi 7 février 2019 - 17:09:27


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



Nevena Milojković, Clément Béra, Mohammad Ghafari, Oscar Nierstrasz. Mining inline cache data to order inferred types in dynamic languages. Science of Computer Programming, Elsevier, 2018, 161, pp.105-121. 〈10.1016/j.scico.2017.11.003〉. 〈hal-01666541〉



Consultations de la notice


Téléchargements de fichiers