Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1868281.1868285acmotherconferencesArticle/Chapter ViewAbstractPublication PagesldtaConference Proceedingsconference-collections
research-article

Dependence condition graph for semantics-based abstract program slicing

Published: 28 March 2010 Publication History

Abstract

Many slicing techniques have been proposed based on the traditional Program Dependence Graph (PDG) representation. In traditional PDGs, the notion of data dependency between statements is based on syntactic presence of a variable in the definition of another variable or in a conditional expression. Mastroeni and Zanardini introduced semantics-based data dependency both at concrete and abstract domain. This semantics-based data dependency is computed at expression level over all possible (abstract) states appearing at program points. In this paper, we strictly improve this approach by (i) considering semantic relevancy of statements (not only expressions), and (ii) adopting conditional dependency. This allows us to transform the semantics-based (abstract) PDG into a semantics-based (abstract) Dependence Condition Graph (DCG) that enables to identify the conditions for dependence between program points. The resulting program slicing algorithm designed this way is strictly more accurate than the Mastroeni and Zanardini's one.

References

[1]
}}H. Agrawal and J. R. Horgan. Dynamic program slicing. In Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation (PLDI '90), pages 246--256, White Plains, New York, United States, 1990. ACM Press.
[2]
}}A. Cortesi and S. Bhattacharya. A framework for property-driven program slicing. In Proceedings of the 1st International Conference on Computer, Communication, Control and Information Technology, pages 118--122, Kolkata, India, 2009. Macmillan Publishers India Ltd.
[3]
}}P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Record of the Sixth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 238--252, Los Angeles, CA, USA, 1977. ACM Press.
[4]
}}P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pages 269--282, San Antonio, Texas, 1979. ACM Press.
[5]
}}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 (TOPLAS), 9(3):319--349, 1987.
[6]
}}K. B. Gallagher and J. R. Lyle. Using program slicing in software maintenance. IEEE Trans. Softw. Eng., 17(8):751--761, 1991.
[7]
}}R. Gerber and S. Hong. Slicing real-time programs for enhanced schedulability. ACM Trans on Programming Languages and Systems, 19(3):525--555, May 1997.
[8]
}}R. Giacobazzi, F. Ranzato, and F. Scozzari. Making abstract interpretations complete. Journal of the ACM (JACM), 47(2):361--416, March 2000.
[9]
}}R. Gupta, M. Harrold, and M. Soffa. An approach to regression testing using slicing. In Proceedings of Conference on Software Maintenance, pages 299--308, Orlando, FL, USA, Nov 1992. IEEE Computer Society.
[10]
}}S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Trans. Program. Lang. Syst., 11(3):345--387, 1989.
[11]
}}B. Korel and J. Rilling. Program slicing in understanding of large programs. In Proceedings of the 6th International Workshop on Program Comprehension (IWPC '98), pages 145--152, Ischia, Italy, June 1998. IEEE Computer Society.
[12]
}}F. Lanubile and G. Visaggio. Extracting reusable functions by flow graph-based program slicing. IEEE Transactions on Software Engineering, 23(4):246--259, 1997.
[13]
}}I. Mastroeni and D. Zanardini. Data dependencies and program slicing: from syntax to abstract semantics. In Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation (PEPM '08), pages 125--134, San Francisco, California, USA, 2008. ACM Press.
[14]
}}M. G. Nanda and S. Ramesh. Slicing concurrent programs. In Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis (ISSTA '00), pages 180--190, Portland, Oregon, United States, 2000. ACM Press.
[15]
}}K. J. Ottenstein and L. M. Ottenstein. The program dependence graph in a software development environment. In Softw. Eng. Symp. on Practical Softw. Dev. Environments, pages 177--184, New York, USA, 1984. ACM Press.
[16]
}}T. Reps and G. Rosay. Precise interprocedural chopping. In Proceedings of 3rd ACM SIGSOFT Symposium on Foundations of Software Engineering, June 1995.
[17]
}}S. Sukumarana, A. Sreenivasb, and R. Metta. The dependence condition graph: Precise conditions for dependence between program points. Computer Languages, Systems & Structures, 36(96--121):577--581, April 2010.
[18]
}}M. Weiser. Program slicing. IEEE Trans. on soft. Eng., SE-10(4):352--357, July 1984.
[19]
}}G. Winskel. The Formal Semantics of Programming Languages: An Introduction. The MIT Press, 1993.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
LDTA '10: Proceedings of the Tenth Workshop on Language Descriptions, Tools and Applications
March 2010
93 pages
ISBN:9781450300636
DOI:10.1145/1868281
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]

Sponsors

  • University of Minnesota Software Engineering Center

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 28 March 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. abstract interpretation
  2. dependence graph
  3. program dependence graphs
  4. program slicing
  5. static analysis

Qualifiers

  • Research-article

Conference

LDTA '10
Sponsor:

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 128
    Total Downloads
  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Feb 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media