Josh Berdine

dblp:61/1623 · DBLP profile ↗
← Back
27ranked-venue papers
11as first author
3since 2021 · last 2023
0000-0002-9691-1348ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 22 · 8 first-author · 2 since 2021Theory of computation · 11 · 8 first-author · 1 since 2021Artificial intelligence and machine learning · 2 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 first-author
YearPublicationVenuePosition
2023 A General Approach to Under-Approximate Reasoning About Concurrent Programs
Azalea Raad, Julien Vanegue, Josh Berdine, Peter W. O'Hearn
CONCUR3
2022 Finding real bugs in big programs with incorrectness logic
abstract
Incorrectness Logic (IL) has recently been advanced as a logical theory for compositionally proving the presence of bugs—dual to Hoare Logic, which is used to compositionally prove their absence. Though IL was motivated in large part by the aim of providing a logical foundation for bug-catching program analyses, it has remained an open question: is IL useful only retrospectively (to explain existing analyses), or can it actually be useful in developing new analyses which can catch real bugs in big programs? In this work, we develop Pulse-X, a new, automatic program analysis for catching memory errors, based on ISL, a recent synthesis of IL and separation logic. Using Pulse-X, we have found 15 new real bugs in OpenSSL, which we have reported to OpenSSL maintainers and have since been fixed. In order not to be overwhelmed with potential but false error reports, we develop a compositional bug-reporting criterion based on a distinction between latent and manifest errors, which references the under-approximate ISL abstractions computed by Pulse-X, and we investigate the fix rate resulting from application of this criterion. Finally, to probe the potential practicality of our bug-finding method, we conduct a comparison to Infer, a widely used analyzer which has proven useful in industrial engineering practice.
Quang Loc Le, Azalea Raad, Jules Villard, Josh Berdine, Derek Dreyer, Peter W. O'Hearn
Proc. ACM Program. Lang.4
2022 Concurrent incorrectness separation logic
abstract
Incorrectness separation logic (ISL) was recently introduced as a theory of under-approximate reasoning, with the goal of proving that compositional bug catchers find actual bugs. However, ISL only considers sequential programs. Here, we develop concurrent incorrectness separation logic (CISL), which extends ISL to account for bug catching in concurrent programs. Inspired by the work on Views, we design CISL as a parametric framework, which can be instantiated for a number of bug catching scenarios, including race detection, deadlock detection, and memory safety error detection. For each instance, the CISL meta-theory ensures the soundness of incorrectness reasoning for free, thereby guaranteeing that the bugs detected are true positives.
Azalea Raad, Josh Berdine, Derek Dreyer, Peter W. O'Hearn
Proc. ACM Program. Lang.2
2020 Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic
abstract
There has been a large body of work on local reasoning for proving the absence of bugs, but none for proving their presence . We present a new formal framework for local reasoning about the presence of bugs, building on two complementary foundations: 1) separation logic and 2) incorrectness logic. We explore the theory of this new incorrectness separation logic (ISL), and use it to derive a begin-anywhere, intra-procedural symbolic execution analysis that has no false positives by construction . In so doing, we take a step towards transferring modular, scalable techniques from the world of program verification to bug catching.
Azalea Raad, Josh Berdine, Hoang-Hai Dang, Derek Dreyer, Peter W. O'Hearn, Jules Villard
CAV (2)2
2015 Spatial Interpolants
Aws Albarghouthi, Josh Berdine, Byron Cook, Zachary Kincaid
ESOP2
2015 A Forward Analysis for Recurrent Sets
Alexey Bakhirkin, Josh Berdine, Nir Piterman
SAS2
2014 Backward Analysis via over-Approximate Abstraction and under-Approximate Subtraction
Alexey Bakhirkin, Josh Berdine, Nir Piterman
SAS2
2013 Resourceful Reachability as HORN-LA
Josh Berdine, Nikolaj S. Bjørner, Samin Ishtiaq, Jael E. Kriener, Christoph M. Wintersteiger
LPAR1
2012 Diagnosing Abstraction Failure for Separation Logic-Based Analyses
Josh Berdine, Arlen Cox, Samin Ishtiaq, Christoph M. Wintersteiger
CAV1
2011 SLAyer: Memory Safety for Systems-Level Code
Josh Berdine, Byron Cook, Samin Ishtiaq
CAV1
2010 Structuring the verification of heap-manipulating programs
abstract
Most systems based on separation logic consider only restricted forms of implication or non-separating conjunction, as full support for these connectives requires a non-trivial notion of variable context, inherited from the logic of bunched implications (BI). We show that in an expressive type theory such as Coq, one can avoid the intricacies of BI, and support full separation logic very efficiently, using the native structuring primitives of the type theory.
Aleksandar Nanevski, Viktor Vafeiadis, Josh Berdine
POPL3
2009 Automatic Verification of Heap Manipulation Using Separation Logic
Josh Berdine
SOFSEM1
2008 Thread Quantification for Concurrent Shape Analysis
Josh Berdine, Tal Lev-Ami, Roman Manevich, G. Ramalingam, Shmuel Sagiv
CAV1
2008 Scalable Shape Analysis for Systems Code
Hongseok Yang, Oukseh Lee, Josh Berdine, Cristiano Calcagno, Byron Cook, Dino Distefano, Peter W. O'Hearn
CAV3
2008 Diagrammatic Reasoning in Separation Logic
M. Ridsdale, Mateja Jamnik, Nick Benton, Josh Berdine
Diagrams4
2008 Heap Decomposition for Concurrent Shape Analysis
Roman Manevich, Tal Lev-Ami, Shmuel Sagiv, G. Ramalingam, Josh Berdine
SAS5
2007 Local Reasoning for Storable Locks and Threads
Alexey Gotsman, Josh Berdine, Byron Cook, Noam Rinetzky, Shmuel Sagiv
APLAS2
2007 Shape Analysis for Composite Data Structures
Josh Berdine, Cristiano Calcagno, Byron Cook, Dino Distefano, Peter W. O'Hearn, Thomas Wies, Hongseok Yang
CAV1
2007 Thread-modular shape analysis
abstract
We present the first shape analysis for multithreaded programs that avoids the explicit enumeration of execution-interleavings. Our approach is to automatically infer a resource invariant associated with each lock that describes the part of the heap protected by the lock. This allows us to use a sequential shape analysis on each thread. We show that resource invariants of a certain class can be characterized as least fixed points and computed via repeated applications of shape analysis only on each individual thread. Based on this approach, we have implemented a thread-modular shape analysis tool and applied it to concurrent heap-manipulating code from Windows device drivers.
Alexey Gotsman, Josh Berdine, Byron Cook, Shmuel Sagiv
PLDI2
2007 Variance analyses from invariance analyses
Josh Berdine, Aziem Chawdhary, Byron Cook, Dino Distefano, Peter W. O'Hearn
POPL1
2007 Local reasoning about storable locks
abstract
This talk will present a resource-oriented program logic that is able to reason about concurrent heap-manipulating programs with unbounded numbers of dynamically-allocated locks, and note an extension to storable threads. The logic is inspired by concurrent separation logic, but handles these more realistic concurrency primitives. We demonstrate that the proposed logic allows for local reasoning about programs that exhibit a high degree of information hiding in their locking mechanisms. Soundness is proved using a novel thread-local fixed-point semantics.
Josh Berdine
PPDP1
2007 Arithmetic Strengthening for Shape Analysis
Stephen Magill, Josh Berdine, Edmund M. Clarke, Byron Cook
SAS2
2007 Shape Analysis by Graph Decomposition
Roman Manevich, Josh Berdine, Byron Cook, G. Ramalingam, Shmuel Sagiv
TACAS2
2006 Automatic Termination Proofs for Programs with Shape-Shifting Heaps
Josh Berdine, Byron Cook, Dino Distefano, Peter W. O'Hearn
CAV1
2006 Interprocedural Shape Analysis with Separated Heap Abstractions
Alexey Gotsman, Josh Berdine, Byron Cook
SAS2
2005 Symbolic Execution with Separation Logic
Josh Berdine, Cristiano Calcagno, Peter W. O'Hearn
APLAS1
2004 A Decidable Fragment of Separation Logic
Josh Berdine, Cristiano Calcagno, Peter W. O'Hearn
FSTTCS1