Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Feng Chen 0006

dblp:21/3047-6 · DBLP profile ↗
← Back
18ranked-venue papers
9as first author
0since 2021 · last 2012
—ORCID · conflict

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

Software engineering, systems software and programming languages · 17 · 8 first-authorTheory of computation · 3 · 2 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
8 papers
Program analysis · 40% Program verification · 38% Concurrent programming · 14%
Theoretical computer science
1 paper
Automated reasoning and model checking · 100%

Topics — the 10 heaviest of 12, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program verification › dynamic verification
runtime verification
0.232009
Efficient Formalism-Independent Monitoring of Parametric Properties · ASE 2009
Efficient Monitoring of Parametric Context-Free Patterns · ASE 2008
Mop: an efficient and generic runtime verification framework · OOPSLA 2007
Program verification › dynamic verification › runtime verification
monitor synthesis
0.222008
Efficient Monitoring of Parametric Context-Free Patterns · ASE 2008
Mop: an efficient and generic runtime verification framework · OOPSLA 2007
Program analysis
specification mining
0.112011
Mining parametric specifications · ICSE 2011
Concurrent programming
concurrency bugs
0.112008
jPredictor: a predictive runtime analysis tool for java · ICSE 2008
Concurrent programming › concurrency bug detection
data race detection
0.112008
jPredictor: a predictive runtime analysis tool for java · ICSE 2008
Program analysis
dynamic analysis
0.112008
jPredictor: a predictive runtime analysis tool for java · ICSE 2008
Program analysis › dynamic analysis
runtime monitoring
0.112008
Efficient Monitoring of Parametric Context-Free Patterns · ASE 2008
Empirical software engineering
causal inference
0.112007
Parametric and Sliced Causality · CAV 2007
Automated reasoning and model checking
model checking
0.012004
Formal Analysis of Java Programs in JavaFAN · CAV 2004
Programming languages and type systems
aspect-oriented programming
0.012007
Mop: an efficient and generic runtime verification framework · OOPSLA 2007

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

static analysis · 0.2trace slicing · 0.1property learning · 0.1parametric trace slicing · 0.1stack cloning · 0.1partial order reduction · 0.1lock-atomicity analysis · 0.1LR(1) parsing · 0.1decentralized indexing · 0.1causality analysis · 0.1formal analysis · 0.0
YearPublicationVenuePosition
2012 Maximal Causal Models for Sequentially Consistent Systems
Traian-Florin Serbanuta, Feng Chen 0006, Grigore Rosu
RV2
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.4
2011 Mining parametric specifications
abstract
Specifications carrying formal parameters that are bound to concrete data at runtime can effectively and elegantly capture multi-object behaviors or protocols. Unfortunately, parametric specifications are not easy to formulate by nonexperts and, consequently, are rarely available. This paper presents a general approach for mining parametric specifications from program executions, based on a strict separation of concerns: (1) a trace slicer first extracts sets of independent interactions from parametric execution traces; and (2) the resulting non-parametric trace slices are then passed to any conventional non-parametric property learner. The presented technique has been implemented in jMiner, which has been used to automatically mine many meaningful and non-trivial parametric properties of OpenJDK 6.
Choonghwan Lee, Feng Chen 0006, Grigore Rosu
ICSE2
2010 Efficient monitoring of parametric context-free patterns
Patrick O'Neil Meredith, Dongyun Jin, Feng Chen 0006, Grigore Rosu
Autom. Softw. Eng.3
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
ASE1
2009 Parametric Trace Slicing and Monitoring
Feng Chen 0006, Grigore Rosu
TACAS1
2008 jPredictor: a predictive runtime analysis tool for java
abstract
jPredictor is a tool for detecting concurrency errors in Java programs. The Java program is instrumented to emit property-relevant events at runtime and then executed. The resulting execution trace is collected and analyzed by Predictor, which extracts a causality relation sliced using static analysis and refined with lock-atomicity information. The resulting abstract model, a hybrid of a partial order and atomic blocks, is then exhaustively analyzed against the property and errors with counter-examples are reported to the user. Thus, jPredictor can "predict" errors that did not happen in the observed execution, but which could have happened under a different thread scheduling. The analysis technique employed in jPredictor is fully automatic, generic (works for any trace property), sound (produces no false alarms) but it is incomplete may miss errors). Two common types of errors are investigated in this paper: dataraces and atomicity violations. Experiments show that jPredictor is precise (in its predictions), effective and efficient. After the code producing them was executed only once, jPredictor found all the errors reported by other tools. It also found errors missed by other tools, including static race detectors, as well as unknown errors in popular systems like Tomcat and the Apache FTP server.
Feng Chen 0006, Traian-Florin Serbanuta, Grigore Rosu
ICSE1
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
ASE3
2008 Synthesizing Monitors for Safety Properties: This Time with Calls and Returns
Grigore Rosu, Feng Chen 0006, Thomas Ball 0001
RV2
2007 Parametric and Sliced Causality
Feng Chen 0006, Grigore Rosu
CAV1
2007 Mop: an efficient and generic runtime verification framework
abstract
Monitoring-Oriented Programming (MOP1) [21, 18, 22, 19] is a formal framework for software development and analysis, in which the developer specifies desired properties using definable specification formalisms, along with code to execute when properties are violated or validated. The MOP framework automatically generates monitors from the specified properties and then integrates them together with the user-defined code into the original system. The previous design of MOP only allowed specifications without parameters, so it could not be used to state and monitor safety properties referring to two or more related objects. In this paper we propose a parametric specification formalism-independent extension of MOP, together with an implementation of JavaMOP that supports parameters. In our current implementation, parametric specifications are translated into AspectJ code and then weaved into the application using off-the-shelf AspectJ compilers; hence, MOP specifications can be seen as formal or logical aspects. Our JavaMOP implementation was extensively evaluated on two benchmarks, Dacapo [14] and Tracematches [8], showing that runtime verification in general and MOP in particular are feasible. In some of the examples, millions of monitor instances are generated, each observing a set of related objects. To keep the runtime overhead of monitoring and event observation low, we devised and implemented a decentralized indexing optimization. Less than 8% of the experiments showed more than 10% runtime overhead; in most cases our tool generates monitoring code as efficient as the hand-optimized code. Despite its genericity, JavaMOP is empirically shown to be more efficient than runtime verification systems specialized and optimized for particular specification formalisms. Many property violations were detected during our experiments; some of them are benign, others indicate defects in programs. Many of these are subtle and hard to find by ordinary testing.
Feng Chen 0006, Grigore Rosu
OOPSLA1
2006 Discovering Likely Method Specifications
Nikolai Tillmann, Feng Chen 0006, Wolfram Schulte
ICFEM2
2006 Parametric and Termination-Sensitive Control Dependence
Feng Chen 0006, Grigore Rosu
SAS1
2005 Java-MOP: A Monitoring Oriented Programming Environment for Java
Feng Chen 0006, Grigore Rosu
TACAS1
2004 Formal Analysis of Java Programs in JavaFAN
Azadeh Farzan, Feng Chen 0006, José Meseguer 0001, Grigore Rosu
CAV2
2004 A Formal Monitoring-Based Framework for Software Development and Analysis
Feng Chen 0006, Marcelo d'Amorim, Grigore Rosu
ICFEM1
2003 Certifying Measurement Unit Safety Polic
abstract
Measurement unit safety policy checking is a topic in software analysis concerned with ensuring that programs do not violate basic principles of units of measurement. Such violations can hide significant domain-specific errors which are hard or impossible to find otherwise. Measurement unit analysis by means of automatic deduction is addressed in this paper. We draw general design principles for measurement unit certification tools and discuss our prototype for the C language, which includes both dynamic and static checkers. Our approach is based on assume/assert annotations of code, which are properly interpreted by our deduction-based tools and ignored by standard compilers. We do not modify the language in order to support units. The approach can be extended to incorporate other safety policies without great efforts.
Grigore Rosu, Feng Chen 0006
ASE2
2003 Rule-Based Analysis of Dimensional Safety
Feng Chen 0006, Grigore Rosu, Ram Prasad Venkatesan
RTA1