Translator -- External Functionality with homomorphic Mappings
We describe how to express homomorphic translations with an object-oriented design. This includes a uniform approach to the addition of external functionality to data structures. We present the tradeoffs of distributing intrinsic and extrinsic properties to data structures and external functions respectively. A mini-architecture (design pattern) for the emulation of multi-dispatching functions is presented in order to allow the definition of local translation functions. Actually, we present a variant of the Visitor pattern, but add the idea of maintaining a homomorphism between source and target and introduce a target structure between source structure and target semantics. Combined, these concepts pave the way to incremental evaluation.