论文标题
低水平的双重射击
Low-Level Bi-Abduction
论文作者
论文摘要
本文提出了一项新的静态分析,旨在处理开放程序,即程序的片段,并具有动态指针链接的数据结构,尤其是各种列表,这些列表采用了高级的低级指针操作。目的是允许对此类程序进行分析,而无需首次初始化所处理结构的写作分析线索。该方法基于分离逻辑的特殊风味和双重侵蚀方法。从其叶子开始,沿呼叫树对感兴趣守则进行分析,每个功能仅在没有任何呼叫上下文的情况下进行分析,从而导致一组合同总结了分析功能的行为。为了处理考虑的程序,文献中存在的绑架方法在论文中得到了显着修改和扩展。所提出的方法已在工具原型中实现,并在不大但复杂的程序上成功评估。
The paper proposes a new static analysis designed to handle open programs, i.e., fragments of programs, with dynamic pointer-linked data structures - in particular, various kinds of lists - that employ advanced low-level pointer operations. The goal is to allow such programs be analysed without a need of writing analysis harnesses that would first initialise the structures being handled. The approach builds on a special flavour of separation logic and the approach of bi-abduction. The code of interest is analyzed along the call tree, starting from its leaves, with each function analysed just once without any call context, leading to a set of contracts summarizing the behaviour of the analysed functions. In order to handle the considered programs, methods of abduction existing in the literature are significantly modified and extended in the paper. The proposed approach has been implemented in a tool prototype and successfully evaluated on not large but complex programs.