TY - GEN
T1 - Composing transformations for instrumentation and optimization
AU - Gorbovitski, Michael
AU - Liu, Yanhong A.
AU - Stoller, Scott D.
AU - Rothamel, Tom
PY - 2012
Y1 - 2012
N2 - When transforming programs for complex instrumentation and optimization, it is essential to understand the effect of the transformations, to best optimize the transformed programs, and to speedup the transformation process. This paper describes a powerful method for composing transformation rules to achieve these goals. We specify the transformations declaratively as instrumentation rules and invariant rules, the latter for transforming complex queries in instrumentation and in programs into efficient incremental computations. Our method automatically composes the transformation rules and optimizes the composed rules before applying the optimized composed rules. The method allows (1) the effect of transformations to be accumulated in composed rules and thus easy to see, (2) the replacements in composed rules to be optimized without the difficulty of achieving the optimization on large transformed programs, and (3) the transformation process to be sped up by applying a composed rule in one pass of program analyses and transformations instead of applying the original rules in multiple passes. We have implemented the method for Python. We successfully used it for instrumentation, in ranking peers in BitTorrent; and for optimization of complex queries, in the instrumentation of BitTorrent, in evaluating connections of network hosts using NetFlow, and in generating efficient implementations of Constrained RBAC.
AB - When transforming programs for complex instrumentation and optimization, it is essential to understand the effect of the transformations, to best optimize the transformed programs, and to speedup the transformation process. This paper describes a powerful method for composing transformation rules to achieve these goals. We specify the transformations declaratively as instrumentation rules and invariant rules, the latter for transforming complex queries in instrumentation and in programs into efficient incremental computations. Our method automatically composes the transformation rules and optimizes the composed rules before applying the optimized composed rules. The method allows (1) the effect of transformations to be accumulated in composed rules and thus easy to see, (2) the replacements in composed rules to be optimized without the difficulty of achieving the optimization on large transformed programs, and (3) the transformation process to be sped up by applying a composed rule in one pass of program analyses and transformations instead of applying the original rules in multiple passes. We have implemented the method for Python. We successfully used it for instrumentation, in ranking peers in BitTorrent; and for optimization of complex queries, in the instrumentation of BitTorrent, in evaluating connections of network hosts using NetFlow, and in generating efficient implementations of Constrained RBAC.
KW - Design
KW - Languages
KW - Performance
UR - https://www.scopus.com/pages/publications/84863294167
U2 - 10.1145/2103746.2103759
DO - 10.1145/2103746.2103759
M3 - Conference contribution
AN - SCOPUS:84863294167
SN - 9781450311182
T3 - Conference Record of the Annual ACM Symposium on Principles of Programming Languages
SP - 53
EP - 62
BT - POPL
PB - Association for Computing Machinery
T2 - ACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation, PEPM'12, Co-located with POPL 2012
Y2 - 23 January 2012 through 24 January 2012
ER -