JPredictor

From FSL
Jump to: navigation, search

jPredictor is a runtime predictive analysis tool for Java. Based on sliced causality among property-relevant events, it is able to detect potential violations of desired properties by observing exectuions of the program, even when the violations are not encountered in the observed runs.

Causality, i.e. causal partial order on events, has been used in runtime analysis of concurrent programs in several works. Most of them are based on the traditional "happen-before" relationship, which takes all computational dependence on shared variables into account. Therefore, such causality can be too restrictive, allowing too many false postives, when the inter-thread communication involves many independent shared variables. Our approach combines the dynamic dependence with the static structural information of the program in order to achieve more relaxed causal partial order on events that are relevant to the desired property. This way, one can predicet more possible executions of the program, which preserve the same ocurrences of relevant events. In other words, our approach can lead to a better coverage of the prediction, while still keeps the correctness of the results. Essentially, if the tranditional causality is viewed as "complete" in the sense that all inter-thread communications are taken under consideration, then the causality used in our approach slices the complete causality using control-flow/data-flow dependence among events. More specifically, only a part of the causality that may affect relevant events is considered. This is similar, to some extend, to the program slicing, and the reason of its name: sliced causality. More in-depth disucssion can be found in our papers.

Related project: Runtime Predictive Analysis

News and Change Logs

  • 2009-7-28: The implementation of jPredictor is no longer publicly available.
  • 2008-9-16: Experiment results were moved to the experiments page.
  • 2007-10-2: jPredictor version 0.2 was released
  • New features are supported: the pipeline mode of processing, getting all potential errors from the trace, and removing redundant reported errors
  • 2007-9-10: jPredictor version 0.1 was released



Experiments Results

 Note: jPredictor is still under development and more experiments will be done on it. 
  So it would not be surprising to see constant changes of the results.

Related Publications

Maximal Causal Models for Sequentially Consistent Systems 
Traian Florin Serbanuta, Feng Chen and Grigore Rosu
RV'12, LNCS. 7687, pp 136-150. 2013
PDF, Slides(PDF), BIB
Efficient, Expressive, and Effective Runtime Verification 
Patrick Meredith
PhD Thesis, University of Illinois, August 2012
PDF, Slides(KEY), Slides(PDF), JavaMOP Project, BusMOP Project, RV-Predict Project, BIB
A Rewriting Approach to Concurrent Programming Language Design and Semantics 
Traian Florin Serbanuta
PhD Thesis, University of Illinois, December 2010
PDF, Slides (PDF), K-Maude, TR@UIUC, BIB
Runtime Verification with the RV System 
Patrick Meredith and Grigore Rosu
RV'10, LNCS 6418, pp 136-152. 2010
PDF, Slides(PDF), Slides(PPT), Slides(KEY), RV'10, BIB
jPredictor: A Predictive Runtime Analysis Tool for Java 
Feng Chen and Traian Florin Serbanuta and Grigore Rosu
ICSE'08, ACM, pp. 221-230. 2008
PDF, Slides(PDF), DOI, ICSE'08, BIB
Effective Predictive Runtime Analysis Using Sliced Causality and Atomicity 
Feng Chen, Traian Florin Serbanuta and Grigore Rosu
Technical report UIUCDCS-R-2007-2905, October 2007
PDF, TR@UIUC, BIB
Parametric and Sliced Causality 
Feng Chen and Grigore Rosu
CAV'07, LNCS 4590, pp 240 - 253, 2007
PDF, CAV'07 slides, CAV'07, TR@UIUC, BIB
Parametric and Termination-Sensitive Control Dependence - Extended Abstract 
Feng Chen and Grigore Rosu
SAS'06, LNCS 4134, pp 387-404. 2006.
PDF, LNCS, SAS'06, BIB
Parametric and Termination-Sensitive Control Dependence 
Feng Chen and Grigore Rosu
Technical report UIUCDCS-R-2006-2712, April 2006
PDF, TR@UIUC, BIB
Predicting Concurrency Errors at Runtime using Sliced Causality 
Feng Chen and Grigore Rosu
Technical report UIUCDCS-R-2006-2965, 2006.
PDF, TR@UIUC, BIB
Predicting Concurrency Errors at Runtime using Sliced Causality 
Feng Chen and Grigore Rosu
Technical report UIUCDCS-R-2005-2660, 2005.
PDF, TR@UIUC, BIB

Personal tools
Namespaces

Variants
Actions
Navigation