Abstract
The “programs are data” philosophy of Lisp uses Lisp’s S-expressions to 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 use objects to represent programs. and an object-oriented interpreter takes 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 are reversible, 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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Adele Goldberg and David Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading, Mass., USA, 1983.
Henry Lieberman. An Object Oriented Simulator for the Apiary. AAAI-83, American Asociation for Artificial Intelligence, Washington, D. C., USA, August. 1983.
Henry Lieberman. Steps Toward Better Debugging Tools for Lisp. Proceedings of the Fourth ACM Conference on Lisp and Functional Programming, Austin, Texas, USA, August, 1984.
Henry Lieberman. “Seeing What Your Programs Are Doing”. International Journal of Man-Machine Studies 21,4 (October 1984).
Henry Lieberman. “An Example Oriented Environment for Beginning Programmers”. Instructional Sciences 14 (1986), 277–292.
Carl Manning. Traveler: the Apiary Observatory. ECOOP-87 [this volume], Paris, France, June, 1987.
Guy Steele, et. al.. Common Lisp: The Language. Digital Press, Maynard, Mass., USA, 1984.
Joseph Stoy. Denotational Semantics. MIT Press, Cambridge, Mass., USA, 1977.
A. Yonezawa and M. Tokoro, eds. Concurrent Object Oriented Programming. MIT Press, Cambridge, Mass., USA, 1987.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lieberman, H. (1987). Reversible Object-Oriented Interpreters. In: Bézivin, J., Hullot, JM., Cointe, P., Lieberman, H. (eds) ECOOP’ 87 European Conference on Object-Oriented Programming. ECOOP 1987. Lecture Notes in Computer Science, vol 276. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47891-4_2
Download citation
DOI: https://doi.org/10.1007/3-540-47891-4_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-18353-2
Online ISBN: 978-3-540-47891-1
eBook Packages: Springer Book Archive