Abstract

The cost of software development is high. To reduce the cost of software development, object-oriented programming languages have been intensively used for developing reusable software components. However, such components are typically extensible only in one dimension, restricting them from reuse. New solutions to the expression problem like Object Algebras provide extra extensibility but restricted in expressiveness. To tackle this problem, we develop EVF, an extensible and expressive Java VISITOR framework, for developing reusable software components.

In this revised talk, I will first show the basic encoding of EVF and how it addresses the limitations of Object Algebras. Then, I will introduce some advanced features of EVF like traversal templates and pattern matching, which are handy for modeling sophisticated operations. To reveal the applicability of EVF, I will show the refactored interpreters from “Types and Programming Languages” book.