Some software properties can not be implemented as separated modules using common concepts of modern programming languages. Instead implementations of those properties tend to crosscut modular implementations of other properties. This decreases understanding, maintainibility, extensibility, and reusability of software components.
Aspect-oriented programming overcomes this problem by introducing aspects as a new concept to implement these crosscutting concerns in isolation. This work investigates the adaption of those ideas to Prolog. It is shown that crosscutting concerns occur in Prolog programs and can not be modularised by the use of predicates and clauses. Existing solutions addressing this problem for Prolog programs like port annotations and the method of stepwise enhancement are presented, compared to aspect-oriented concepts, and evaluated subsequently. Based on those reflections a model for aspect-oriented programming in Prolog is developed. The model is used to formalise programming techniques in a generic manner. Furthermore, a generic approach to assist aspect-oriented developing of language processors is presented.