Title
DiSL: an extensible language for efficient and comprehensive dynamic program analysis
Abstract
Dynamic program analysis tools support numerous software engineering tasks, including profiling, debugging, and reverse engineering. Prevailing techniques for building dynamic analysis tools are based on low-level abstractions that make tool development tedious, error-prone, and expensive. To simplify the development of dynamic analysis tools, some researchers promoted the use of aspect-oriented programming (AOP). However, as mainstream AOP languages have not been designed to meet the requirements of dynamic analysis, the success of using AOP in this context remains limited. For example, in AspectJ, join points that are important for dynamic program analysis (e.g., the execution of bytecodes or basic blocks of code) are missing, access to reflective dynamic join~point information is expensive, data passing between woven advice in local variables is not supported, and the mixing of low-level bytecode instrumentation and high-level AOP code is not foreseen. In this talk, we present DiSL [1], a new domain-specific aspect language for bytecode instrumentation. DiSL uses Java annotation syntax such that standard Java compilers can be used for compiling DiSL code. The language features an open join point model, novel constructs inspired by weave-time evaluation of conditional join~points and by staged execution, and access to custom static and dynamic context information. Moreover, the DiSL weaver guarantees complete bytecode coverage. We have implemented several dynamic analysis tools in DiSL, including profilers for the inter- and intra-procedural control flow, debuggers, dynamic metrics collectors integrated in the Eclipse IDE to augment the static source views with dynamic information, and tools for workload characterization. These tools are concise and perform equally well as implementations using low-level techniques. DiSL has also been conceived as an intermediate language for future domain-specific analysis languages, as well as for AOP languages.
Year
DOI
Venue
2012
10.1145/2162037.2162046
DSAL@AOSD
Keywords
Field
DocType
dynamic information,extensible language,dynamic analysis tool,reflective dynamic,future domain-specific analysis language,dynamic analysis,comprehensive dynamic program analysis,disl code,dynamic program analysis,dynamic context information,dynamic program analysis tool,dynamic metrics collector,intermediate language,aspect oriented programming,control flow,reverse engineering,numerical software
Programming language,Aspect-oriented programming,Java annotation,Join point,Computer science,Compiler,AspectJ,Bytecode,Dynamic program analysis,Debugging
Conference
Citations 
PageRank 
References 
1
0.38
1
Authors
6
Name
Order
Citations
PageRank
Lukáš Marek1945.57
Yudi Zheng213314.24
Danilo Ansaloni329623.78
Walter Binder4107792.58
Zhengwei Qi568057.66
Petr Tuma627631.77