• DocumentCode
    973522
  • Title

    A knowledge-based approach to the analysis of loops

  • Author

    Abd-El-Hafiz, Salwa Kamal ; Basili, Victor R.

  • Author_Institution
    Dept. of Eng. Math., Cairo Univ., Giza, Egypt
  • Volume
    22
  • Issue
    5
  • fYear
    1996
  • fDate
    5/1/1996 12:00:00 AM
  • Firstpage
    339
  • Lastpage
    360
  • Abstract
    The paper presents a knowledge-based analysis approach that generates first order predicate logic annotations of loops. A classification of loops according to their complexity levels is presented. Based on this taxonomy, variations on the basic analysis approach that best fit each of the different classes are described. In general, mechanical annotation of loops is performed by first decomposing them using data flow analysis. This decomposition encapsulates closely related statements in events, that can be analyzed individually. Specifications of the resulting loop events are then obtained by utilizing patterns, called plans, stored in a knowledge base. Finally, a consistent and rigorous functional abstraction of the whole loop is synthesized from the specifications of its individual events. To test the analysis techniques and to assess their effectiveness, a case study was performed on an existing program of reasonable size. Results concerning the analyzed loops and the plans designed for them are given
  • Keywords
    computational complexity; data flow analysis; formal logic; formal specification; knowledge based systems; planning (artificial intelligence); program diagnostics; reverse engineering; subroutines; closely related statements; complexity levels; data flow analysis; events; first order predicate logic annotations; functional abstraction; knowledge-based analysis approach; loop analysis; mechanical annotation; patterns; plans; specifications; Algorithm design and analysis; Computer Society; Data analysis; Formal specifications; Logic; Performance analysis; Performance evaluation; Programming profession; Taxonomy; Testing;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.502226
  • Filename
    502226