ACM Home Page
Please provide us with feedback. Feedback
Dynamic inference of abstract types
Full text PdfPdf (192 KB)
Source International Symposium on Software Testing and Analysis archive
Proceedings of the 2006 international symposium on Software testing and analysis table of contents
Portland, Maine, USA
SESSION: Session 7: dynamic analysis table of contents
Pages: 255 - 265  
Year of Publication: 2006
ISBN:1-59593-263-1
Authors
Philip J. Guo  MIT Computer Science and Artificial Intelligence Lab, Cambridge, MA
Jeff H. Perkins  MIT Computer Science and Artificial Intelligence Lab, Cambridge, MA
Stephen McCamant  MIT Computer Science and Artificial Intelligence Lab, Cambridge, MA
Michael D. Ernst  MIT Computer Science and Artificial Intelligence Lab, Cambridge, MA
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 44,   Citation Count: 4
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1146238.1146268
What is a DOI?

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 overfitting.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
3
 
4
C. C. Chang and C. J. Lin. LIBSVM: a library for support vector machines, 2001. Software available at http://www.csie.ntu.edu.tw/~cjlin/libsvm.
 
5
 
6
 
7
8
 
9
10
 
11
 
12
 
13
J. Henkel and A. Diwan. Discovering algebraic specifications from Java classes. In ECOOP, pages 431--456, July 2003.
 
14
I. Hofacker. Vienna RNA package. http://www.tbi.univie.ac.at/~ivo/RNA/.
 
15
 
16
A. Kennedy. Programming Languages and Dimensions. PhD thesis, University of Cambridge, April 1996.
 
17
A. Kuhn, O. Greevy, and T. Gîrba. Applying semantic analysis to feature execution traces. In PCODA, pages 48--53, Nov. 2005.
 
18
J. R. Larus and S. Chandra. Using tracing and dynamic slicing to tune compilers. Technical Report 1174, University of Wisconsin-Madison, Madison, WI, Aug. 26, 1993.
19
 
20
R. Milner. A theory of type polymorphism in programming. J. Comp. Syst. Sci., 17(3):348--375, 1978.
 
21
22
 
23
N. Nethercote and J. Seward. Valgrind: A program supervision framework. In RV, July 2003.
 
24
25
26
 
27
28
29
 
30
S. A. Spoon and O. Shivers. Demand-driven type inference with subgoal pruning: Trading precision for scalability. In ECOOP, pages 51--74, June 2004.
31
 
32
33
 
34
M. Weiser. Program slicing. IEEE TSE, SE-10(4):352--357, July 1984.
35
 
36
 
37


Collaborative Colleagues:
Philip J. Guo: colleagues
Jeff H. Perkins: colleagues
Stephen McCamant: colleagues
Michael D. Ernst: colleagues