PLT Redex
PLT Redex is a domain-specific language designed for specifying and debugging operational semantics. Write down a grammar and the reduction rules, and PLT Redex produces a stepper. It also provides support for building a test suites from the specification of a semantics.