| Dynamic inference of abstract types |
| Full text |
Pdf
(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 |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 7, Downloads (12 Months): 44, Citation Count: 4
|
|
|
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
|
Eric Allen , David Chase , Victor Luchangco , Jan-Willem Maessen , Guy L. Steele, Jr., Object-oriented units of measurement, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
| |
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
|
Michael D. Ernst , Adam Czeisler , William G. Griswold , David Notkin, Quickly detecting relevant program invariants, Proceedings of the 22nd international conference on Software engineering, p.449-458, June 04-11, 2000, Limerick, Ireland
[doi> 10.1145/337180.337240]
|
| |
9
|
|
 |
10
|
Cormac Flanagan , Matthew Flatt , Shriram Krishnamurthi , Stephanie Weirich , Matthias Felleisen, Catching bugs in the web of program invariants, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.23-32, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
| |
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
|
Ben Liblit , Alex Aiken , Alice X. Zheng , Michael I. Jordan, Bug isolation via remote program sampling, Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, June 09-11, 2003, San Diego, California, USA
|
| |
20
|
R. Milner. A theory of type polymorphism in programming. J. Comp. Syst. Sci., 17(3):348--375, 1978.
|
| |
21
|
|
 |
22
|
Markus Mock , Manuvir Das , Craig Chambers , Susan J. Eggers, Dynamic points-to sets: a comparison with static analyses and potential applications in program understanding and optimization, Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, p.66-72, June 2001, Snowbird, Utah, United States
[doi> 10.1145/379605.379671]
|
| |
23
|
N. Nethercote and J. Seward. Valgrind: A program supervision framework. In RV, July 2003.
|
| |
24
|
|
 |
25
|
|
 |
26
|
|
| |
27
|
|
 |
28
|
Thomas Reps , Thomas Ball , Manuvir Das , James Larus, The use of program profiling for software maintenance with applications to the year 2000 problem, Proceedings of the 6th European conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering, p.432-449, September 22-25, 1997, Zurich, Switzerland
|
 |
29
|
David Saff , Shay Artzi , Jeff H. Perkins , Michael D. Ernst, Automatic test factoring for java, Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, November 07-11, 2005, Long Beach, CA, USA
[doi> 10.1145/1101908.1101927]
|
| |
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
|
|
CITED BY 4
|
|
Michael D. Ernst , Jeff H. Perkins , Philip J. Guo , Stephen McCamant , Carlos Pacheco , Matthew S. Tschantz , Chen Xiao, The Daikon system for dynamic detection of likely invariants, Science of Computer Programming, v.69 n.1-3, p.35-45, December, 2007
|
|
|
|
|
|
Brian Demsky , Michael D. Ernst , Philip J. Guo , Stephen McCamant , Jeff H. Perkins , Martin Rinard, Inference and enforcement of data structure consistency specifications, Proceedings of the 2006 international symposium on Software testing and analysis, July 17-20, 2006, Portland, Maine, USA
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.3
Coding Tools and Techniques
General Terms:
Experimentation,
Languages
Keywords:
C,
C++,
Java,
abstract types,
dynamic analysis,
interaction,
mixed-level analysis,
type inference,
units,
values and variables
|