Flow logics for constraint based analysis

  • Hanne Riis Nielson
  • Flemming Nielson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1383)


Flow logic offers a compact and versatile notation for expressing the acceptability of solutions to program analysis problems. In contrast to previous logical formulations of program analysis it aims at integrating existing approaches to data flow analysis and control flow analysis. It is able to deal with a broad variety of language paradigms, program properties, kinds of formal semantics, and methods used for computing the best solution. In this paper we illustrate how a compositional flow logic (in “succinct” form) can be systematically transformed into an efficient exhaustive procedure for computing the best solution of a set of constraints generated. This involves transformations to attribute grammars and to specifications of the (“verbose”) form used in control flow analysis.


Program analysis data flow analysis control flow analysis constraint based analysis attribute grammars 


  1. 1.
    W. A. Babich and M. Jazayeri. The method of attributes for data flow analysis-Part I. Exhaustive analysis. Acta Informatica, 10:245–264, 1978.Google Scholar
  2. 2.
    W. A. Babich and M. Jazayeri. The method of attributes for data flow analysis — Part II. Demand analysis. Acta Informatica, 10:265–272, 1978.Google Scholar
  3. 3.
    P. N. Benton. Strictness logic and polymorphic invariance. In Proc. Second International Symposium on Logical Foundations of Computer Science, pages 33–44. Springer Lecture Notes in Computer Science 620, 1992.Google Scholar
  4. 4.
    C. Fecht and H. Seidl. An even faster solver for general systems of equations. In ] Proc. SAS'96, volume 1145 of Lecture Notes in Computer Science, pages 189–204. Springer-Verlag, 1996.Google Scholar
  5. 5.
    Y.-C. Fuh and P. Mishra. Polymorphic subtype inference: Closing the theorypractice gap. In Proc. TAPSOFT'89, volume 352 of Lecture Notes in Computer Science, pages 167–183. Springer-Verlag, 1989.Google Scholar
  6. 6.
    K. L. S. Gasser, F. Nielson, and H. R. Nielson. Systematic realisation of control flow analyses for CML. In Proceedings of ICFP'97, pages 38–51. ACM Press, 1997.Google Scholar
  7. 7.
    M. S. Hecht. Flow Analysis of Computer Programs. North-Holland, 1977.Google Scholar
  8. 8.
    S. Jagannathan and S. Weeks. Analyzing Stores and References in a Parallel Symbolic Language. In Proc. LFP'94, pages 294–305, 1994.Google Scholar
  9. 9.
    S. Jagannathan and S. Weeks. A unified treatment of flow analysis in higher-order languages. In Proc. POPL '95. ACM Press, 1995.Google Scholar
  10. 10.
    T. P. Jensen. Abstract Interpretation in Logical Form. PhD thesis, Imperial College, 1993.Google Scholar
  11. 11.
    N D. Jones and A. Mycroft. Dataflow of Applicative Programs Using Minimal Function Graphs. In Proc. 13th POPL, pages 296–306. ACM Press, 1986.Google Scholar
  12. 12.
    T. M. Kuo and P. Mishra. Strictness analysis: A new perspective based on type inference. In Proc. FPCA '89, pages 260–272. ACM Press, 1989.Google Scholar
  13. 13.
    W. Landi and B. G. Ryder. Pointer-Induced Aliasing: A Problem Classification. In 18th POPL, Orlando, Florida, pages 93–103. ACM Press, 1991.Google Scholar
  14. 14.
    O. L. Madsen. On defining semantics by means of extended attribute grammars. In N. D. Jones, editor, Proc. Semantics-Directed Compiler Generation, volume 94 of Lecture Notes in Computer Science, pages 259–299. Springer-Verlag, 1980.Google Scholar
  15. 15.
    R. Milner, M. Tofte, and R. Harper. The definition of Standard ML. MIT Press, 1990.Google Scholar
  16. 16.
    F. Nielson and H. R. Nielson. Infinitary Control Flow Analysis: a Collecting Semantics for Closure Analysis. In Proc. POPL '97, 1997.Google Scholar
  17. 17.
    F. Nielson and H. R. Nielson. Interprocedural Flow Logics. Manuscript, 1998.Google Scholar
  18. 18.
    F. Nielson, H. R. Nielson, and C. L. Hankin. Principles of Program Analysis: Flows and Effects. To appear, 1999.Google Scholar
  19. 19.
    H. D. Pande and B. G. Ryder. Data-flow-based virtual function resolution. In Proc. SAS'96, volume 1145 of Lecture Notes in Computer Science, pages 238–254. Springer-Verlag, 1996.Google Scholar
  20. 20.
    M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In S. S. Muchnick and N. D. Jones, editors, Program Flow Analysis. Prentice-Hall, 1981.Google Scholar
  21. 21.
    O. Shivers. The semantics of Scheme control-flow analysis. In Partial Evaluation and Semantics-Based Program Manipulation. ACM SIGPLAN Notices 26 (9), 1991.Google Scholar
  22. 22.
    G. S. Smith. Polymorphic type schemes for functional programs with overloading and subtyping. Science of Computer Programming, 23:197–226, 1994.Google Scholar
  23. 23.
    J.-P. Talpin and P. Jouvelot. Polymorphic Type, Region and Effect Inference. Journal of Functional Programming, 2(3):245–271, 1992.Google Scholar
  24. 24.
    A. Tarski. A lattice-theoretical fixpoint theorem and its applications. Pacific J. Math., 5:285–309, 1955.Google Scholar
  25. 25.
    J. Vitek, R. N. Horspool, and J. S. Uhl. Compile-Time Analysis of Object-Oriented Programs. In Proc. CC '92, volume 641 of Lecture Notes in Computer Science, pages 236–250. Springer-Verlag, 1992.Google Scholar
  26. 26.
    D. A. Watt and O. L. Madsen. Extended attribute grammars. Computer Journal, 26(2):142–153, 1983.Google Scholar
  27. 27.
    R. Wilhelm and D. Maurer. Compiler Design. Addison-Wesley, 1995.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Hanne Riis Nielson
    • 1
  • Flemming Nielson
    • 1
  1. 1.Department of Computer ScienceAarhus UniversityDenmark

Personalised recommendations