Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Set based program analysis
Publisher:
  • Carnegie Mellon University
  • Schenley Park Pittsburgh, PA
  • United States
Order Number:UMI Order No. GAX93-22866
Reflects downloads up to 05 Mar 2025Bibliometrics
Skip Abstract Section
Abstract

The central component of standard approaches to compile-time program analysis is an abstract domain for approximating program values. Importantly, the domain must be chosen so that an iterative fixed point computation over the domain terminates. This requirement represents a substantial restriction on the accuracy of the analysis. Furthermore, it leads to complex and often chaotic behavior.

We present an alternative approach to program analysis, called set based analysis. A key feature of set based analysis is that reasoning about a program's run-time behavior is reduced to reasoning about constraints on sets of program values. Set based analysis incorporates just a single notion of approximation: all dependencies arising from the treatment of program variables are ignored. The main advantage of set based analysis is improved accuracy, due to the absence of an abstract domain. Additionally, the use of a very simple and uniform notion of approximation leads to program analysis that is easier to understand and less sensitive to minor program modifications.

The core part of this thesis presents an algorithm for set based analysis. Importantly, the standard iterative fixed point algorithms used in the program analysis literature can not be used for set based analysis (they do not terminate). We therefore employ a fundamentally different technique, based on the use of constraints on sets of values. Using these constraints, we develop algorithms for the analysis of logic, imperative and functional languages (the underlying program values in each case are data structures). A prototype implementation is described. Although a straightforward implementation of the set constraint algorithm leads to very poor performance, very substantial improvements have been obtained using appropriate representation schemes and minimization techniques. This prototype provides strong evidence that practical analysis based on set based techniques is within reach.

An underlying philosophy of set based analysis is the separation of the definition of program approximations from algorithmic considerations. This is reflected in the use of constraints to define program approximation, and set constraint algorithms to compute it. The constraints used form a flexible and declarative intermediate language for defining and reasoning about program approximations.

Cited By

  1. ACM
    Midtgaard J (2012). Control-flow analysis of functional programs, ACM Computing Surveys (CSUR), 44:3, (1-33), Online publication date: 1-Jun-2012.
  2. Midtgaard J, Adams M and Might M A structural soundness proof for shivers's escape technique Proceedings of the 19th international conference on Static Analysis, (352-369)
  3. ACM
    Choi W, Aktemur B, Yi K and Tatsuta M (2011). Static analysis of multi-staged programs via unstaging translation, ACM SIGPLAN Notices, 46:1, (81-92), Online publication date: 26-Jan-2011.
  4. ACM
    Choi W, Aktemur B, Yi K and Tatsuta M Static analysis of multi-staged programs via unstaging translation Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (81-92)
  5. ACM
    Pacholski W (2010). Set constraints with projections, Journal of the ACM (JACM), 57:4, (1-37), Online publication date: 1-Apr-2010.
  6. ACM
    Jang D and Choe K Points-to analysis for JavaScript Proceedings of the 2009 ACM symposium on Applied Computing, (1930-1937)
  7. ACM
    Xu G and Rountev A AJANA Proceedings of the 7th international conference on Aspect-oriented software development, (36-47)
  8. Rountev A, Sharp M and Xu G IDE dataflow analysis in the presence of large object-oriented libraries Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction, (53-68)
  9. ACM
    Kodumal J and Aiken A Regularly annotated set constraints Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, (331-341)
  10. ACM
    Kodumal J and Aiken A (2007). Regularly annotated set constraints, ACM SIGPLAN Notices, 42:6, (331-341), Online publication date: 10-Jun-2007.
  11. ACM
    Benton W and Fischer C Interactive, scalable, declarative program analysis Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming, (13-24)
  12. Jones N and Andersen N (2007). Flow analysis of lazy higher-order functional programs, Theoretical Computer Science, 375:1-3, (120-136), Online publication date: 20-Apr-2007.
  13. Knowles K and Flanagan C Type reconstruction for general refinement types Proceedings of the 16th European Symposium on Programming, (505-519)
  14. Meunier P, Findler R, Steckler P and Wand M (2019). Selectors Make Set-Based Analysis Too Hard, Higher-Order and Symbolic Computation, 18:3-4, (245-269), Online publication date: 1-Dec-2005.
  15. ACM
    Stoyle G, Hicks M, Bierman G, Sewell P and Neamtiu I Mutatis mutandis Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (183-194)
  16. ACM
    Stoyle G, Hicks M, Bierman G, Sewell P and Neamtiu I (2019). Mutatis mutandis, ACM SIGPLAN Notices, 40:1, (183-194), Online publication date: 12-Jan-2005.
  17. Jagadeesan R, Nadathur G and Saraswat V Testing concurrent systems Proceedings of the 25th international conference on Foundations of Software Technology and Theoretical Computer Science, (517-528)
  18. ACM
    Herman D and Meunier P (2019). Improving the static analysis of embedded languages via partial evaluation, ACM SIGPLAN Notices, 39:9, (16-27), Online publication date: 19-Sep-2004.
  19. ACM
    Herman D and Meunier P Improving the static analysis of embedded languages via partial evaluation Proceedings of the ninth ACM SIGPLAN international conference on Functional programming, (16-27)
  20. ACM
    Kodumal J and Aiken A The set constraint/CFL reachability connection in practice Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation, (207-218)
  21. ACM
    Kodumal J and Aiken A (2019). The set constraint/CFL reachability connection in practice, ACM SIGPLAN Notices, 39:6, (207-218), Online publication date: 9-Jun-2004.
  22. Chang B (2002). Managing the granularity of constraint-based analyses by rule transformation, Information Processing Letters, 83:2, (79-88), Online publication date: 31-Jul-2002.
  23. ACM
    Chang B, Jo J, Yi K and Choe K Interprocedural exception analysis for Java Proceedings of the 2001 ACM symposium on Applied computing, (620-625)
  24. ACM
    Heintze N and Tardieu O Ultra-fast aliasing analysis using CLA Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, (254-263)
  25. ACM
    Heintze N and Tardieu O (2001). Ultra-fast aliasing analysis using CLA, ACM SIGPLAN Notices, 36:5, (254-263), Online publication date: 1-May-2001.
  26. ACM
    Chang B and Jo J Granularity of constraint-based analysis for Java Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming, (94-102)
  27. Talbot J, Devienne P and Tison S (2000). Generalized Definite Set Constraints, Constraints, 5:1/2, (161-202), Online publication date: 1-Jan-2000.
  28. Hannan J and Hicks P (2019). Higher-Order UnCurrying, Higher-Order and Symbolic Computation, 13:3, (179-216), Online publication date: 1-Sep-2000.
  29. Di Blasio P, Fisher K and Talcott C (2000). A Control-Flow Analysis for a Calculus of Concurrent Objects, IEEE Transactions on Software Engineering, 26:7, (617-634), Online publication date: 1-Jul-2000.
  30. ACM
    Heintze N, Jaffar J and Voicu R A framework for combining analysis and verification Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (26-39)
  31. ACM
    Charatonik W, Podelski A and Talbot J Paths vs. trees in set-based program analysis Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (330-337)
  32. Comon H, Dincbas M, Jouannaud J and Kirchner C (1999). A Methodological View of Constraint Solving, Constraints, 4:4, (337-361), Online publication date: 1-Dec-1999.
  33. ACM
    Wand M and Siveroni I Constraint systems for useless variable elimination Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (291-302)
  34. ACM
    Robillard M and Murphy G (2019). Analyzing exception flow in Java programs, ACM SIGSOFT Software Engineering Notes, 24:6, (322-337), Online publication date: 1-Nov-1999.
  35. Robillard M and Murphy G Analyzing exception flow in Java programs Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering, (322-337)
  36. ACM
    Fähndrich M, Foster J, Su Z and Aiken A Partial online cycle elimination in inclusion constraint graphs Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, (85-96)
  37. ACM
    Fähndrich M, Foster J, Su Z and Aiken A (1998). Partial online cycle elimination in inclusion constraint graphs, ACM SIGPLAN Notices, 33:5, (85-96), Online publication date: 1-May-1998.
  38. Palsberg J Eta-Redexes in Partial Evaluation Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School, (356-366)
  39. ACM
    Sagiv M, Reps T and Wilhelm R (1998). Solving shape-analysis problems in languages with destructive updating, ACM Transactions on Programming Languages and Systems (TOPLAS), 20:1, (1-50), Online publication date: 1-Jan-1998.
  40. ACM
    Melski D and Reps T Interconvertbility of set constraints and context-free language reachability Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, (74-89)
  41. ACM
    Melski D and Reps T (1997). Interconvertbility of set constraints and context-free language reachability, ACM SIGPLAN Notices, 32:12, (74-89), Online publication date: 1-Dec-1997.
  42. ACM
    Biswas S A demand-driven set-based analysis Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (372-385)
  43. ACM
    Dawson S, Ramakrishnan C and Warren D Practical program analysis using general purpose logic programming systems—a case study Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, (117-126)
  44. ACM
    Dawson S, Ramakrishnan C and Warren D (2019). Practical program analysis using general purpose logic programming systems—a case study, ACM SIGPLAN Notices, 31:5, (117-126), Online publication date: 1-May-1996.
  45. Yi K, Ryu S and Pyun K Estimating Uncaught Exceptions in Standard ML Programs from Type-Based Equations Proceedings of the 20th Conference on Computer Software and Applications
  46. ACM
    Flanagan C and Felleisen M The semantics of future and its use in program optimization Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (209-220)
  47. ACM
    Cousot P and Cousot R Formal language, grammar and set-constraint-based program analysis by abstract interpretation Proceedings of the seventh international conference on Functional programming languages and computer architecture, (170-181)
  48. ACM
    Aiken A and Fähndrich M Dynamic typing and subtype inference Proceedings of the seventh international conference on Functional programming languages and computer architecture, (182-191)
  49. ACM
    Aiken A, Wimmers E and Lakshman T Soft typing with conditional types Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (163-173)
  50. ACM
    Wand M and Steckler P Selective and lightweight closure conversion Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (435-445)
  51. ACM
    Heintze N Set-based analysis of ML programs Proceedings of the 1994 ACM conference on LISP and functional programming, (306-317)
  52. ACM
    Heintze N (2019). Set-based analysis of ML programs, ACM SIGPLAN Lisp Pointers, VII:3, (306-317), Online publication date: 1-Jul-1994.
Contributors
  • LSI Corporation

Recommendations