Using dynamic analysis to discover polynomial and array invariants

ICSE(2012)

引用 101|浏览393
暂无评分
摘要
Dynamic invariant analysis identifies likely properties over variables from observed program traces. These properties can aid programmers in refactoring, documenting, and debugging tasks by making dynamic patterns visible statically. Two useful forms of invariants involve relations among polynomials over program variables and relations among array variables. Current dynamic analysis methods support such invariants in only very limited forms. We combine mathematical techniques that have not previously been applied to this problem, namely equation solving, polyhedra construction, and SMT solving, to bring new capabilities to dynamic invariant detection. Using these methods, we show how to find equalities and inequalities among nonlinear polynomials over program variables, and linear relations among array variables of multiple dimensions. Preliminary experiments on 24 mathematical algorithms and an implementation of AES encryption provide evidence that the approach is effective at finding these invariants.
更多
查看译文
关键词
observed program trace,array variable,mathematical technique,array invariants,program variable,dynamic invariant detection,mathematical algorithm,dynamic invariant analysis,debugging task,dynamic pattern,current dynamic analysis method,aes encryption,dynamic analysis,program analysis,polynomials,cryptography,equation solving,software maintenance
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要