Reversible Object-Oriented Interpreters
Reversible Object-Oriented Interpreters
复制标题
可逆面向对象解释器
DOI:
10.1007/3-540-47891-4_2
复制
发表时间:
1987
期刊:
影响因子:
--
通讯作者:
H. Lieberman
中科院分区:
文献类型:
--
作者:
H. Lieberman
The “programs are data” philosophy of Lisp uses Lisp’sS-expressionsto represent programs, and permits a program written in Lisp itself to implement the interpreter for the language. Object-oriented languages can take this one step further: we can useobjectsto represent programs. and anobject-oriented interpretertakes the form of responses to a protocol of messages for evaluating programs. Because objects are a richer data structure than simple S-expressions, the representation of programs can have more built-in intelligence than was feasible using simple list manipulation alone.This paper surveys techniques and applications for object-oriented interpreters. We focus particularly on object-oriented interpreters that arereversible, those that, unlike conventional interpreters, remember their history of evaluation. We illustrate the techniques involved with two applications of reversible object-oriented interpreters: a reversible stepper for Lisp, and a programming environment which constructs Lisp programs from examples.