Patrick O'Neil Meredith

dblp:29/1064 · DBLP profile ↗
← Back
14ranked-venue papers
6as first author
0since 2021 · last 2015
—ORCID · none

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

Software engineering, systems software and programming languages · 12 · 6 first-authorApplied, interdisciplinary, general and emerging computing · 2Theory of computation · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
6 papers
Program verification · 38% Program analysis · 32% Concurrent programming · 25%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Embedded and real-time systems · 70% Performance modeling and evaluation · 23% Reconfigurable computing and FPGAs · 7%

Topics — the 14 heaviest of 15, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program verification › dynamic verification
runtime verification
0.652013
Efficient parametric runtime verification with deterministic string rewriting · ASE 2013
JavaMOP: Efficient parametric runtime monitoring framework · ICSE 2012
Garbage collection for monitoring parametric properties · PLDI 2011
Program analysis › dynamic analysis
runtime monitoring
0.432013
Efficient parametric runtime verification with deterministic string rewriting · ASE 2013
JavaMOP: Efficient parametric runtime monitoring framework · ICSE 2012
Efficient Monitoring of Parametric Context-Free Patterns · ASE 2008
Program verification › dynamic verification › runtime verification
monitor synthesis
0.222013
Efficient parametric runtime verification with deterministic string rewriting · ASE 2013
Efficient Monitoring of Parametric Context-Free Patterns · ASE 2008
Concurrent programming
concurrency bugs
0.212014
Maximal sound predictive race detection with control flow abstraction · PLDI 2014
Concurrent programming › concurrency bugs
data races
0.212014
Maximal sound predictive race detection with control flow abstraction · PLDI 2014
Concurrent programming › concurrency bug detection
data race detection
0.212014
Maximal sound predictive race detection with control flow abstraction · PLDI 2014
Program analysis
dynamic analysis
0.212014
Maximal sound predictive race detection with control flow abstraction · PLDI 2014
Runtime systems and virtual machines
garbage collection
0.112011
Garbage collection for monitoring parametric properties · PLDI 2011
Embedded and real-time systems
cyber-physical system platforms
0.112008
Hardware Runtime Monitoring for Dependable COTS-Based Real-Time Embedded Systems · RTSS 2008
Performance modeling and evaluation › performance monitoring
hardware monitoring
0.112008
Hardware Runtime Monitoring for Dependable COTS-Based Real-Time Embedded Systems · RTSS 2008
Embedded and real-time systems
runtime monitoring
0.112008
Hardware Runtime Monitoring for Dependable COTS-Based Real-Time Embedded Systems · RTSS 2008
Embedded and real-time systems › runtime monitoring
runtime verification
0.112008
Hardware Runtime Monitoring for Dependable COTS-Based Real-Time Embedded Systems · RTSS 2008
Program analysis
constraint solving
0.112014
Maximal sound predictive race detection with control flow abstraction · PLDI 2014
Reconfigurable computing and FPGAs
FPGA-based monitoring
0.012008
Hardware Runtime Monitoring for Dependable COTS-Based Real-Time Embedded Systems · RTSS 2008

Methods — techniques the papers use, named apart from their topics

first-order logic encoding · 0.2control flow abstraction · 0.2constraint solving · 0.2incremental rewriting · 0.2aho-corasick string searching · 0.2runtime monitoring · 0.1garbage collection · 0.1static analysis · 0.1parametric trace slicing · 0.1runtime verification · 0.1LR(1) parsing · 0.1FPGA synthesis · 0.1
YearPublicationVenuePosition
2015 RV-Android: Efficient Parametric Android Runtime Verification, a Brief Tutorial
Philip Daian, Yliès Falcone, Patrick O'Neil Meredith, Traian-Florin Serbanuta, Shinichi Shiraishi, Akihito Iwai, Grigore Rosu
RV3
2014 Maximal sound predictive race detection with control flow abstraction
abstract
Despite the numerous static and dynamic program analysis techniques in the literature, data races remain one of the most common bugs in modern concurrent software. Further, the techniques that do exist either have limited detection capability or are unsound, meaning that they report false positives. We present a sound race detection technique that achieves a provably higher detection capability than existing sound techniques. A key insight of our technique is the inclusion of abstracted control flow information into the execution model, which increases the space of the causal model permitted by classical happens-before or causally-precedes based detectors. By encoding the control flow and a minimal set of feasibility constraints as a group of first-order logic formulae, we formulate race detection as a constraint solving problem. Moreover, we formally prove that our formulation achieves the maximal possible detection capability for any sound dynamic race detector with respect to the same input trace under the sequential consistency memory model. We demonstrate via extensive experimentation that our technique detects more races than the other state-of-the-art sound race detection techniques, and that it is scalable to executions of real world concurrent applications with tens of millions of critical events. These experiments also revealed several previously unknown races in real systems (e.g., Eclipse) that have been confirmed or fixed by the developers. Our tool is also adopted by Eclipse developers.
Jeff Huang 0001, Patrick O'Neil Meredith, Grigore Rosu
PLDI2
2014 RV-Monitor: Efficient Parametric Runtime Verification with Simultaneous Properties
Qingzhou Luo, Choonghwan Lee, Dongyun Jin, Patrick O'Neil Meredith, Traian-Florin Serbanuta, Grigore Rosu
RV5
2013 Efficient parametric runtime verification with deterministic string rewriting
abstract
Early efforts in runtime verification show that parametric regular and temporal logic specifications can be monitored efficiently. These approaches, however, have limited expressiveness: their specifications always reduce to monitors with finite state. More recent developments showed that parametric context-free properties can be efficiently monitored with overheads generally lower than 12-15%. While context-free grammars are more expressive than finite-state languages, they still do not allow every computable safety property. This paper presents a monitor synthesis algorithm for string rewriting systems (SRS). SRSs are well known to be Turing complete, allowing for the formal specification of any computable safety property. Earlier attempts at Turing complete monitoring have been relatively inefficient. This paper demonstrates that monitoring parametric SRSs is practical. The presented algorithm uses a modified version of Aho-Corasick string searching for quick pattern matching with an incremental rewriting approach that avoids reexamining parts of the string known to contain no redexes.
Patrick O'Neil Meredith, Grigore Rosu
ASE1
2012 JavaMOP: Efficient parametric runtime monitoring framework
abstract
Runtime monitoring is a technique usable in all phases of the software development cycle, from initial testing, to debugging, to actually maintaining proper function in production code. Of particular importance are parametric monitoring systems, which allow the specification of properties that relate objects in a program, rather than only global properties. In the past decade, a number of parametric runtime monitoring systems have been developed. Here we give a demonstration of our system, JavaMOP. It is the only parametric monitoring system that allows multiple differing logical formalisms. It is also the most efficient in terms of runtime overhead, and very competitive with respect to memory usage.
Dongyun Jin, Patrick O'Neil Meredith, Choonghwan Lee, Grigore Rosu
ICSE2
2012 An overview of the MOP runtime verification framework
Patrick O'Neil Meredith, Dongyun Jin, Dennis Griffith, Feng Chen 0006, Grigore Rosu
Int. J. Softw. Tools Technol. Transf.1
2011 Garbage collection for monitoring parametric properties
Dongyun Jin, Patrick O'Neil Meredith, Dennis Griffith, Grigore Rosu
PLDI2
2010 A formal executable semantics of Verilog
abstract
This paper describes a formal executable semantics for the Verilog hardware description language. The goal of our formalization is to provide a concise and mathematically rigorous reference augmenting the prose of the official language standard, and ultimately to aid developers of Verilog-based tools; e.g., simulators, test generators, and verification tools. Our semantics applies equally well to both synthesizeable and behavioral designs and is given in a familiar, operational-style within a logic providing important additional benefits above and beyond static formalization. In particular, it is executable and searchable so that one can ask questions about how a, possibly nondeterministic, Verilog program can legally behave under the formalization. The formalization should not be seen as the final word on Verilog, but rather as a starting point and basis for community discussions on the Verilog semantics.
Patrick O'Neil Meredith, Michael Katelman, José Meseguer 0001, Grigore Rosu
MEMOCODE1
2010 Runtime Verification with the RV System
Patrick O'Neil Meredith, Grigore Rosu
RV1
2010 Efficient monitoring of parametric context-free patterns
Patrick O'Neil Meredith, Dongyun Jin, Feng Chen 0006, Grigore Rosu
Autom. Softw. Eng.1
2009 Handling mixed-criticality in SoC-based real-time embedded systems
abstract
System-on-Chip (SoC) is a promising paradigm to implement safety-critical embedded systems, but it poses significant challenges from a design and verification point of view. In particular, in a mixed-criticality system, low criticality applications must be prevented from interfering with high criticality ones. In this paper, we introduce a new design methodology for SoC that provides strong isolation guarantees to applications with different criticalities. A set of certificates describing the assumed application behavior is extracted from a functional Architectural Analysis and Design Language (AADL) specification. Our tools then automatically generate hardware wrappers that enforce at run-time the behavior described by the certificates. In particular, we employ run-time monitoring to formally check all data communication in the system, and we enforce timing reservations for both computation and communication resources. Verification is greatly simplified because certificates are much simpler than the components used to implement low-criticality applications. The effectiveness of our methodology is proven on a case study consisting of a medical pacemaker.
Rodolfo Pellizzoni, Patrick O'Neil Meredith, Min-Young Nam, Mu Sun, Marco Caccamo, Lui Sha
EMSOFT2
2009 Efficient Formalism-Independent Monitoring of Parametric Properties
abstract
Parametric properties provide an effective and natural means to describe object-oriented system behaviors, where the parameters are typed by classes and bound to object instances at runtime. Efficient monitoring of parametric properties, in spite of increasingly growing interest due to applications such as testing and security, imposes a highly non-trivial challenge on monitoring approaches due to the potentially huge number of parameter instances. Existing solutions usually compromise their expressiveness for performance or vice versa. In this paper, we propose a generic, in terms of specification formalism, yet efficient, solution to monitoring parametric specifications. Our approach is based on a general algorithm for slicing parametric traces and makes use of static knowledge about the desired property to optimize monitoring. The needed knowledge is not specific to the underlying formalism and can be easily computed when generating monitoring code from the property. Our approach works with any specification formalism, providing better and extensible expressiveness. Also, a thorough evaluation shows that our technique outperforms other state-of-art techniques optimized for particular logics or properties.
Feng Chen 0006, Patrick O'Neil Meredith, Dongyun Jin, Grigore Rosu
ASE2
2008 Efficient Monitoring of Parametric Context-Free Patterns
abstract
Recent developments in runtime verification and monitoring show that parametric regular and temporal logic specifications can be efficiently monitored against large programs. However, these logics reduce to ordinary finite automata, limiting their expressivity. For example, neither can specify structured properties that refer to the call stack of the program. While context-free grammars (CFGs) are expressive and well-understood, existing techniques for monitoring CFGs generate large runtime overhead in real-life applications. This paper shows, for the first time, that monitoring parametric CFGs is practical (with overhead on the order of 10% or lower for average cases, several times faster than the state-of-the-art). We present a monitor synthesis algorithm for CFGs based on an LR(1) parsing algorithm, modified with stack cloning to account for good prefix matching. In addition, a logic-independent mechanism is introduced to support matching against the suffixes of execution traces.
Patrick O'Neil Meredith, Dongyun Jin, Feng Chen 0006, Grigore Rosu
ASE1
2008 Hardware Runtime Monitoring for Dependable COTS-Based Real-Time Embedded Systems
abstract
COTS peripherals are heavily used in the embedded market, but their unpredictability is a threat for high-criticality real-time systems: it is hard or impossible to formally verify COTS components. Instead, we propose to monitor the runtime behavior of COTS peripherals against their assumed specifications. If violations are detected, then an appropriate recovery measure can be taken. Our monitoring solution is decentralized: a monitoring device is plugged in on a peripheral bus and monitors the peripheral behavior by examining read and write transactions on the bus. Provably correct (w.r.t. given specifications) hardware monitors are synthesized from high level specifications, and executed on FPGAs, resulting in zero runtime overhead on the system CPU. The proposed technique, called BusMOP, has been implemented as an instance of a generic runtime verification framework, called MOP, which until now has only been used for software monitoring. We experimented with our technique using a COTS data acquisition board.
Rodolfo Pellizzoni, Patrick O'Neil Meredith, Marco Caccamo, Grigore Rosu
RTSS2