skip to main content
10.1145/155090.155095acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free Access

Abstract debugging of higher-order imperative languages

Published:01 June 1993Publication History

ABSTRACT

Abstract interpretation is a formal method that enables the static determination (i.e. at compile-time) of the dynamic properties (i.e. at run-time) of programs. We present an abstract interpretation-based method, called abstract debugging, which enables the static and formal debugging of programs, prior to their execution, by finding the origin of potential bugs as well as necessary conditions for these bugs not to occur at run-time. We show how invariant assertions and intermittent assertions, such as termination, can be used to formally debug programs. Finally, we show how abstract debugging can be effectively and efficiently applied to higher-order imperative programs with exceptions and jumps to non-local labels, and present the Syntox system that enables the abstract debugging of the Pascal language by the determination of the range of the scalar variables of programs.

References

  1. 1.Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman: "Compilers m Principles, Techniques and Tools", Addison-Wesley Publishing Company (1986) Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.John P. Banning: "An Efficient Way to Find the Side Effects of Procedure Calls and the Aliases of Variables", Proc. of the 6th ACM Syrup. on POPL (1979) 29-41 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.Francois Bourdoncle: "Interprocedural Abstract Interpretation of Block Structured Languages with Nested Procedures, Aliasing and Recursivity", Proc. of the International Workshop PLILP'90, Lecture Notes in Computer Science 456, Springer- Verlag (1990) 307-323 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.Francois Bourdoncle: "Abstract Interpretation By Dynamic Partitioning", Journal of Functional Programming, Vol. 2, No. 4 (1992) 407-435Google ScholarGoogle ScholarCross RefCross Ref
  5. 5.Franqois Bourdoncle: "Sdmantiques des langages impdratifs d'ordre sup~rieur et interpretation abstraite", Ph.D. dissertation, Ecole Polytechnique (1992)Google ScholarGoogle Scholar
  6. 6.Franqois Bourdoncle: "Efficient Chaotic Iteration Strategies with Widenings", Proc. of the International Conf. on Formal Methods in Programming and their Applications, Lecture Notes in Computer Science, Springer-Verlag (1993) to appearGoogle ScholarGoogle Scholar
  7. 7.Keith D. Cooper: "Analyzing Aliases of Reference FoImal Parameters", Proc. of the 12th ACM Syrup. on POPL (1985) 281-290 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.Patrick and Radhia Cousot: "Abstract Interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints", Proc. of the 4th ACM Syrup. on POPL (1977) 238-252 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Patrick Cousot: "Asynchronous iterative methods for solving a fixpoint system of monotone equations", Research Report IMAG-RR-88, Universitd Scientifique et M~dicale de Grenoble (1977)Google ScholarGoogle Scholar
  10. 10.Patrick Cousot and Nicolas Halbwachs: "Automatic discovery of linear constraints among variables of a program", Proc. of the 5th ACM Syrup. on POPL (1978) 84-97 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.Patrick Cousot: "M~thodes it~ratives de construction et d'approximation de points fixes d'op~rateurs monotones sur un treillis. Analyse s~mantique de progranunes", Ph.D. dissertation, Universit6 Scientifique et M~dicale de Grenoble (1978)Google ScholarGoogle Scholar
  12. 12.Patrick and Radhia Cousot: "Static determination of dynamic properties of recursive procedures", Formal Description of Programming Concepts, North Holland Publishing Company (1978) 237-277Google ScholarGoogle Scholar
  13. 13.Patrick Cousot: "Semantic foundations of program analysis" in Muchnick and Jones Eds., Program Flow Analysis, Theory and Applications, Prentice-Hall (1981) 303-343Google ScholarGoogle Scholar
  14. 14.Alan J. Demers, Anne Neirynck and Prakash Panangaden: "Computation of Aliases and Support Sets", Proc. of the 14th ACM Syrup. on POPL (I987) 274-283 Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.Alain Deutsch: "On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications'', Proc. of the 17th ACM Syrup. on POPL (1990) Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.Alain Deutsch: "A Storeless Model of Aliasing and its Abstractions using Finite Representations of Right-Regular Equivalence Relations", Proc. of the IEEE'92 International Conf. on Computer Languages, IEEE Press (1992)Google ScholarGoogle Scholar
  17. 17.William H. Harrison: "Compiler Analysis of the Value Ranges for Variables", IEEE Transactions on software engineering, Vol. SE-3, No. 3, (1977) 243-250Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.Rajiv Gupta: "A Fresh Look at Optimizing Array Bound Checking", Proc. of SIGPLAN '90 Conf. on Programming Language Design and Implementation (1990) 272-282 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.Neil D. Jones and Steven Muchnick: "A Flexible Approach to Interprocedural Data Flow Analysis and Programs with Recursive Data Structures", in Proc. of the 9th ACM Symp. on POPL (1982) Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.William Landi and Barbara G. Ryder: "Pointer-induced Aliasing: A Problem Classification", Proc. of the 18th ACM Symp. on POPL (1991) 93-103 Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.Victoria Markstein, John Cocke and Peter Markstein: "Optimization of Range Checking",Proc. of the SIGPLAN' 82 Syrup. on Compiler Construction (1982) 114-119 Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.Jan Stransky: "A lattice for Abstract Interpretation of Dynamic (Lisp-like) Structures", Information and Computation 101 (1992) 70-102 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.Micha Shark and Amir Pnueli: "Two Approaches to Interprocedural Data Flow Analysis" in Muchnick and Jones Eds., Program Flow Analysis, Theory and Applications, Prentice- Hall (1981) 189-233Google ScholarGoogle Scholar
  24. 24.Andrew P. Tolmach and Andrew W. Appel: "Debugging Standard ML Without Reverse Engineering", Proc. 1990 ACM Conf. on Lisp and Functional Programming, ACM Press (1990) 1-12 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.G.A. Venkatesh and Charles N. Fisher: "SPARE: A Development Environment For Program Analysis Algorithms", IEEE Transactions on software engineering. Vol. 18. No. 4. (1992) 304-318 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Abstract debugging of higher-order imperative languages

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        PLDI '93: Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
        August 1993
        313 pages
        ISBN:0897915984
        DOI:10.1145/155090

        Copyright © 1993 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 June 1993

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate406of2,067submissions,20%

        Upcoming Conference

        PLDI '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader