A Modular, Extensible Proof Method for Small-Step Flow Analyses

  • Mitchell Wand
  • Galen B. Williamson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2305)


We introduce a new proof technique for showing the correctness of 0CFA-like analyses with respect to small-step semantics. We illustrate the technique by proving the correctness of 0CFA for the pure λ-calculus under arbitrary β-reduction. This result was claimed by Palsberg in 1995; unfortunately, his proof was flawed. We provide a correct proof of this result, using a simpler and more general proof method. We illustrate the extensibility of the new method by showing the correctness of an analysis for the Abadi-Cardelli object calculus under small-step semantics.


Proof Technique Reduction Rule Program Point Labelling Environment Binding Environment 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [1]
    M. Abadi and L. Cardelli. A theory of primitive objects: Untyped and first-order systems. Information and Computation, 125(2):78–102, Mar. 1996.zbMATHCrossRefMathSciNetGoogle Scholar
  2. [2]
    A. Aiken and N. Heintze. Constraint-based program analysis. In POPL’95 Tutorial, January 1995.Google Scholar
  3. [3]
    P. D. Blasio, K. Fisher, and C. Talcott. Analysis for concurrent objects. In H. Bowman and J. Derrick, editors, Proc. 2nd IFIP Workshop on Formal Methods for Open Object-Based Distributed Systems (FMOODS), pages 73–88, Canterbury, UK, July 1997. Chapman and Hall, London.Google Scholar
  4. [4]
    C. Bodei, P. Degano, F. Nielson, and H. R. Nielson. Control flow analysis for the π-calculus. In Proceedings of CONCUR’98, pages 611–638, Berlin, Heidelberg, and New York, 1998. Springer-Verlag.Google Scholar
  5. [5]
    W. S. Brainerd. Tree generating regular systems. Information and Control, 14(2):217–231, 1969.zbMATHCrossRefMathSciNetGoogle Scholar
  6. [6]
    C. Flanagan and M. Felleisen. Set-based analysis for full scheme and its use in softtyping. Technical Report COMP TR95-253, Department of Computer Science, Rice University, Oct. 1995.Google Scholar
  7. [7]
    J. C. Mitchell. Foundations for Programming Languages. MIT Press, Cambridge, MA, 1996.Google Scholar
  8. [8]
    F. Nielson and H. R. Nielson. Infinitary control flow analysis: a collecting semantics for closure analysis. In Proceedings 24th Annual ACM Symposium on Principles of Programming Languages, pages 332–345. ACM, Jan. 1997.Google Scholar
  9. [9]
    J. Palsberg. Closure analysis in constraint form. ACM Transactions on Programming Languages and Systems, 17(1):47–62, January 1995.CrossRefGoogle Scholar
  10. [10]
    P. Sestoft. Replacing function parameters by global variables. Master’s thesis, DIKU, University of Copenhagen, Copenhagen, 1989.Google Scholar
  11. [11]
    P. Sestoft. Analysis and efficient implementation of functional programs. PhD thesis, DIKU, University of Copenhagen, Copenhagen, 1991.Google Scholar
  12. [12]
    O. Shivers. Control-Flow Analysis of Higher-Order Languages. PhD thesis, Carnegie-Mellon University, May 1991.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Mitchell Wand
    • 1
  • Galen B. Williamson
    • 1
  1. 1.College of Computer ScienceNortheastern UniversityBostonUSA

Personalised recommendations