Iterative interpretation of tail-recursive LISP procedures

Greussay, Patrick

Access document


Publication: ACM Lisp Bulletin
Issue: 2
Pages: 35-46
DOI: 10.1145/1411798.1411809
Abstract:
The design of a LISP interpreter that allows tail-recursive procedures to be interpreted iteratively is presented at the machine-language level. Iterative interpretation means that, without any program transformations, no environments and continuations will be stacked unless necessary. We apply a specific modification within a traditional stack-oriented version of LISP interpreter, without any non-recursive control structure. The design is compatible with value-cells as well as a-lists LISP processors. We present a complete modified interpreter written itself in LISP and an informal proof that it meets its requirements.