Foundations of deductive databases and logic programming
A workbench for developing logic programs by stepwise enhancement
A workbench for developing logic programs by stepwise enhancement
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Rules and strategies for transforming functional and logic programs
ACM Computing Surveys (CSUR)
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Proceedings of the 2002 ACM SIGPLAN workshop on Rule-based programming
A rule-based language for programming software updates
Proceedings of the 2002 ACM SIGPLAN workshop on Rule-based programming
A Strafunski Application Letter
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
Compiling TYPOL with Attribute Grammars
PLILP '88 Proceedings of the 1st International Workshop on Programming Language Implementation and Logic Programming
Monadification of functional programs
Science of Computer Programming - Special issue on program transformation
Semantics-preserving Migration of Semantic Rules During Left Recursion Removal in Attribute Grammars
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
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.