Functional Programming.
The paper also describes a pair of debuggers, one for Java and the other for Scheme, built in accordance with these principles. The paper includes concrete examples of applying this debugger to programs. Presented in the Automated Software Engineering Journal (ASE), 2006 (by invitation) [info+pdf]