
Logics and analyses for concurrent heap-manipulating programs
Alexey Gotsman(Author)
BCS, The Chartered Institute for IT (Publisher)
Published on 14. March 2011
Book
Paperback/Softback
162 pages
978-1-906124-83-0 (ISBN)
Description
Reasoning about concurrent programs is difficult because of the need to consider all possible interactions between concurrently executing threads. The problem is especially acute for programs that manipulate shared heap-allocated data structures, since heap-manipulation provides more ways for threads to interact. Modular reasoning techniques sidestep this difficulty by considering every thread in isolation under some assumptions on its environment. In this dissertation the author develops modular program logics and program analyses for the verification of concurrent heap-manipulating programs. The approach is to exploit reasoning principles provided by program logics to construct modular program analyses and to use this process to obtain further insights into the logics. In particular, the author builds on concurrent separation logic-a Hoare-style logic that allows modular manual reasoning about concurrent programs written in a simple heap-manipulating programming language.
The contributions are twofold. First, it shows the soundness of concurrent separation logic without the conjunction rule and the restriction that resource invariants be precise, and to construct an analysis for concurrent heap-manipulating programs that exploit this modified reasoning principle to achieve modularity. Secondly, it develop logics and analyses for modular reasoning about features present in modern languages and libraries for concurrent programming: storable locks, first-order procedures and dynamically-created threads.
Reasoning about concurrent programs is difficult because of the need to consider all possible interactions between concurrently executing threads. The problem is especially acute for programs that manipulate shared heap-allocated data structures, since heap-manipulation provides more ways for threads to interact. Modular reasoning techniques sidestep this difficulty by considering every thread in isolation under some assumptions on its environment. In this dissertation the author develops modular program logics and program analyses for the verification of concurrent heap-manipulating programs. The approach is to exploit reasoning principles provided by program logics to construct modular program analyses and to use this process to obtain further insights into the logics. In particular, the author builds on concurrent separation logic-a Hoare-style logic that allows modular manual reasoning about concurrent programs written in a simple heap-manipulating programming language.
The contributions are twofold. First, it shows the soundness of concurrent separation logic without the conjunction rule and the restriction that resource invariants be precise, and to construct an analysis for concurrent heap-manipulating programs that exploit this modified reasoning principle to achieve modularity. Secondly, it develop logics and analyses for modular reasoning about features present in modern languages and libraries for concurrent programming: storable locks, first-order procedures and dynamically-created threads.
The contributions are twofold. First, it shows the soundness of concurrent separation logic without the conjunction rule and the restriction that resource invariants be precise, and to construct an analysis for concurrent heap-manipulating programs that exploit this modified reasoning principle to achieve modularity. Secondly, it develop logics and analyses for modular reasoning about features present in modern languages and libraries for concurrent programming: storable locks, first-order procedures and dynamically-created threads.
Reasoning about concurrent programs is difficult because of the need to consider all possible interactions between concurrently executing threads. The problem is especially acute for programs that manipulate shared heap-allocated data structures, since heap-manipulation provides more ways for threads to interact. Modular reasoning techniques sidestep this difficulty by considering every thread in isolation under some assumptions on its environment. In this dissertation the author develops modular program logics and program analyses for the verification of concurrent heap-manipulating programs. The approach is to exploit reasoning principles provided by program logics to construct modular program analyses and to use this process to obtain further insights into the logics. In particular, the author builds on concurrent separation logic-a Hoare-style logic that allows modular manual reasoning about concurrent programs written in a simple heap-manipulating programming language.
The contributions are twofold. First, it shows the soundness of concurrent separation logic without the conjunction rule and the restriction that resource invariants be precise, and to construct an analysis for concurrent heap-manipulating programs that exploit this modified reasoning principle to achieve modularity. Secondly, it develop logics and analyses for modular reasoning about features present in modern languages and libraries for concurrent programming: storable locks, first-order procedures and dynamically-created threads.
More details
Series
Language
English
Place of publication
Swindon
United Kingdom
Publishing group
BCS Learning & Development Limited
Target group
Professional and scholarly
Dimensions
Height: 297 mm
Width: 210 mm
Thickness: 9 mm
ISBN-13
978-1-906124-83-0 (9781906124830)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Person
Alexey Gotsman is an assistant research professor at the IMDEA Software Institute in Madrid. He held a Postdoctoral Fellowship in Theoretical Computer Science at the University of Cambridge. His research interests are software verfication, developing reasoning techniques and automated verification tools for real-world concurrent systems software.
Alexey Gotsman is an assistant research professor at the IMDEA Software Institute in Madrid. He held a Postdoctoral Fellowship in Theoretical Computer Science at the University of Cambridge. His research interests are software verfication, developing reasoning techniques and automated verification tools for real-world concurrent systems software.
Alexey Gotsman is an assistant research professor at the IMDEA Software Institute in Madrid. He held a Postdoctoral Fellowship in Theoretical Computer Science at the University of Cambridge. His research interests are software verfication, developing reasoning techniques and automated verification tools for real-world concurrent systems software.
Content
1 Introduction
2 Technical background
3 Static locks
4 Storable locks
5 Procedures
6 Threads
7 Conclusion
Bibliography
2 Technical background
3 Static locks
4 Storable locks
5 Procedures
6 Threads
7 Conclusion
Bibliography