Designing a Framework for Language Implementation
Kai Koskimies, Hanspeter Mössenböck
Frameworks are class collections that capture the common aspects of applications in a certain problem domain. It is argued that conventional object-oriented design methods do not suit well to frameworks. As an alternative, we suggest a two-phase design method. The first phase is a stepwise generalization of a problem to its most general form. The second phase proceeds in the opposite direction, giving an implementation for every generalization level. The implementation of a certain level can be regarded as a framework for implementing the next more specific level. The main advantage of our method is that it enhances the generality (and therefore reusability) of the framework architecture, and explains the design decisions in the simplest possible context. As a case study, we describe a framework supporting the analysis of formal languages.
Technical Report 2, University of Linz, Institute of Computer Science (System Software), January 1995.
You can download the report in compressed postscript.