|
||||||
Instructor: Manuvir Das |
||||||
Reading List |
|
|||||
[Gri 87] D. Gries. The Science of Programming. Springer-Verlag, 1987. Context-sensitive Dataflow: Basic Theory: [SP 81] M. Sharir and A. Pnueli. Two approaches to interprocedural dataflow analysis. In [MJ 81], pages 189-234. Efficient Algorithm: [RHS 95] T. Reps, S. Horwitz, and M. Sagiv. Precise Interprocedural Dataflow Analysis via Graph Reachability. In Conference Record of the Twenty-Second ACM Symposium on Principles of Programming Languages, 1995. Further readings: provided by Erik Ruf. Program Slicing: [HRB 90] S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems Vol 12, 1 (January 1990), pages 26-60. Basic Theory: [CC 77] P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, 1977. Polymorphic Type Inference: Introduction: [FH 88a] Chapter 7 from [FH 88]. Algorithm W: [Mil 78] R. Milner. A Theory of Type Polymorphism in Programming. In Journal of Computer and System Sciences, 17, pp. 348-375. Analysis via Non-standard Type Inference: Context-insensitive, non-directional: [Ste 96] B. Steensgaard. Points-to Analysis in Almost Linear Time. In Conference Record of the Twenty-Third ACM Symposium on Principles of Programming Languages, 1996. [Note] Note on Steensgaard's Analysis. Context-sensitive: [FRD 00] M. Fahndrich, J. Rehof, and M. Das. Scalable Context-Sensitive Flow Analysis Using Instantiation Constraints. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, 2000. Further readings on polymorphic type inference: provided by Jakob Rehof Directional: [Aik 99] A. Aiken. Introduction to Set Constraint-Based Program Analysis. Science of Computer Programming, 35(1999):79-111. Further readings on set constraints: provided by Manuel Fahndrich Effect systems: [TT 94] M. Tofte and J. Talpin. Implementation of the Typed Call-by-Value Lambda-calculus using a Stack of Regions. In Conference Record of the Twenty-First ACM Symposium on Principles of Programming Languages, 1994. Adding flow-sensitivity: SSA: [CFR+ 89] R. Cytron, F. Ferrante, B. Rosen, M. Wegman, and F. Zadeck. An efficient method for computing static single assignment form. In Conference Record of the Sixteenth ACM Symposium on Principles of Programming Languages, 1989. Efficient SSA: [SG 95] V. Sreedhar and G. Gao. A linear time algorithm for placing phi nodes. In Conference Record of the 22nd ACM Symposium on Principles of Programming Languages, 1995. Path simulation: Practical path exploration: [BPS 00] W. Bush, J. Pincus, and D. Sielaff. A Static Analyzer for Finding Dynamic Programming Errors. Software - Practice and Experience 30(7): pp. 775-802. Decision procedures: Uninterpreted functions: [NO 80] G. Nelson and D. Oppen. Fast Decision Procedures Based on Congruence Closure. JACM, Vol 27, No 2, April 1980, pp. 356-364. Adding theories: [NO 79] G. Nelson and D. Oppen. Simplification by Cooperating Decision Procedures. ACM TOPLAS, Vol 1, No 2, Oct 1979, pp. 245-257. Model checking: Overview: [CGL 93] E. Further readings on model checking: provided by Sriram Rajamani. Verification: WP and SP: [Gri 87a] Chapters 6-11 from [Gri 87]. Pointer analysis: Fast subtyping algorithm: [Das 00] M. Das, Unification-based Pointer Analysis with Directional Assignments. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, 2000. Fast context-sensitive algorithm with subtyping: [DLFR 01] M. Das, B. Liblit, M. Fahndrich, and J. Rehof. Estimating the Impact of Scalable Pointer Analysis on Optimization. To appear in SAS 2001. Call graph analysis in OO programs: General Framework: [GC 01] D. Grove and C. Chambers, A Unifying Framework for and Assessment of Call Graph Construction Algorithms. To appear in ACM TOPLAS. (Contact Craig Chambers for a draft version.) Program profiling: Method for improving dataflow: [AL 98] G. Ammons and J. Larus, Improving data-flow analysis with path profiles. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, 1998. Continuous profiling: [ABD+ 97] J. Anderson, L. Berc, J. Dean, S. Ghemawat, M. Henzinger, S. Leung, R. Sites, M. Vandevoorde, C. Waldspurger, and W. Weihl, Continuous Profiling: Where Have All the Cycles Gone? In Proceedings of the 16th ACM Symposium on Operating Systems Principles, October 1997. Vault: [DF 01] R. Deline and M. Fahndrich. Enforcing High-Level Protocols in Low-Level Software. To be presented at PLDI 01. SLAM: [BR 01] T. Ball and S. Rajamani, Automatically Validating Temporal Safety Properties of Interfaces. SPIN 2001. ESP: [Das 01] M. Das, ESP: Error Detection via Scalable Program Analysis. (Contact Manuvir Das for a draft version.) |
|
|||||
|
CSE 590MD © 2001, Department of Computer Science and Engineering, University of Washington. |
||||||