Dynamic inference of abstract types

Philip J. Guo, Jeff H. Perkins, Stephen McCamant, Michael D. Ernst

Research output: Chapter in Book/Report/Conference proceedingConference contribution

54 Scopus citations

Abstract

An abstract type groups variables that are used for related purposes in a program. We describe a dynamic unification-based analysis for inferring abstract types. Initially, each run-time value gets a unique abstract type. A run-time interaction among values indicates that they have the same abstract type, so their abstract types are unified. Also at run time, abstract types for variables are accumulated from abstract types for values. The notion of interaction may be customized, permitting the analysis to compute finer or coarser abstract types; these different notions of abstract type are useful for different tasks. We have implemented the analysis for compiled x86 binaries and for Java bytecodes. Our experiments indicate that the inferred abstract types are useful for program comprehension, improve both the results and the run time of a follow-on program analysis, and are more precise than the output of a comparable static analysis, without suffering from overfilling.

Original languageEnglish (US)
Title of host publicationProceedings of the 2006 International Symposium on Software Testing and Analysis, ISSTA 2006
Pages255-265
Number of pages11
DOIs
StatePublished - 2006
Event2006 International Symposium on Software Testing and Analysis, ISSTA 2006 - Portland, ME, United States
Duration: Jul 17 2006Jul 20 2006

Publication series

NameProceedings of the 2006 International Symposium on Software Testing and Analysis, ISSTA 2006
Volume2006

Other

Other2006 International Symposium on Software Testing and Analysis, ISSTA 2006
Country/TerritoryUnited States
CityPortland, ME
Period7/17/067/20/06

Keywords

  • Abstract types
  • C
  • C++
  • Dynamic analysis
  • Interaction
  • Java
  • Mixed-level analysis
  • Type inference
  • Units
  • Values and variables

Fingerprint

Dive into the research topics of 'Dynamic inference of abstract types'. Together they form a unique fingerprint.

Cite this