Markus Lepper, Baltasar Trancón-y-Widemann. Optimization of Visitor Performance by Reflection-Based Analysis. In Jordi Cabot, Eelco Visser, editors, Theory and Practice of Model Transformations, Fourth International Conference, ICMT 2011, Zurich, Switzerland, June 27-28, 2011. Proceedings. Volume 6707 of Lecture Notes in Computer Science, pages 15-30, Springer, 2011.
Visitors are a well-known and powerful design pattern for processing regular data structures and for combining declarative and imperative coding styles. The authors' umod model generator creates Java data models from a concise and algebraic notation. It is primarily used to model intermediate representations of computer languages. The user de nes visitor code by extending skeleton classes, which are generated according to traversal annotations in the model. Since the generated code on its own executes the pure traversal and no semantic side-effects, traversals are redundant unless some user-overridden method is eventually invoked. We present a reflection-based control flow analysis to detect this situation and prune the traversal transparently. With a wellstratifi ed model, this may lead to substantial increase in performance.