|
ABSTRACT
Type-based analysis is an approach to static analysis of programs that has been studied for more than a decade. A type-based analysis assumes that the program type checks, and the analysis takes advantage of that. This paper examines the state of the art of type-based analysis, and it surveys some of the many software tools that use type-based analysis. Most of the surveyed tools use types as discriminators, while most of the theoretical studies use type and effect systems. We conclude that type-based analysis is a promising approach to achieving both provable correctness and good performance with a reasonable effort.
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
|
Martín Abadi , Anindya Banerjee , Nevin Heintze , Jon G. Riecke, A core calculus of dependency, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.147-160, January 20-22, 1999, San Antonio, Texas, United States
[doi> 10.1145/292540.292555]
|
| |
2
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
| |
3
|
|
| |
4
|
|
 |
5
|
David F. Bacon , Peter F. Sweeney, Fast static analysis of C++ virtual function calls, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.324-341, October 06-10, 1996, San Jose, California, United States
|
| |
6
|
David Francis Bacon. Fast and Effective Optimization of Statically Typed Object-Oriented Languages. PhD thesis, Computer Science Division, University of California, Berkeley, December 1997. Report No. UCB/CSD-98-1017.
|
 |
7
|
|
 |
8
|
Lars Birkedal , Mads Tofte , Magnus Vejlstrup, From region inference to von Neumann machines via region representation inference, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.171-183, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.237771]
|
 |
9
|
Jan Vitek , Boris Bokowski, Confined types, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.82-96, November 01-05, 1999, Denver, Colorado, United States
|
| |
10
|
Luca Cardelli. Type systems. In CRC Handbook of Computer Science and Engineering, chapter 103, pages 2208-2236. CRC Press, 1997.
|
 |
11
|
L. Cardelli , J. Donahue , M. Jordan , B. Kalsow , G. Nelson, The Modula–3 type system, Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.202-212, January 11-13, 1989, Austin, Texas, United States
[doi> 10.1145/75277.75295]
|
 |
12
|
James C. Corbett , Matthew B. Dwyer , John Hatcliff , Shawn Laubach , Corina S. Păsăreanu , Robby , Hongjun Zheng, Bandera: extracting finite-state models from Java source code, Proceedings of the 22nd international conference on Software engineering, p.439-448, June 04-11, 2000, Limerick, Ireland
[doi> 10.1145/337180.337234]
|
| |
13
|
|
| |
14
|
David Detlefs, K. Rustan Leino, Greg Nelson, and James Saxe. Extended static checking. Technical Report 159, Compaq Systems Research Center, 1998.
|
 |
15
|
Allyn Dimock , Robert Muller , Franklyn Turbak , J. B. Wells, Strongly typed flow-directed representation transformations (extended abstract), Proceedings of the second ACM SIGPLAN international conference on Functional programming, p.11-24, June 09-11, 1997, Amsterdam, The Netherlands
|
 |
16
|
Amer Diwan , Kathryn S. McKinley , J. Eliot B. Moss, Type-based alias analysis, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.106-117, June 17-19, 1998, Montreal, Quebec, Canada
|
| |
17
|
|
| |
18
|
|
| |
19
|
|
 |
20
|
|
 |
21
|
Sanjay Ghemawat , Keith H. Randall , Daniel J. Scales, Field analysis: getting useful and low-cost interprocedural information, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.334-344, June 18-21, 2000, Vancouver, British Columbia, Canada
|
| |
22
|
Rajeev Gopal and Stephan R. Schach. Using automatic program decomposition techniques in software maintenance tools. In Proceedings of ICSM'89, International Conference on Software Maintenance, pages 132-141, 1989.
|
| |
23
|
|
 |
24
|
Christian Grothoff , Jens Palsberg , Jan Vitek, Encapsulating objects with confined types, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.241-255, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
25
|
John Hannan. Type systems for closure conversions. In Proceedings of Workshop on Types for Program Analysis, pages 48-62, 1995.
|
| |
26
|
|
 |
27
|
|
 |
28
|
|
| |
29
|
|
| |
30
|
|
 |
31
|
|
 |
32
|
|
| |
33
|
|
 |
34
|
|
 |
35
|
|
 |
36
|
|
 |
37
|
|
| |
38
|
Robin Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17:348-375, 1978.
|
| |
39
|
|
| |
40
|
Greg Morrisett, Karl Crary, Neal Glew, Dan Grossman, Richard Samuels, Frederick Smith, David Walker, Stephanie Weirich, and Steve Zdancewic. Talx86: A realistic typed assembly language. ACM Workshop on Compiler Support for System Software, May 1999.
|
 |
41
|
Greg Morrisett , David Walker , Karl Crary , Neal Glew, From system F to typed assembly language, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.85-97, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268954]
|
| |
42
|
|
| |
43
|
Christian Mossin. Flow Analysis of Typed Higher-Order Languages. PhD thesis, DIKU, University of Copenhagen, 1997.
|
| |
44
|
|
| |
45
|
|
| |
46
|
|
| |
47
|
|
| |
48
|
|
| |
49
|
|
 |
50
|
|
| |
51
|
Peter Trbik and Jens Palsberg. Trust in the calculus. Journal of Functional Programming, 7(6):557- 591, November 1997. Preliminary version in Proceedings of SAS'95, International Static Analysis Symposium, Springer-Verlag (LNCS 983), pages 314-330, Glasgow, Scotland, September 1995.
|
 |
52
|
|
 |
53
|
|
 |
54
|
Jens Palsberg , Michael I. Schwartzbach, Object-oriented type inference, Conference proceedings on Object-oriented programming systems, languages, and applications, p.146-161, October 06-11, 1991, Phoenix, Arizona, United States
|
| |
55
|
|
 |
56
|
|
 |
57
|
|
| |
58
|
|
| |
59
|
|
 |
60
|
|
| |
61
|
Kirsten Solberg. Annotated Type Systems for Program Analysis. PhD thesis, University ofAarhus, 1995.
|
| |
62
|
Kirsten Solberg, Hanne Riis Nielson, and Flemming Nielson. Strictness and totality analysis. In Proceedings of SAS'94, International Static Analysis Symposium, pages 408-422. Springer-Verlag (LNCS 864), 1994.
|
| |
63
|
|
 |
64
|
Vijay Sundaresan , Laurie Hendren , Chrislain Razafimahefa , Raja Vallée-Rai , Patrick Lam , Etienne Gagnon , Charles Godin, Practical virtual method call resolution for Java, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.264-280, October 2000, Minneapolis, Minnesota, United States
|
 |
65
|
|
| |
66
|
|
| |
67
|
|
 |
68
|
|
| |
69
|
|
 |
70
|
Frank Tip , Chris Laffra , Peter F. Sweeney , David Streeter, Practical experience with an application extractor for Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.292-305, November 01-05, 1999, Denver, Colorado, United States
|
 |
71
|
Frank Tip , Jens Palsberg, Scalable propagation-based call graph construction algorithms, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.281-293, October 2000, Minneapolis, Minnesota, United States
|
| |
72
|
|
| |
73
|
Franklyn Turbak, Allyn Dimock, Robert Muller, and J. B. Wells. Compiling with polymorphic and polyvariant ow types. In ACM SIGPLAN Workshop on Types in Compilation, June 1997. http://www.cs.bc.edu/~muller/postscript/tic97.ps.Z.
|
| |
74
|
Mark Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352-357, July 1984.
|
| |
75
|
|
| |
76
|
|
| |
77
|
|
| |
78
|
|
|