Proteus: Computing disjunctive loop summary via path dependency analysis

Loops are challenging structures for program analysis, especially when loops contain multiple paths with complex interleaving executions among these paths. In this paper, we first propose a classification of multi-path loops to understand the complexity of the loop execution, which is based on the v...

Full description

Saved in:
Bibliographic Details
Main Authors: XIE, Xiaofei, CHEN, Bihuan, LIU, Yang, LE, Wei, LI, Xiaohong
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2016
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/7061
https://ink.library.smu.edu.sg/context/sis_research/article/8064/viewcontent/2950290.2950340.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-8064
record_format dspace
spelling sg-smu-ink.sis_research-80642022-04-07T08:49:48Z Proteus: Computing disjunctive loop summary via path dependency analysis XIE, Xiaofei CHEN, Bihuan LIU, Yang LE, Wei LI, Xiaohong Loops are challenging structures for program analysis, especially when loops contain multiple paths with complex interleaving executions among these paths. In this paper, we first propose a classification of multi-path loops to understand the complexity of the loop execution, which is based on the variable updates on the loop conditions and the execution order of the loop paths. Secondly, 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 on the variables. The key contribution is to use a path dependency automaton (PDA) to capture the execution dependency between the paths. A DFS-based algorithm is proposed to traverse the PDA to summarize the effect for all feasible executions in the loop. The experimental results show that Proteus is effective in three applications: Proteus can 1) compute a more precise bound than the existing loop bound analysis techniques; 2) significantly outperform state-of-the-art tools for loop verification; and 3) generate test cases for deep loops within one second, while KLEE and Pex either need much more time or fail. 2016-11-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/7061 info:doi/10.1145/2950290.2950340 https://ink.library.smu.edu.sg/context/sis_research/article/8064/viewcontent/2950290.2950340.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Loop Summarization Disjunctive Summary OS and Networks Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Loop Summarization
Disjunctive Summary
OS and Networks
Software Engineering
spellingShingle Loop Summarization
Disjunctive Summary
OS and Networks
Software Engineering
XIE, Xiaofei
CHEN, Bihuan
LIU, Yang
LE, Wei
LI, Xiaohong
Proteus: Computing disjunctive loop summary via path dependency analysis
description Loops are challenging structures for program analysis, especially when loops contain multiple paths with complex interleaving executions among these paths. In this paper, we first propose a classification of multi-path loops to understand the complexity of the loop execution, which is based on the variable updates on the loop conditions and the execution order of the loop paths. Secondly, 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 on the variables. The key contribution is to use a path dependency automaton (PDA) to capture the execution dependency between the paths. A DFS-based algorithm is proposed to traverse the PDA to summarize the effect for all feasible executions in the loop. The experimental results show that Proteus is effective in three applications: Proteus can 1) compute a more precise bound than the existing loop bound analysis techniques; 2) significantly outperform state-of-the-art tools for loop verification; and 3) generate test cases for deep loops within one second, while KLEE and Pex either need much more time or fail.
format text
author XIE, Xiaofei
CHEN, Bihuan
LIU, Yang
LE, Wei
LI, Xiaohong
author_facet XIE, Xiaofei
CHEN, Bihuan
LIU, Yang
LE, Wei
LI, Xiaohong
author_sort XIE, Xiaofei
title Proteus: Computing disjunctive loop summary via path dependency analysis
title_short Proteus: Computing disjunctive loop summary via path dependency analysis
title_full Proteus: Computing disjunctive loop summary via path dependency analysis
title_fullStr Proteus: Computing disjunctive loop summary via path dependency analysis
title_full_unstemmed Proteus: Computing disjunctive loop summary via path dependency analysis
title_sort proteus: computing disjunctive loop summary via path dependency analysis
publisher Institutional Knowledge at Singapore Management University
publishDate 2016
url https://ink.library.smu.edu.sg/sis_research/7061
https://ink.library.smu.edu.sg/context/sis_research/article/8064/viewcontent/2950290.2950340.pdf
_version_ 1770576197239963648