skip to main content
article
Free Access

An extensible program representation for object-oriented software

Published:01 December 1994Publication History
Skip Abstract Section

Abstract

An extensible representation for object-oriented programs is presented. It is based on the concept of a program dependency graph and elaborated to include both control flow and data flow information. The representation takes advantage of the basic incremental philosophy of the object-oriented approach to develop a more compact representation that is useful with practical programs. The basic approach reported here provides a static view of an object-oriented program. The approach can be expanded to provide dynamic information for tools such as interactive debuggers and other runtime tools. The outline of this extension is also presented.

References

  1. The common object request broker: Architecture and specification. Technical report, Object Management Group and X/Open, 1992.Google ScholarGoogle Scholar
  2. Hiralal Agrawal and Joseph R. Horgan. Dynamic program slicing. In Proceedings of the ACM SIGPLAN '90 Symposium on Programming Language Design and Implementation, pages 246--256, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Korel B. The program dependence graph in static program testing. Information Processing Letters, 24(2):103--108, Jan 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Ryder B. G. Constructing the call graph of a program. IEEE Transactions on Software Engineering, 5(3):216--225, May 1979.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Binkley. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the Conference on Software Maintenance '92, pages 41--50, 1992.Google ScholarGoogle ScholarCross RefCross Ref
  6. Callahan D. The program summary graph and flow-sensitive interprocedural data flow analysis. In Proceedings of SIGPLAN'88 Conf. Programming Language Design and Implementation, pages 47--56, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Hiralal Agrawal; Richard A. DeMillo and Eugene H. Spafford. Dynamic slicing in the presence of unconstrained pointers. In Proceedings of the Fourth Symposium on Testing, Analysis and Verification (TAV4). ACM/IEEE-CS, pages 60--73, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. David Duke and Roger Duke. Towards a semantics for object-z. In VDM '90: VDM and Z, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Margaret A. Ellis and Bjarne Stroustrup. The Annotated C<sup>++</sup> Reference Manual. Addison-Wesley, Reading, MA, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. E. Duesterwald; R. Gupta and M. L. Soffa. Rigorous data flow testing through output influences. In Proceedings of the 2nd Irvine Software Symposium (ISS'92), pages 131--145, 1992.Google ScholarGoogle Scholar
  11. Rajiv Gupta and Mary Lou Soffa. Automatic generation of a compact test suite. In Proceedings of the Twelfth IFIP World Computer Congress, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Mary Jean Harrold and Brian Malloy. A unified interprocedural program representation for a maintenance environment. IEEE Transactions on Software Engineering, 19(6):584--593, June 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Mary Jean Harrold and John D. McGregor. Hierarchical incremental testing. Technical Report TR91-111, Department of Computer Science, Clemson University, 1991.Google ScholarGoogle Scholar
  14. Mary Jean Harrold and Mary Lou Soffa. Computation of interprocedural definition and use dependencies. In Proceedings of IEEE Computer Society 1990 Int. Conf. on Comput. Languages, New Orleans, LA, pages 297--306, 1990.Google ScholarGoogle ScholarCross RefCross Ref
  15. Rajiv Gupta; Mary Jean Harrold and Mary Lou Soffa. An approach to regression testing using slicing. In Proceedings of the Conference on Software Maintenance '92, pages 299--308, 1992.Google ScholarGoogle Scholar
  16. Ferrante J; Ottenstein K and Warren J. D. The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems, 9(3):319--331, July 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Tim Korson and John McGregor. Object-oriented software design: A tutorial. Communications of the ACM, 33(9):40 -- 60, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Anand Krishnaswamy. Program slicing: An application of object-oriented program dependency graphs. Technical Report TR 94--108, Clemson University, 1994.Google ScholarGoogle Scholar
  19. Brian Malloy; John D. McGregor; Anand Krishnaswamy and Murali Medikonda. An extensible program representation for object-oriented software. Technical Report TR 94--109, Clemson University, 1994.Google ScholarGoogle Scholar
  20. Panos E. Livadas and Stephen Croll. Program slicing. Technical Report SERC-TR-61-F, University of Florida, Gainesville, 1992.Google ScholarGoogle Scholar
  21. Mary Jean Harrold; Brian Malloy and Gregg Rothermel. Efficient construction of program dependence graphs. ACM International Symposium on Software Testing and Analysis, 18(3):160--70, June 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Gregg Rothermel and Mary Jean Harrold. A safe, efficient algorithm for regression test selection. In Proceedings of the Conference on Software Maintenance '93, pages 358--367, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorensen. Object-Oriented Modeling and Design. Prentice-Hall, Englewood Cliffs, NJ, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. E. Schatz and B. G. Ryder. Directed tracing to detect race conditions. Technical Report LCSR-TR-176, Laboratory for Computer Science Research, Rutgers University, 1992.Google ScholarGoogle Scholar
  25. Bjarne Stroustrup. The C<sup>++</sup> Programming Language. Addison-Wesley, Reading, MA, second edition, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Horwitz S; Reps T and Binkley D. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems, 12(1):26--60, Jan 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An extensible program representation for object-oriented software

    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 29, Issue 12
      Dec. 1994
      109 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/193209
      Issue’s Table of Contents

      Copyright © 1994 Authors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 December 1994

      Check for updates

      Qualifiers

      • article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader