TY - GEN
T1 - Refining the control structure of loops using static analysis
AU - Balakrishnan, Gogul
AU - Sankaranarayanan, Sriram
AU - Ivančić, Franjo
AU - Gupta, Aarti
PY - 2009
Y1 - 2009
N2 - We present a simple yet useful technique for refining the control structure of loops that occur in imperative programs. Loops containing complex control flow are common in synchronous embedded controllers derived from modeling languages such as Lustre, Esterel, and Simulink/Stateflow. Our approach uses a set of labels to distinguish different control paths inside a given loop. The iterations of the loop are abstracted as a finite state automaton over these labels. Subsequently, we use static analysis techniques to identify infeasible iteration sequences and subtract such forbidden sequences from the initial language to obtain a refinement. In practice, the refinement of control flow sequences often simplifies the control flow patterns in the loop. We have applied the refinement technique to improve the precision of abstract interpretation in the presence of widening. Our experiments on a set of complex reactive loop benchmarks clearly show the utility of our refinement techniques. Abstraction interpretation with our refinement technique was able to verify all the properties for 10 out of the 13 benchmarks, while abstraction interpretation without refinement was able to verify only four. Other potentially useful applications include termination analysis and reverse engineering models from source code.
AB - We present a simple yet useful technique for refining the control structure of loops that occur in imperative programs. Loops containing complex control flow are common in synchronous embedded controllers derived from modeling languages such as Lustre, Esterel, and Simulink/Stateflow. Our approach uses a set of labels to distinguish different control paths inside a given loop. The iterations of the loop are abstracted as a finite state automaton over these labels. Subsequently, we use static analysis techniques to identify infeasible iteration sequences and subtract such forbidden sequences from the initial language to obtain a refinement. In practice, the refinement of control flow sequences often simplifies the control flow patterns in the loop. We have applied the refinement technique to improve the precision of abstract interpretation in the presence of widening. Our experiments on a set of complex reactive loop benchmarks clearly show the utility of our refinement techniques. Abstraction interpretation with our refinement technique was able to verify all the properties for 10 out of the 13 benchmarks, while abstraction interpretation without refinement was able to verify only four. Other potentially useful applications include termination analysis and reverse engineering models from source code.
KW - Abstract interpretation
KW - Loop refinement
KW - Model checking
KW - Path-sensitive analysis
KW - Program understanding
KW - Program verification
KW - Static analysis
KW - Synchronous sytems
UR - http://www.scopus.com/inward/record.url?scp=72249114222&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=72249114222&partnerID=8YFLogxK
U2 - 10.1145/1629335.1629343
DO - 10.1145/1629335.1629343
M3 - Conference contribution
AN - SCOPUS:72249114222
SN - 9781605586274
T3 - Embedded Systems Week 2009 - Proceedings of the 7th ACM International Conference on Embedded Software, EMSOFT '09
SP - 49
EP - 58
BT - Embedded Systems Week 2009 - Proceedings of the 7th ACM International Conference on Embedded Software, EMSOFT '09
T2 - Embedded Systems Week 2009, ESWEEK 2009 - 7th ACM International Conference on Embedded Software, EMSOFT '09
Y2 - 11 October 2009 through 16 October 2009
ER -