THE DEBUGGABLE INTERPRETER DESIGN PATTERN
Design patterns: Abstraction and reuse of object-oriented design