Limitations of general-purpose aspect languages to separate concerns
@inproceedings{XAspects:SLS-oopsla-03,
AUTHOR = "Macneil Shonle and Karl Lieberherr and Ankit Shah",
TITLE = "XAspects: An Extensible System for Domain Specific Aspect Languages",
booktitle = "OOPSLA '2003, Domain-Driven Development Track",
YEAR = 2003,
MONTH = "October"
}
XAspects also provides programming language support for better separation of concerns. Socrates is an excellent language as a weaving language for an XAspects-like system but Socrates will be limited:
Consider the following quote from the XAspects paper:
The lack of constructs that support the visitor pattern is just one example of where the AspectJ language falls short of separating concerns. We conjecture that this gap between domain-specific aspect languages and general purpose aspect languages will always exist because any general solution cannot cover all possible ways an aspect can crosscut a system. By their nature concerns are related to the problem domain, and there is an infinite variety of forms that problem domains can take.
Socrates has the feeling of a new kind of rule-based system. What can be done so that Socrates does not suffer from the problems of rule-based systems?
How is predicate implication, an unsolvable problem, approximated?