The Design and Implementation of AspectC++
Subject-oriented programming: a critique of pure objects