Aspects: cross-cutting features of a program that cannot be cleanly encapsulated as procedures: performance, memory management, synchronization, failure handling.
Programming languages provide mainly a single composition rule: procedure call. Aspects "follow such different composition rules and yet must co-compose."
Aspect-Oriented Programming (AOP) includes:
"AOP provides component and aspect languages with different abstraction and composition methods."