Using Reflective Logic Programming to Describe Domain Knowledge as an Aspect
Software applications, mostly consisting of an algorithm applied to domain knowledge, are hard to maintain and to reuse as a result of their hard coded combination. We propose to follow the principles of aspect-oriented programming, separating the domain from the algorithm and describing them in a logic and conventional programming language respectively. In this paper, we report on an experiment that was conducted to validate this hypothesis, and to investigate the requirements of a programming environment for this con_guration. An already existing environment that uses a logic meta-language to reason about objectoriented systems, SOUL, is used as a starting point for this experiment. The result is a working implementation in SOUL, which validates our ideas, reveals mechanisms that require more research, and points to other features that should be included.
KeywordsDomain Knowledge Base Program Domain Layer Aspect Language Domain Knowl
Unable to display preview. Download preview PDF.
- 1.D’Hondt, M., D’Hondt, T.: Is domain knowledge an aspect? ECOOP99, Aspect-Oriented Programming Workshop (1999)Google Scholar
- 2.Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J.: Aspect-oriented programming. In Proceedings of ECOOP (1997)Google Scholar
- 3.Wuyts, R.: Declarative reasoning about the structure of object-oriented systems. In Proceedings of TOOLS USA (1998)Google Scholar
- 4.Wuyts, R.: Declaratively codifying software architectures using virtual software classifications. Submitted to TOOLS Europe (1999)Google Scholar
- 5.Steyaert, S.: Open design of object-oriented languages, a foundation for specialisable reflective language frameworks. PhD thesis, Brussels Free University (1994)Google Scholar
- 6.De Meuter, W.: The story of the simplest MOP in the world, or, the scheme of object-orientation. In Prototype-Based Programming (1998)Google Scholar