Skip to main content

Slicing concurrent programs

A graph-theoretical approach

  • Slicing
  • Conference paper
  • First Online:
Book cover Automated and Algorithmic Debugging (AADEBUG 1993)

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

Included in the following conference series:

Abstract

This paper extends the notion of slicing, which was originally proposed and studied for sequential programs, to concurrent programs and presents a graph-theoretical approach to slicing concurrent programs. In addition to the usual control and data dependences proposed and studied for sequential programs, the paper introduces three new types of primary program dependences in concurrent programs, named the selection dependence, synchronization dependence, and communication dependence. The paper also propose a new program representation for concurrent programs, named the Process Dependence Net (PDN), which is an arc-classified digraph to explicitly represent the five types of primary program dependences in the programs. As a result, various notions about slicing concurrent programs can be formally defined based on the representation, and the problem of slicing a concurrent program can be simply reduced to a vertex reachability problem in its PDN representation.

This work is partly supported by The Ministry of Education, Science and Culture of Japan under Grant-in-Aid for Scientific Research (C) No. 04650319 and by a grant from The Kurata Foundation.

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. H. Agrawal and J. R. Horgan, “Dynamic Program Slicing”, Proc. ACM SIGPLAN'90, pp.246–256, June 1990.

    Google Scholar 

  2. K. Araki, Z. Furukawa, and J. Cheng, “A General Framework for Debugging”, IEEE-CS Software, Vol.3, No.3, pp.14–20, 1991.

    Google Scholar 

  3. J. Cheng, “Process Dependence Net: A Concurrent Program Representation”, Proc. JSSST 8th Conference, pp.513–516, September 1991.

    Google Scholar 

  4. J. Cheng, “Task Dependence Net as a Representation for Concurrent Ada Programs”, in J. van Katwijk (ed.), “Ada: Moving towards 2000”, LNCS, Vol.603, pp.150–164, Springer-Verlag, June 1992.

    Google Scholar 

  5. J. Cheng, “The Tasking Dependence Net in Ada Software Development”, ACM Ada Letters, Vol.12, No.4, pp.24–35, 1992.

    Google Scholar 

  6. J. Cheng and K. Ushijima, “Partial Order Transparency as a Tool to Reduce Interference in Monitoring Concurrent Systems”, in Y. Ohno (ed.), “Distributed Environments”, pp.156–171, Springer-Verlag, 1991.

    Google Scholar 

  7. J. Cheng, Y. Kasahara, M. Kamachi, Y. Nomura, and K. Ushijima, “Compiling Programs to Their Dependence-Based Representations”, Proc. 1993 IEEE Region 10 International Conference on Computer, Communication and Automation, to appear, October 1993.

    Google Scholar 

  8. W. H. Cheung, J. P. Black, and E. Manning, “A Framework for Distributed Debugging”, IEEE-CS Software, Vol.7, No.1, pp.106–115, 1990.

    Google Scholar 

  9. J. Ferrante, K. J. Ottenstein, and J. D. Warren, “The Program Dependence Graph and Its Use in Optimization”, ACM Transactions on Programming Languages and Systems, Vol.9, No.3, pp.319–349, 1987.

    Google Scholar 

  10. E. Duesterwald, R. Gupta, and M. L. Soffa, “Distributed Slicing and Partial Re-execution for Distributed Programs”, Proc. 5th Workshop on Languages and Compilers for Parallel Computing, pp.329–337, August 1992.

    Google Scholar 

  11. G. S. Goldszmidt, S. Temini, and S. Katz, “High-Level Language Debugging for Concurrent Programs”, ACM Transactions on Computer Systems, Vol.8, No.4, pp.311–336, 1990.

    Google Scholar 

  12. S. Horwitz, T. Reps, and D. Binkley, “Interprocedural Slicing Using Dependence Graphs”, ACM Transactions on Programming Languages and Systems, Vol.12, No.1, pp.26–60, 1990.

    Google Scholar 

  13. M. Kamkar, N. Shahmehri, and P. Fritzson, “Bug Localization by Algorithmic Debugging and Program Slicing”, Proc. PLILP '90, LNCS, Vol.456, pp.60–74, Springer-Verlag, August 1990.

    Google Scholar 

  14. M. Kamkar, N. Shahmehri, and P. Fritzson, “Interprocedural Dynamic Slicing”, Proc. PLILP '92, LNCS, Vol.631, pp.370–371, Springer-Verlag, August 1992.

    Google Scholar 

  15. B. Korel, “PELAS — Program Error-Locating Assistant System”, IEEE-CS Transactions on Software Engineering, Vol.14, No.9, pp.1253–1260, 1988.

    Google Scholar 

  16. B. Korel and R. Ferguson, “Dynamic Slicing of Distributed Programs”, Appl. Math. and Comp. Sci., Vol.2, No.2, pp.199–215, 1992.

    Google Scholar 

  17. B. Korel and J. Laski, “Dynamic Program Slicing”, Information Processing Letters, Vol.29, No.10, pp.155–163, 1988.

    Google Scholar 

  18. C. E. McDowell and D. P. Helmbold, “Debugging Concurrent Programs”, ACM Computing Surveys, Vol.21, No.4, pp.593–622, 1989.

    Google Scholar 

  19. G. J. Myers, “The Art of Software Testing”, John Wiley & Sons, 1979.

    Google Scholar 

  20. K. J. Ottenstein and L. M. Ottenstein, “The Program Dependence Graph in a Software Development Environment”, ACM Software Engineering Notes, Vol.9, No.3, pp.177–184, 1984.

    Google Scholar 

  21. K. J. Ottenstein and S. Ellcey, “Experience Compiling Fortran to Program Dependence Graphs”, Software — Practice and Experience, Vol.22, No.1, pp.41–62, 1992.

    Google Scholar 

  22. A. Podgurski and L. A. Clarke, “A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance”, IEEE-CS Transactions on Software Engineering, Vol.16, No.9, pp.965–979, 1990.

    Google Scholar 

  23. M. Weiser, “Programmers Use Slices When Debugging”, Communications of ACM, Vol.25, No.7, pp.446–452, 1982.

    Google Scholar 

  24. M. Weiser, “Program Slicing”, IEEE-CS Transactions on Software Engineering, Vol.SE-10, No.4, pp.352–357, 1984.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Peter A. Fritzson

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cheng, J. (1993). Slicing concurrent programs. In: Fritzson, P.A. (eds) Automated and Algorithmic Debugging. AADEBUG 1993. Lecture Notes in Computer Science, vol 749. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0019411

Download citation

  • DOI: https://doi.org/10.1007/BFb0019411

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-48141-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics