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
Link To Document