Issue No.03 - May-June (2012 vol.38)
A. Lienhard , Software Composition Group, Univ. Bern, Bern, Switzerland
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TSE.2011.38
Dynamic analysis is increasingly attracting attention for debugging, profiling, and program comprehension. Ten to twenty years ago, many dynamic analyses investigated only simple method execution traces. Today, in contrast, many sophisticated dynamic analyses exist, for instance, for detecting memory leaks, analyzing ownership properties, measuring garbage collector performance, or supporting debugging tasks. These analyses depend on complex program instrumentations and analysis models, making it challenging to understand, compare, and reproduce the proposed approaches. While formal specifications and proofs are common in the field of static analysis, most dynamic analyses are specified using informal, textual descriptions. In this paper, we propose a formal framework using operational semantics that allows researchers to precisely specify their dynamic analysis. Our goal is to provide an accessible and reusable basis on which researchers who may not be familiar with rigorous specifications of dynamic analyses can build. By extending the provided semantics, one can concisely specify how runtime events are captured and how this data is transformed to populate the analysis model. Furthermore, our approach provides the foundations to reason about properties of a dynamic analysis.
programming language semantics, formal specification, program debugging, program profiling, dynamic analysis specification, program debugging, memory leaks detection, ownership properties, garbage collector performance, complex program instrumentations, formal specifications, textual descriptions, informal descriptions, language semantics extending, program comprehension, Semantics, Runtime, Arrays, Context, Analytical models, Performance analysis, Syntactics, debugging., Dynamic analysis, formal definitions and theory, tracing
A. Lienhard, "Specifying Dynamic Analyses by Extending Language Semantics", IEEE Transactions on Software Engineering, vol.38, no. 3, pp. 694-706, May-June 2012, doi:10.1109/TSE.2011.38