Abstract Semantic Differencing for Numerical Programs

被引:0
作者
Partush, Nimrod [1 ]
Yahav, Eran [1 ]
机构
[1] Technion Israel Inst Technol, IL-32000 Haifa, Israel
来源
STATIC ANALYSIS, SAS 2013 | 2013年 / 7935卷
关键词
EQUIVALENCE CHECKING;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We address the problem of computing semantic differences between a program and a patched version of the program. Our goal is to obtain a precise characterization of the difference between program versions, or establish their equivalence when no difference exists. We focus on computing semantic differences in numerical programs where the values of variables have no a-priori bounds, and use abstract interpretation to compute an over-approximation of program differences. Computing differences and establishing equivalence under abstraction requires abstracting relationships between variables in the two programs. Towards that end, we first construct a correlating program in which these relationships can be tracked, and then use a correlating abstract domain to compute a sound approximation of these relationships. To better establish equivalence between correlated variables and precisely capture differences, our domain has to represent non-convex information using a partially-disjunctive abstract domain. To balance precision and cost of this representation, our domain over-approximates numerical information while preserving equivalence between correlated variables by dynamically partitioning the disjunctive state according to equivalence criteria. We have implemented our approach in a tool called DIZY, and applied it to a number of real-world examples, including programs from the GNU core utilities, Mozilla Firefox and the Linux Kernel. Our evaluation shows that DIZY often manages to establish equivalence, describes precise approximation of semantic differences when difference exists, and reports only a few false differences.
引用
收藏
页码:238 / 258
页数:21
相关论文
共 29 条
[1]  
Amit D, 2007, LECT NOTES COMPUT SC, V4590, P477
[2]  
[Anonymous], 1977, POPL
[3]   Widening operators for powerset domains [J].
Roberto Bagnara ;
Patricia M. Hill ;
Enea Zaffanella .
International Journal on Software Tools for Technology Transfer, 2006, 8 (4-5) :449-466
[4]   Automatic patch-based exploit generation is possible: Techniques and implications [J].
Brumley, David ;
Poosankam, Pongsin ;
Song, Dawn ;
Zheng, Jiang .
PROCEEDINGS OF THE 2008 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, 2008, :143-+
[5]  
Cadar C., 2008, Proceedings of the 8th USENIX conference on Operating systems design and implementation, OSDI'08, (USA), P209
[6]  
Chaki S, 2012, LECT NOTES COMPUT SC, V7148, P119, DOI 10.1007/978-3-642-27940-9_9
[7]  
Clarke E, 2003, ASP-DAC 2003: PROCEEDINGS OF THE ASIA AND SOUTH PACIFIC DESIGN AUTOMATION CONFERENCE, P308, DOI 10.1109/ASPDAC.2003.1195033
[8]  
Cousot P., 1978, 5 ANN ACM S POPL 78, P84, DOI [DOI 10.1145/512760.512770, 10.1145/512760.512770]
[9]  
Godlin B, 2009, DES AUT CON, P466
[10]   AN AXIOMATIC BASIS FOR COMPUTER PROGRAMMING [J].
HOARE, CAR .
COMMUNICATIONS OF THE ACM, 1969, 12 (10) :576-&