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, A Paraître, pp.1-17. 〈10.1016/j.scico.2017.11.003〉
Liste complète des métadonnées

Littérature citée [59 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 11 janvier 2018 - 06:27:32


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, A Paraître, pp.1-17. 〈10.1016/j.scico.2017.11.003〉. 〈hal-01666541〉



Consultations de la notice


Téléchargements de fichiers