The Z notation: a reference manual
The Z notation: a reference manual
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A language for specifying recursive traversals of object structures
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Visitor combination and traversal control
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Automatic Construction of XML-Based Tools Seen as Meta-Programming
Automated Software Engineering
The Design of a Pretty-printing Library
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Traversals of object structures: Specification and Efficient Implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Tabular Expressions and Total Functional Programming
Implementation and Application of Functional Languages
A Type-theoretic Reconstruction of the Visitor Pattern
Electronic Notes in Theoretical Computer Science (ENTCS)
Paisley: pattern matching à la carte
ICMT'12 Proceedings of the 5th international conference on Theory and Practice of Model Transformations
A survey and comparison of transformation tools based on the transformation tool contest
Science of Computer Programming
Hi-index | 0.00 |
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 defines 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 well-stratified model, this may lead to substantial increase in performance.