Skip to main content

Abstract interpretation of small-step semantics

  • Conference paper
  • First Online:
Analysis and Verification of Multiple-Agent Languages (LOMAPS 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1192))

Abstract

The techniques of classical abstract interpretation are extended to the big- and small-step operational semantics of higher-order and communicative languages: Well-known techniques, such as memoization, and lesser-known ones, such as abstraction on program syntax, are employed to generate finite abstract interpretations of source programs based on their formal operational semantic definitions. The result is a clear methodology for generating semantically safe (and live) abstract, regular trees for programs that do not possess obvious, finite, state-transition diagram depictions. The primary application of the research is to the validation of program properties; in particular, the application of model checking to validate safety properties in the box-mu calculus and liveness properties in the diamond-mu calculus is discussed.

Supported by NSF CCR-9302962 and ONR N00014-94-1-0866.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S. Bensalem, A. Bouajjani, C. Loiseaux, and J. Sifakis. Property preserving simulations. In G. vanBochman and D. Probst, editors, Computer Aided Verification: CAV'92, number 663 in Lecture Notes in Computer Science, pages 260–273. Springer-Verlag, 1992.

    Google Scholar 

  2. O. Burkart and B. Steffen. Model checking for context-free processes. In Proc. CONCUR92, Lecture Notes in Computer Science 630, pages 123–137. Springer, 1992.

    Google Scholar 

  3. E.M. Clarke, O. Grumberg, and D.E. Long. Model checking and abstraction. ACM Transactions on Programming Languages and Systems, 16(5):1512–1542, 1994.

    Google Scholar 

  4. R. Cleaveland, P. Iyer, and D. Yankelevich. Optimality in abstractions of model checking. In SAS'95: Proc. 2d. Static Analysis Symposium, Lecture Notes in Computer Science 983, pages 51–63. Springer, 1995.

    Google Scholar 

  5. M. Codish, S. Debray, and R. Giacobazzi. Compositional analysis of modular logic programs. In Proc. 20th ACM Symp. on Principles of Programming Languages, pages 451–464. ACM Press, 1993.

    Google Scholar 

  6. M. Codish, M. Falaschi, and K. Marriott. Suspension analysis for concurrent logic programs. In Proc. 8th Int'l. Conf. on Logic Programming, pages 331–345. MIT Press, 1991.

    Google Scholar 

  7. C. Colby. Analyzing the communication topology of concurrent programs. In ACM Symp. on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'95), pages 202–214, 1995.

    Google Scholar 

  8. P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs. In Proc. 4th ACM Symp. on Principles of Programming Languages, pages 238–252. ACM Press, 1977.

    Google Scholar 

  9. P. Cousot and R. Cousot. Abstract interpretation frameworks. Journal of Logic and Computation, 2(4):511–547, 1992.

    Google Scholar 

  10. P. Cousot and R. Cousot. Inductive definitions, semantics, and abstract interpretation. In Proc. 19th ACM Symp. on Principles of Programming Languages, pages 83–94. ACM Press, 1992.

    Google Scholar 

  11. R. Cridlig. Implementing a static analyzer of concurrent programs: problems and perspectives. In M. Dam and F. Orava, editors, Proc. LOMAPS Workshop on Analysis and Verification of Multiple-Agent Languages, Lecture Notes in Computer Science. Springer, 1996.

    Google Scholar 

  12. D. Dams. Abstract interpretation and partition refinement for model checking. PhD thesis, Technische Universiteit Eindhoven, The Netherlands, 1996.

    Google Scholar 

  13. D. Dams, O. Grumberg, and R. Gerth. Abstract intepretation of reactive systems. In E.-R. Olderog, editor, Proc. IFIP Working Conference on Programming Concepts, Methods, and Calculi. North-Holland, 1994.

    Google Scholar 

  14. N. DeFrancesco, A. Fantechi, S. Gnesi, and P. Inverardi. Model checking of nonfinite state processes by finite approximations. In Proc. Tools and Algorithms for the Construction and Analysis of Systems (TACAS'95), Lecture Notes in Computer Science 1019, pages 195–215. Springer, 1995.

    Google Scholar 

  15. M. Dwyer and L. Clark. Data flow analysis for verifying properties of concurrent programs. In Proc. 2d ACM SIGSOFT Symposium on Foundations of Software Engineering, pages 62–75. ACM Press, 1994.

    Google Scholar 

  16. F. Giannotti and D. Latella. Gate splitting in LOTOS specifications using abstract interpretation. In M.-C. Gaudel and J.-P. Jouannaud, editors, TAPSOFT'93, number 668 in Lecture Notes in Computer Science, pages 437–452. Springer-Verlag, 1993.

    Google Scholar 

  17. H. Hungar and B. Steffen. Local model checking for context-free processes. In Proc. ICALP93, Lecture Notes in Computer Science 700, pages 593–605. Springer, 1993.

    Google Scholar 

  18. J. W. Klop. Term rewriting systems. In S. Abramsky, D. Gabbay, and T. Maibaum, editors, Handbook of Logic in Computer Science, volume 2, pages 2–117. Oxford University Press, 1992.

    Google Scholar 

  19. R. Milner. The polyadic π-calculus: a tutorial. Technical Report ECS-LFCS-91-180, Lab. for Foundations of Computer Science, University of Edinburgh, 1991. Also in Logic and Algebra of Specification, F.L.Bauer, ed., Springer, 1993.

    Google Scholar 

  20. Robin Milner. Communication and Concurrency. Prentice-Hall, 1989.

    Google Scholar 

  21. F. Nielson and H. R. Nielson. Higher-order concurrent programs with finite communication topology. In Proc. ACM POPL'94, pages 84–97, 1994.

    Google Scholar 

  22. F. Nielson and H. R. Nielson. From CML to its process algebra. Theoretical Computer Science, 155(1):179–220, 1996.

    Google Scholar 

  23. H. R. Nielson and F. Nielson. Semantics with Applications, a formal introduction. Wiley Professional Computing. John Wiley and Sons, 1992.

    Google Scholar 

  24. J. Palsberg. Global program analysis in constraint form. In M. P. Fourman, P. T. Johnstone, and A. M. Pitts, editors, Proc. CAAP'94, Lecture Notes in Computer Science, pages 258–269. Springer-Verlag, 1994.

    Google Scholar 

  25. D.A. Schmidt. Natural-semantics-based abstract interpretation. In A. Mycroft, editor, Static Analysis Symposium, number 983 in Lecture Notes in Computer Science, pages 1–18. Springer-Verlag, 1995.

    Google Scholar 

  26. P. Sestoft. Analysis and Efficient Implementation of Functional Programs. PhD thesis, Copenhagen University, 1991.

    Google Scholar 

  27. O. Shivers. Control-flow analysis in Scheme. In Proc. SIGPLAN88 Conf. on Prog. Language Design and Implementation, pages 164–174, 1988.

    Google Scholar 

  28. B. Steffen. Generating data-flow analysis algorithms for modal specifications. Science of Computer Programming, 21:115–139, 1993.

    Google Scholar 

  29. B. Steffen. Property-oriented expansion. In R. Cousot and D. Schmidt, editors, Static Analysis Symposium: SAS'96, volume 1145 of Lecture Notes in Computer Science, pages 22–41. Springer-Verlag, 1996.

    Google Scholar 

  30. C. Stirling. Modal and temporal logics. In S. Abramsky, D. Gabbay, and T.S.E. Maibaum, editors, Handbook of Logic in Computer Science, volume 2, pages 477–563. Oxford University Press, 1992.

    Google Scholar 

  31. A. Venet. Abstract interpretation of the pi-calculus. In M. Dam and F. Orava, editors, Proc. LOMAPS Workshop on Analysis and Verification of Multiple-Agent Languages, Lecture Notes in Computer Science. Springer, 1996.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mads Dam

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Schmidt, D.A. (1997). Abstract interpretation of small-step semantics. In: Dam, M. (eds) Analysis and Verification of Multiple-Agent Languages. LOMAPS 1996. Lecture Notes in Computer Science, vol 1192. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62503-8_4

Download citation

  • DOI: https://doi.org/10.1007/3-540-62503-8_4

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-62503-2

  • Online ISBN: 978-3-540-68052-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics