Abstract

Conventional visitor pattern facilitates operation extensions but sacrifices data variant extensions. Existing work on equipping the visitor pattern with two dimensions of extensibility is not very practical, which requires heavy encoding and/or sophisticated language features. In this talk, we will introduce a simple encoding of modular imperative visitor that works in conventional object-oriented languages. We will show the applicability of this design pattern by modeling several simple DSLs.