skip to main content
article
Free Access

Dynamic program slicing

Published:01 June 1990Publication History
Skip Abstract Section

Abstract

Program slices are useful in debugging, testing, maintenance, and understanding of programs. The conventional notion of a program slice, the static slice, is the set of all statements that might affect the value of a given variable occurrence. In this paper, we investigate the concept of the dynamic slice consisting of all statements that actually affect the value of a variable occurrence for a given program input. The sensitivity of dynamic slicing to particular program inputs makes it more useful in program debugging and testing than static slicing. Several approaches for computing dynamic slices are examined. The notion of a Dynamic Dependence Graph and its use in computing dynamic slices is discussed. The Dynamic Dependence Graph may be unbounded in length; therefore, we introduce the economical concept of a Reduced Dynamic Dependence Graph, which is proportional in size to the number of dynamic slices arising during the program execution.

References

  1. AH89 Hiralal Agrawal and Joseph R. Horgan. Dynamic program slicing. Technical Report SERC-TR-56-P, Software Engineering Research Center, Purdue University, West Lafayette, Indiana, November 1989.Google ScholarGoogle Scholar
  2. ASU86 Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bal69 R.M. Balzer. Exdamswextendable debugging and monitoring system. In AFIPS Proceedings, Spring Joint Computer Conference, 1969, volume 34, pages 567-580.Google ScholarGoogle Scholar
  4. FOW87 Jeanne Ferrante, Karl J. Ottenstein, and Joe D. Warren. The program dependence graph and its uses in optimization. A CM Transactions on Programming Languages and Systems, 9(3):319-349, July 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. HPR89 Susan Horwitz, Jan Prins, and Thomas Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, :.1(3):345-387, July 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. HRB88 Susan Horwitz, Thomas Reps, and David Binkeley. Interprocedural slicing using dependence graphs. In Proceedings of the A CM SIGPLAN'88 Conference on Programming Language Design and implementation, Atlanta, Georgia, June 1988. SIGPLAN Notices, 23(7):35-46, July 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. KKL+81 I). J. Kuck, R. It. Kuhn, B. Leasure, D. A. Padua, and M. Wolfe. Dependence graphs and compiler optimizations. In Confernce Record of the Eighth ACM Symposium on Principles o.f Programming Languages, Williamsburg, Virginia, January 1981. pages 207-218. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. KL88 tJogdan Korel and Janusz Laski. Dynamic t,rogram slicing. Information Processing Letters, 29:155-163, October 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. MC88 tJarton P. Miller and Jong-Deok Choi. A mechanism for efficient debugging of parallel programs. In Proceedings of the ICM SIGPLAN'88 Conference on Programming Language Design and fmplerqentaiion, Atlanta, Georgia, june 1988. fi. IGPLAN Notices, 23(7):135-144, July 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. OO84 Karl J. Ottenstein and Linda M. Ottenstein. The program dependence fl:raph in a software development environraent. In Proceedings of the A CM SIG- OFT/SIGPLAN Symposium on Practical Software Development Environments, pittaburgh, Pennsilvania, April 1984. SIGPLAN Notices, 19(5):177-184, May 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Wei82 Mark Weiser. Programmers use slices when debugging. Communications of the ACM, 25(7):446-452, July 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Wei84 Mark Weiser. Program slicing. IEEE Transactions on Software Engineering, SE-10(4):352-357, July 1984.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dynamic program slicing

          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

          Full Access

          • Published in

            cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 25, Issue 6
            Jun. 1990
            343 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/93548
            Issue’s Table of Contents
            • cover image ACM Conferences
              PLDI '90: Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
              June 1990
              351 pages
              ISBN:0897913647
              DOI:10.1145/93542

            Copyright © 1990 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 1990

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader