Skip to main content

Deriving Analysers by Folding/Unfolding of Natural Semantics and a Case Study: Slicing

  • Conference paper
  • First Online:
Static Analysis (SAS 1998)

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

Included in the following conference series:

Abstract

We consider specifications of analysers expressed as compositions of two functions: a semantic function, which returns a natural semantics derivation tree, and a property defined by recurrence on derivation trees. A recursive definition of a dynamic analyser can be obtained by fold/unfold program transformation combined with deforestation. A static analyser can then be derived by abstract interpretation of the dynamic analyser. We apply our framework to the derivation of a dynamic backward slicing analysis for a logic programming language.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S. Abramsky. Abstract interpretation, logical relations and Kan extensions. Journal of Logic and Computation, 1:5–40, 1990.

    Article  MATH  MathSciNet  Google Scholar 

  2. R. M. Burstall and J. Darlington. A transformation system for developing recursive programs. Journal of the ACM, 24:44–67, 1977.

    Article  MATH  MathSciNet  Google Scholar 

  3. W.N. Chin. Automatic methods for program transformation. PhD thesis, Imperial College, 1990.

    Google Scholar 

  4. P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In POPL, pages 238–252, 1977.

    Google Scholar 

  5. J. Darlington. A synthesis of several sorting algorithms. Acta Informatica, 11:1–30, 1978.

    Article  MATH  MathSciNet  Google Scholar 

  6. J. Darlington and R. M. Burstall. A system which automatically improves programs. Acta Informatica, 6:41–60, 1976.

    Article  MATH  Google Scholar 

  7. T. Despeyroux. Typol: a formalism to implement natural semantics. Technical Report 94, INRIA, France, 1988.

    Google Scholar 

  8. J. Field, G. Ramalingam, and F. Tip. Parametric program slicing. In POPL, pages 379–392, 1995.

    Google Scholar 

  9. A. Gill, J. Launchbury, and S.L. Peyton Jones. A short cut to deforestation. In FPCA, pages 223–232, 1993.

    Google Scholar 

  10. V. Gouranton. Dérivation d’analyseurs dynamiques et statiques à partir de spécifications opérationnelles. PhD thesis, Université de Rennes, France, 1997.

    Google Scholar 

  11. V. Gouranton. Deriving analysers by folding/unfolding of natural semantics and a case study: slicing. Technical Report 3413, INRIA, France, 1998.

    Google Scholar 

  12. V. Gouranton and D. Le MĂ©tayer. Dynamic slicing: a generic analysis based on a natural semantics format. Technical Report 3375, INRIA, France, 1998.

    Google Scholar 

  13. H. Ibraheem and D. A. Schmidt. Adapting big-step semantics to small-step style: coinductive interpretations and ”higher-order” derivations. In Second Workshop on Higher-Order Techniques in Operational Semantics (HOOTS2), 1997.

    Google Scholar 

  14. G. Kahn. Natural semantics. In STACS 87, number 247 in Lecture Notes in Computer Science, pages 22–39. Springer-Verlag, 1987.

    Chapter  Google Scholar 

  15. B. Le Charlier, K. Musumbu, and P. Van Hentenryck. A generic interpretation algorithm and its complexity analysis. In ICLP, pages 64–78, 1991.

    Google Scholar 

  16. D. Miller and G. Nadathur. Higher-order logic programming. In ILPC, volume 225 of LNCS, pages 448–462, 1986.

    Google Scholar 

  17. H. Riis Nielson and F. Nielson. Semantics With Applications. John Wiley & Sons, 1992.

    Google Scholar 

  18. T. Reps and T. Turnidge. Program specialization via program slicing. In International Seminar on Partial Evaluation, 1996.

    Google Scholar 

  19. T. Reps and W. Yang. The semantics of program slicing. Technical Report 777, University of Wisconsin, Madison, 1988.

    Google Scholar 

  20. D. Sands. Proving the correctness of recursion-based automatic program transformations. In TAPSOFT. Springer-Verlag, 1995.

    Google Scholar 

  21. D. Sands. Total correctness by local improvement in the transformation of functional programs. TOPLAS, 18:175–234, 1996.

    Article  Google Scholar 

  22. D.A. Schmidt. Abstract interpretation of small-step semantics. In 5th LOMAPS Workshop on Analysis and Verification of Multiple-Agent Languages. LNCS, 1996.

    Google Scholar 

  23. S. Schoenig and M. Ducassé. A backward slicing algorithm for prolog. In SAS, number 1145 in LNCS, pages 317–331. Springer-Verlag, 1996.

    Google Scholar 

  24. B. Steffen. Generating data flow analysis algorithms from modal specifications. Science of Computer Science, 21(2):115–139, 1993.

    MATH  Google Scholar 

  25. F. Tip. A survey of program slicing techniques. Journal of Programming Languages, 3:121–189, 1995.

    Google Scholar 

  26. G.A. Venkatesh. A framework for construction and evaluation of high-level specifications for program analysis techniques. In PLDI, volume 24, pages 1–12, 1989.

    Google Scholar 

  27. G.A. Venkatesh. The semantics approach to program slicing. In PLDI, pages 107–119, 1991.

    Google Scholar 

  28. P. Wadler. Deforestation: transforming programs to eliminate trees. Theoretical Computer Science, 73:231–248, 1990.

    Article  MATH  MathSciNet  Google Scholar 

  29. M. Weiser. Program slicing. IEEE Transactions on Software Engineering, 4:352–357, 1984.

    Article  Google Scholar 

  30. K. Yi and W. L. Harrison III. Automatic generation and management of interprocedural program analyses. In POPL, pages 246–259, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gouranton, V. (1998). Deriving Analysers by Folding/Unfolding of Natural Semantics and a Case Study: Slicing. In: Levi, G. (eds) Static Analysis. SAS 1998. Lecture Notes in Computer Science, vol 1503. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49727-7_7

Download citation

  • DOI: https://doi.org/10.1007/3-540-49727-7_7

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-65014-0

  • Online ISBN: 978-3-540-49727-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics