Reversible Object-Oriented Interpreters

Reversible Object-Oriented Interpreters
复制标题

可逆面向对象解释器

DOI:
10.1007/3-540-47891-4_2
复制
发表时间:
1987
期刊:
--
影响因子:
--
通讯作者:
H. Lieberman
H. Lieberman
中科院分区:
--
文献类型:
--
作者:
H. Lieberman

文献摘要

被引文献

相似文献

Lisp的“程序即数据”哲学使用Lisp的S表达式来表示程序,并允许用Lisp本身编写的程序实现该语言的解释器。面向对象语言可以更进一步:我们可以用对象来表示程序。面向对象的解释器采用对用于评估程序的消息协议的响应的形式。由于对象是一个更丰富的数据结构比简单的S-expressions,表示程序可以有更多的内置的智能比是可行的使用简单的列表manipulation单独。我们特别关注面向对象的解释器是可逆的,那些,不像传统的解释器,记住他们的评价历史。我们说明了可逆的面向对象的解释器的两个应用程序所涉及的技术:一个可逆的步进Lisp,和一个编程环境,从例子中构造Lisp程序。
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.