Automatic Approach of Generating Summaries for Common Loops and Its Application

ZHAI Juan,TANG Zhen-Hao,LI Bin,ZHAO Jian-Hua,LI Xuan-Dong
DOI: https://doi.org/10.13328/j.cnki.jos.005211
2017-01-01
Abstract:Formal verification is an effective method to guarantee software reliability by proving the correctness of a program.Analyzing and verifying loops which are important and frequently-used statements is not only vital for formal verification,but also a hottopic in the research area of software development.This paper proposes using memories modified by a loop and new values stored inthese memories after executing the loop to describe the execution effect of the loop.Such execution effect is defined as loop summary.Inaddition,this paper proposes an approach to automatically synthesize loop summaries for loops manipulating commonly-used datastructures,including nested loops.Based on loop summaries,specifications can be generated automatically,including loop invariants,preconditions and post-conditions of loops.The proposed approach is implemented and integrated into the code-verification toolAccumulator.The approach is also evaluated with a variety of programs,and the results show that it is able to generate loop summaries and different kinds of specifications,therefore helping to ease the verification task by reducing the burden for programmers and improving the automatic level and efficiency.
What problem does this paper attempt to address?