Automatic loop summarization via path dependency analysis
Analyzing loops is very important for various software engineering tasks such as bug detection, test case generation and program optimization. However, loops are very challenging structures for program analysis, especially when (nested) loops contain multiple paths that have complex interleaving rel...
Saved in:
Main Authors: | , , , , , |
---|---|
Other Authors: | |
Format: | Article |
Language: | English |
Published: |
2020
|
Subjects: | |
Online Access: | https://hdl.handle.net/10356/141429 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Nanyang Technological University |
Language: | English |
id |
sg-ntu-dr.10356-141429 |
---|---|
record_format |
dspace |
spelling |
sg-ntu-dr.10356-1414292020-06-08T07:03:50Z Automatic loop summarization via path dependency analysis Xie, Xiaofei Chen, Bihuan Zou, Liang Liu, Yang Le, Wei Li, Xiaohong School of Computer Science and Engineering Engineering::Computer science and engineering Disjunctive Loop Summary Path Dependency Automaton Analyzing loops is very important for various software engineering tasks such as bug detection, test case generation and program optimization. However, loops are very challenging structures for program analysis, especially when (nested) loops contain multiple paths that have complex interleaving relationships. In this paper, we propose the path dependency automaton (PDA) to capture the dependencies among the multiple paths in a loop. Based on the PDA, we first propose a loop classification to understand the complexity of loop summarization. Then, we propose a loop analysis framework, named Proteus, which takes a loop program and a set of variables of interest as inputs and summarizes path-sensitive loop effects (i.e., disjunctive loop summary) on the variables of interest. An algorithm is proposed to traverse the PDA to summarize the effect for all possible executions in the loop. We have evaluated Proteus using loops from five open-source projects and two well-known benchmarks and applying the disjunctive loop summary to three applications: loop bound analysis, program verification and test case generation. The evaluation results have demonstrated that Proteus can compute a more precise bound than the existing loop bound analysis techniques; Proteus can significantly outperform the state-of-the-art tools for loop program verification; and Proteus can help generate test cases for deep loops within one second, while symbolic execution tools KLEE and Pex either need much more time or fail. NRF (Natl Research Foundation, S’pore) 2020-06-08T07:03:50Z 2020-06-08T07:03:50Z 2019 Journal Article Xie, X., Chen, B., Zou, L., Liu, Y., Le, W., & Li, X. (2019). Automatic loop summarization via path dependency analysis. IEEE Transactions on Software Engineering, 45(6), 537 - 557. doi:10.1109/TSE.2017.2788018 0098-5589 https://hdl.handle.net/10356/141429 10.1109/TSE.2017.2788018 2-s2.0-85040092215 6 45 537 557 en IEEE Transactions on Software Engineering © 2018 IEEE. All rights reserved. |
institution |
Nanyang Technological University |
building |
NTU Library |
country |
Singapore |
collection |
DR-NTU |
language |
English |
topic |
Engineering::Computer science and engineering Disjunctive Loop Summary Path Dependency Automaton |
spellingShingle |
Engineering::Computer science and engineering Disjunctive Loop Summary Path Dependency Automaton Xie, Xiaofei Chen, Bihuan Zou, Liang Liu, Yang Le, Wei Li, Xiaohong Automatic loop summarization via path dependency analysis |
description |
Analyzing loops is very important for various software engineering tasks such as bug detection, test case generation and program optimization. However, loops are very challenging structures for program analysis, especially when (nested) loops contain multiple paths that have complex interleaving relationships. In this paper, we propose the path dependency automaton (PDA) to capture the dependencies among the multiple paths in a loop. Based on the PDA, we first propose a loop classification to understand the complexity of loop summarization. Then, we propose a loop analysis framework, named Proteus, which takes a loop program and a set of variables of interest as inputs and summarizes path-sensitive loop effects (i.e., disjunctive loop summary) on the variables of interest. An algorithm is proposed to traverse the PDA to summarize the effect for all possible executions in the loop. We have evaluated Proteus using loops from five open-source projects and two well-known benchmarks and applying the disjunctive loop summary to three applications: loop bound analysis, program verification and test case generation. The evaluation results have demonstrated that Proteus can compute a more precise bound than the existing loop bound analysis techniques; Proteus can significantly outperform the state-of-the-art tools for loop program verification; and Proteus can help generate test cases for deep loops within one second, while symbolic execution tools KLEE and Pex either need much more time or fail. |
author2 |
School of Computer Science and Engineering |
author_facet |
School of Computer Science and Engineering Xie, Xiaofei Chen, Bihuan Zou, Liang Liu, Yang Le, Wei Li, Xiaohong |
format |
Article |
author |
Xie, Xiaofei Chen, Bihuan Zou, Liang Liu, Yang Le, Wei Li, Xiaohong |
author_sort |
Xie, Xiaofei |
title |
Automatic loop summarization via path dependency analysis |
title_short |
Automatic loop summarization via path dependency analysis |
title_full |
Automatic loop summarization via path dependency analysis |
title_fullStr |
Automatic loop summarization via path dependency analysis |
title_full_unstemmed |
Automatic loop summarization via path dependency analysis |
title_sort |
automatic loop summarization via path dependency analysis |
publishDate |
2020 |
url |
https://hdl.handle.net/10356/141429 |
_version_ |
1681059048024178688 |