arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 0910.5833cs.PL
收藏

从单线程到多线程:一种高效的静态分析算法

From Single-thread to Multithreaded: An Efficient Static Analysis Algorithm

Jean-Loup Carre, Charles Hymans

摘要:

现在已经开发了各种各样的计算单线程程序安全性的静态分析。本文提出了一个系统的方法来扩展一类这样的静态分析,使他们处理程序与多个POSIX风格的线程。从语用操作语义学出发,我们建立了一个指称语义,表示推理的一个假设保证。最后的算法,然后通过抽象的解释。它依次分析每个线程,传播线程之间的干扰以及其他语义信息。组合爆炸,随之而来的明确考虑的所有交织,从而避免。与单线程情况相比,最坏情况的复杂度仅增加了n倍,其中n是程序中的指令数。我们已经实现了原型工具,证明了该方法的实用性。

英文摘要:

A great variety of static analyses that compute safety properties of single-thread programs have now been developed. This paper presents a systematic method to extend a class of such static analyses, so that they handle programs with multiple POSIX-style threads. Starting from a pragmatic operational semantics, we build a denotational semantics that expresses reasoning a la assume-guarantee. The final algorithm is then derived by abstract interpretation. It analyses each thread in turn, propagating interferences between threads, in addition to other semantic information. The combinatorial explosion, ensued from the explicit consideration of all interleavings, is thus avoided. The worst case complexity is only increased by a factor n compared to the single-thread case, where n is the number of instructions in the program. We have implemented prototype tools, demonstrating the practicality of the approach.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑