TY - JOUR
T1 - Semantics and algorithms for parametric monitoring
AU - Rosu, Grigore
AU - Chen, Feng
PY - 2012/4/26
Y1 - 2012/4/26
N2 - Analysis of execution traces plays a fundamental role in many program anal- ysis approaches, such as runtime verification, testing, monitoring, and specification min- ing. Execution traces are frequently parametric, i.e., they contain events with param- eter bindings. Each parametric trace usually consists of many meaningful trace slices merged together, each slice corresponding to one parameter binding. For example, a Java program creating iterator objects i1 and i2 over collection object c1 may yield a trace createIter 〈c1 i1〉 next〈i1〉 createIter〈c1 i2〉 updateColl〈c1〉 next〈i1〉 parametric in collection c and iterator i, whose slices corresponding to instances "c, i → c1, i1" and "c, i → c1, i2" are createIter〈c1 i1〉 next〈i1〉 updateColl〈c1〉 next〈i1〉 and, respectively, createIter〈c1 i2〉 updateColl〈c1〉. Several approaches have been proposed to specify and dynamically analyze parametric properties, but they have limitations: some in the specification formalism, others in the type of trace they support. Not unexpectedly, the existing approaches share common no- tions, intuitions, and even techniques and algorithms, suggesting that a fundamental study and understanding of parametric trace analysis is necessary. This foundational paper aims at giving a semantics-based solution to parametric trace analysis that is unrestricted by the type of parametric property or trace that can be analyzed. Our approach is based on a rigorous understanding of what a parametric trace/property/monitor is and how it relates to its non-parametric counter-part. A general- purpose parametric trace slicing technique is introduced, which takes each event in the parametric trace and dispatches it to its corresponding trace slices. This parametric trace slicing technique can be used in combination with any conventional, non-parametric trace analysis technique, by applying the later on each trace slice. As an instance, a parametric property monitoring technique is then presented, which processes each trace slice online. Thanks to the generality of parametric trace slicing, the parametric property monitoring technique reduces to encapsulating and indexing unrestricted and well-understood non- parametric property monitors (e.g., finite or push-down automata). The presented parametric trace slicing and monitoring techniques have been imple- mented and extensively evaluated. Measurements of runtime overhead confirm that the generality of the discussed techniques does not come at a performance expense when com- pared with existing parametric trace monitoring systems.
AB - Analysis of execution traces plays a fundamental role in many program anal- ysis approaches, such as runtime verification, testing, monitoring, and specification min- ing. Execution traces are frequently parametric, i.e., they contain events with param- eter bindings. Each parametric trace usually consists of many meaningful trace slices merged together, each slice corresponding to one parameter binding. For example, a Java program creating iterator objects i1 and i2 over collection object c1 may yield a trace createIter 〈c1 i1〉 next〈i1〉 createIter〈c1 i2〉 updateColl〈c1〉 next〈i1〉 parametric in collection c and iterator i, whose slices corresponding to instances "c, i → c1, i1" and "c, i → c1, i2" are createIter〈c1 i1〉 next〈i1〉 updateColl〈c1〉 next〈i1〉 and, respectively, createIter〈c1 i2〉 updateColl〈c1〉. Several approaches have been proposed to specify and dynamically analyze parametric properties, but they have limitations: some in the specification formalism, others in the type of trace they support. Not unexpectedly, the existing approaches share common no- tions, intuitions, and even techniques and algorithms, suggesting that a fundamental study and understanding of parametric trace analysis is necessary. This foundational paper aims at giving a semantics-based solution to parametric trace analysis that is unrestricted by the type of parametric property or trace that can be analyzed. Our approach is based on a rigorous understanding of what a parametric trace/property/monitor is and how it relates to its non-parametric counter-part. A general- purpose parametric trace slicing technique is introduced, which takes each event in the parametric trace and dispatches it to its corresponding trace slices. This parametric trace slicing technique can be used in combination with any conventional, non-parametric trace analysis technique, by applying the later on each trace slice. As an instance, a parametric property monitoring technique is then presented, which processes each trace slice online. Thanks to the generality of parametric trace slicing, the parametric property monitoring technique reduces to encapsulating and indexing unrestricted and well-understood non- parametric property monitors (e.g., finite or push-down automata). The presented parametric trace slicing and monitoring techniques have been imple- mented and extensively evaluated. Measurements of runtime overhead confirm that the generality of the discussed techniques does not come at a performance expense when com- pared with existing parametric trace monitoring systems.
KW - Monitoring
KW - Runtime verification
KW - Trace slicing
UR - http://www.scopus.com/inward/record.url?scp=84859963654&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84859963654&partnerID=8YFLogxK
U2 - 10.2168/LMCS-8(1:09)2012
DO - 10.2168/LMCS-8(1:09)2012
M3 - Article
AN - SCOPUS:84859963654
SN - 1860-5974
VL - 8
JO - Logical Methods in Computer Science
JF - Logical Methods in Computer Science
IS - 1
ER -