10.5555/1082161.1082189dlproceedingsArticle/Chapter ViewAbstractPublication PagesicpsprocConference Proceedings
Article
Free Access

Integration of generic program analysis tools into a software development environment

ABSTRACT

Support for program understanding in development and maintenance tasks can be facilitated by program analysis techniques. Both control-flow and data-flow analysis can support program comprehension by augmenting the program text with additional information that may either be displayed with the program or used to allow more sophisticated navigation of the program, e.g., from an identifier's use to its definition.This paper outlines the addition of generic program analysis support to a generic, language-based, software development environment. The analysis tools are implemented in two phases: a language-dependent phase that extracts basic information from a program, such as its control flow graph; and a language-independent phase that performs a more sophisticated analysis of the basic information. This separation allows program analysis tools to be easily generated for a new language.

References

  1. Buxton, J. (1980), DoD requirements for Ada programming support enviroments, STONEMAN, Technical Report AD-A100 404, US Department of Defense. Available from http://www.adahome.com/History/Stoneman, Accessed August 2003.Google ScholarGoogle Scholar
  2. Cook, P. & Welsh, J. (2001), 'Incremental parsing in language-based editors: User needs and how to meet them.', Software - Pratice and Experience31(15), 1461--1468. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Cook, P., Welsh, J. & Hayes, I. (2002), Incremental context-sensitive evaluation in context, Technical Report 02--11, Software Verification Research Centre (SVRC), School of Information Technology, The University of Queensland, Brisbane, Australia.Google ScholarGoogle Scholar
  4. Gerber, A., Glynn, E., Lawley, M., MacDonald, A. & Raymond, K. (2004), Knowledge Discovery MetaModel - Initial Submission, OMG Submission admtf/04-04-01, Object Management Group.Google ScholarGoogle Scholar
  5. Grundon, S., Hayes, I. & Fidge, C. (1998), Timing constraint analysis, in C. McDonald, ed., 'Proceedings 21st Australasian Computer Science Conference', pp. 575--586.Google ScholarGoogle Scholar
  6. Hecht, M. S. (1977), Flow Analysis of Computer Programs, The Computer Science Library: Programming Language Series, Elsevier North-Holland. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Howden, W. (1982), 'Comtemporary software development environments', Communications of the ACM25(3), 318--329. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Jarrott, D. & MacDonald, A. (2003), Developing relational navigation to effectively understand software, in 'Proceedings of the Tenth Asia-Pacific Software Engineering Conference (APSEC'03)', IEEE Computer Society, pp. 144--153. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Jones, T. & Welsh, J. (1997), Requirements for a generic, language-based diagram editor, in M. Patel, ed., 'Proceedings of 20th Australian Computer Science Conference', Vol. 19, pp. 316--325.Google ScholarGoogle Scholar
  10. Knuth, D. (1968), 'Semantics of context-free languages', Math. Systems Theory2(2), 127--145.Google ScholarGoogle Scholar
  11. MacDonald, A. & Welsh, J. (1999), Persistence in the UQ* environment, Technical Report 99--43, Software Verification and Research Centre, School of Information Technology and Electrical Engineering, The University of Queensland, Brisbane, Australia.Google ScholarGoogle Scholar
  12. Muchnick, S. (1997), Advanced compiler design and implementation, Morgan Kaufmann Publishers. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Object Managment Group ADM Taskforce (2003), Request for Proposal - Architecure-Driven Modernization (ADM): Knowledge Discovery Meta-Model (KDM), OMG RFP lt/03-11-04, Object Management Group.Google ScholarGoogle Scholar
  14. Reiss, S. (1990), 'Connecting tools using message passing in the Field environment', IEEE Software7(4), 57--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Rugaber, S. (1995), 'Program comprehension', Encyclopedia of Computer Science and Technology35(20), 341--368.Google ScholarGoogle Scholar
  16. Tip, F. (1995), 'A survey of program slicing techniques', Journal of Programming Languages3, 121--189.Google ScholarGoogle Scholar
  17. Toleman, M., Carrington, D., Cook, P., Coyle, A., Jones, T., MacDonald, A. & Welsh, J. (2001), Generic description of a software document environment, in R. H. Sprague, ed., 'Proceedings of the 34th Annual Hawaii International Conference on System Sciences', IEEE Computer Society. Also found in SVRC Technical Report 00-22. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Welsh, J. (1994), Software is history!, in A. W. Roscoe, ed., 'A Classical Mind: Essays in honour of C. A. R. Hoare', Prentice Hall, chapter 24, pp. 419--430. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Welsh, J., Broom, B. & Kiong, D. (1991), 'A design rationale for a language-based editor', Software - Practice and Experience21(9), 923--948. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Welsh, J. & Yang, Y. (1994), 'Integration of semantic tools into document editors', Software - Concepts and Tools15, 68--81.Google ScholarGoogle Scholar
  21. Wirth, N. (1976), Algorithms + Data Structures = Programs, Prentice-Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Integration of generic program analysis tools into a software development environment

        Comments

        Login options

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

        Sign in

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!