what is needed, therefore, is a more sophisticated version of the old tokenized program representation, and such systems have been developed for Scheme (and FORTH, I think), usually known as Abstract Syntax Tree interpreters, in contrast to bytecode interpreters like Parrot's current implementation.