Title
Turbo DiSL: partial evaluation for high-level bytecode instrumentation
Abstract
Bytecode instrumentation is a key technique for the implementation of dynamic program analysis tools such as profilers and debuggers. Traditionally, bytecode instrumentation has been supported by low-level bytecode engineering libraries that are difficult to use. Recently, the domain-specific aspect language DiSL has been proposed to provide high-level abstractions for the rapid development of efficient bytecode instrumentations. While DiSL supports user-defined expressions that are evaluated at weave-time, the DiSL programming model requires these expressions to be implemented in separate classes, thus increasing code size and impairing code readability and maintenance. In addition, the DiSL weaver may produce a significant amount of dead code, which may impair some optimizations performed by the runtime. In this paper we introduce Turbo, a novel partial evaluator for DiSL, which processes the generated instrumentation code, performs constant propagation, conditional reduction, and pattern-based code simplification, and executes pure methods at weave-time. With Turbo, it is often unnecessary to wrap expressions for evaluation at weave-time in separate classes, thus simplifying the programming model. We present Turbo's partial evaluation algorithm and illustrate its benefits with several case studies. We evaluate the impact of Turbo on weave-time performance and on runtime performance of the instrumented application.
Year
DOI
Venue
2012
10.1007/978-3-642-30561-0_24
TOOLS (50)
Keywords
Field
DocType
weave-time performance,separate class,dead code,turbo disl,code size,impairing code readability,disl programming model,disl weaver,high-level bytecode instrumentation,bytecode instrumentation,pattern-based code simplification,partial evaluation,instrumentation code
Domain-specific language,Turbo,Programming language,Aspect-oriented programming,Programming paradigm,Partial evaluation,Computer science,Bytecode,Dynamic program analysis,Dead code
Conference
Volume
ISSN
Citations 
7304
0302-9743
6
PageRank 
References 
Authors
0.50
9
9
Name
Order
Citations
PageRank
Yudi Zheng113314.24
Danilo Ansaloni229623.78
Lukas Marek380.87
Andreas Sewe424317.78
Walter Binder5107792.58
Alex Villazón632527.73
Petr Tuma727631.77
Zhengwei Qi868057.66
Mira Mezini93171211.04