• DocumentCode
    12431
  • Title

    Program analysis too loopy? Set the loops aside

  • Author

    Larson, E.

  • Author_Institution
    Computer Science and Software Engineering, Seattle University
  • Volume
    7
  • Issue
    3
  • fYear
    2013
  • fDate
    Jun-13
  • Firstpage
    131
  • Lastpage
    149
  • Abstract
    Among the many obstacles to efficient and sound program analysis, loops may be the most prevalent. In program analyses that traverse paths, loops introduce a variable, possibly infinite and number of paths. This study assesses the potential of a program analysis technique that analyses loops separately and replaces the loop with a summary, similar to how many analyses use summaries for interprocedural analysis. This study is conducted by comparing the path counts when loops are analysed separately to a baseline path count where loops are traversed at most once. Although the number of paths is decreased in many cases, the magnitude of the decrease is typically not sufficient for long, complex functions. In addition, loops are classified by the task they perform, analysed using the number of paths as an estimate of their complexity and further inspected for programming elements that may make loop analysis more difficult. Of the 2869 loops used in this study, 84% of the loops have fewer than ten paths and only 1.3% have more than 10 000 paths. Nearly 60% of the loops traverse arrays or strings and roughly half of the loops contain a function call.
  • fLanguage
    English
  • Journal_Title
    Software, IET
  • Publisher
    iet
  • ISSN
    1751-8806
  • Type

    jour

  • DOI
    10.1049/iet-sen.2012.0048
  • Filename
    6547866