Peter W. O'Hearn
Queen Mary University of London
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Peter W. O'Hearn.
international conference on concurrency theory | 2004
Peter W. O'Hearn
In this paper we show how a resource-oriented logic, separation logic, can be used to reason about the usage of resources in concurrent programs.
tools and algorithms for construction and analysis of systems | 2006
Dino Distefano; Peter W. O'Hearn; Hongseok Yang
We describe a program analysis for linked list programs where the abstract domain uses formulae from separation logic.
formal methods | 2005
Josh Berdine; Cristiano Calcagno; Peter W. O'Hearn
Separation logic is a program logic for reasoning about programs that manipulate pointer data structures. We describe Smallfoot, a tool for checking certain lightweight separation logic specifications. The assertions describe the shapes of data structures rather than their detailed contents, and this allows reasoning to be fully automatic. The presentation in the paper is tutorial in style. We illustrate what the tool can do via examples which are oriented toward novel aspects of separation logic, namely: avoidance of frame axioms (which say what a procedure does not change); embracement of “dirty” features such as memory disposal and address arithmetic; information hiding in the presence of pointers; and modular reasoning about concurrent programs.
Theoretical Computer Science | 2007
Peter W. O'Hearn
In this paper we show how a resource-oriented logic, separation logic, can be used to reason about the usage of resources in concurrent programs.
symposium on principles of programming languages | 2004
Peter W. O'Hearn; Hongseok Yang; John C. Reynolds
We investigate proof rules for information hiding, using the recent formalism of separation logic. In essence, we use the separating conjunction to partition the internal resources of a module from those accessed by the modules clients. The use of a logical connective gives rise to a form of dynamic partitioning, where we track the transfer of ownership of portions of heap storage between program components. It also enables us to enforce separation in the presence of mutable data structures with embedded addresses that may be aliased.
symposium on principles of programming languages | 2009
Cristiano Calcagno; Dino Distefano; Peter W. O'Hearn; Hongseok Yang
This paper describes a compositional shape analysis, where each procedure is analyzed independently of its callers. The analysis uses an abstract domain based on a restricted fragment of separation logic, and assigns a collection of Hoare triples to each procedure; the triples provide an over-approximation of data structure usage. Compositionality brings its usual benefits -- increased potential to scale, ability to deal with unknown calling contexts, graceful way to deal with imprecision -- to shape analysis, for the first time. The analysis rests on a generalized form of abduction (inference of explanatory hypotheses) which we call bi-abduction. Bi-abduction displays abduction as a kind of inverse to the frame problem: it jointly infers anti-frames (missing portions of state) and frames (portions of state not touched by an operation), and is the basis of a new interprocedural analysis algorithm. We have implemented our analysis algorithm and we report case studies on smaller programs to evaluate the quality of discovered specifications, and larger programs (e.g., an entire Linux distribution) to test scalability and graceful imprecision.
computer aided verification | 2008
Hongseok Yang; Oukseh Lee; Josh Berdine; Cristiano Calcagno; Byron Cook; Dino Distefano; Peter W. O'Hearn
Pointer safety faults in device drivers are one of the leading causes of crashes in operating systems code. In principle, shape analysis tools can be used to prove the absence of this type of error. In practice, however, shape analysis is not used due to the unacceptable mixture of scalability and precision provided by existing tools. In this paper we report on a new join operation
logic in computer science | 2007
Cristiano Calcagno; Peter W. O'Hearn; Hongseok Yang
{\sqcup\dagger}
Theoretical Computer Science | 2004
David J. Pym; Peter W. O'Hearn; Hongseok Yang
for the separation domain which aggressively abstracts information for scalability yet does not lead to false error reports.
Journal of the ACM | 1995
Peter W. O'Hearn; Robert D. Tennent
{\sqcup\dagger}