Evolution Scenarios for Rule-Based Implementations of Language-Based Functionality
Ralf Lämmel · Electronic Notes in Theoretical Computer Science · 2005
We work through a sequence of evolution scenarios for language-based functionality implemented as rule-based programs. We identify and illustrate different dimensions along which such functionality can evolve, including the following: (i) coding style; (ii) coding details; (iii) data model; (iv) crosscutting concerns; and (v) patches. We focus at language interpreters as examples of language-based functionality, but similar scenarios exist for type checkers, static analyses, program transformations, and other sorts of language-based functionality. We opt for Prolog as the rule-based programming language used for the implementation of language-based functionality. We employ the Prolog-based Rule Evolution Kit (REK) for the operationalisation of the evolution scenarios by means of evolutionary transformations. We compile a list of exercises that are meant to help with the digestion of the scenarios and with the further exploration of the overall subject.