Deriving a Symbolic Executor for Definitional Interpreters Suitable for the Study of Heuristics