Compositional Verification of Relaxed-Memory Program Transformations
Compositional Verification of Relaxed-Memory Program Transformations
复制标题
宽松内存程序转换的组合验证
DOI:
--
复制
发表时间:
2017
期刊:
影响因子:
--
通讯作者:
Mark
中科院分区:
文献类型:
--
作者:
Mike Dodds;Mark Batty;Alexey Gotsman;Mark
This paper is about verifying program transformations on an axiomatic relaxed memory model of the kind used in C/C++ and Java. Relaxed models present particular challenges for verifying program transformations, because they generate many additional modes of interaction between code and context. For a block of code being transformed, we define a denotation from its behaviour in a set of representative contexts. Our denotation summarises interactions of the code block with the rest of the program both through local and global variables, and through subtle synchronisation effects due to relaxed memory. We can then prove that a transformation does not introduce new program behaviours by comparing the denotations of the code block before and after. Our approach is compositional: by examining only representative contexts, transformations are verified for any context. It is also fully abstract, meaning any valid transformation can be verified. We cover several tricky aspects of C/C++-style memory models, including release-acquire operations, sequentially consistent fences, and non-atomics. We also define a variant of our denotation that is finite at the cost of losing full abstraction. Based on this variant, we have implemented a prototype verification tool and applied it to automatically prove and disprove a range of compiler optimisations.
DOI:
10.1145/3009837.3009838
发表时间:
2017
期刊:
--
影响因子:
--
作者:
Wickerson J
通讯作者:
Wickerson J
DOI:
10.1145/2429069.2429099
发表时间:
2013
期刊:
--
影响因子:
--
作者:
Batty M
通讯作者:
Batty M