Book contents
- Frontmatter
- Contents
- To the Reader
- 1 The Basics of Interpretation
- 2 Lisp, 1, 2, … ω
- 3 Escape & Return: Continuations
- 4 Assignment and Side Effects
- 5 Denotational Semantics
- 6 Fast Interpretation
- 7 Compilation
- 8 Evaluation & Reflection
- 9 Macros: Their Use & Abuse
- 10 Compiling into C
- 11 Essence of an Object System
- Answers to Exercises
- Bibliography
- Index
11 - Essence of an Object System
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- To the Reader
- 1 The Basics of Interpretation
- 2 Lisp, 1, 2, … ω
- 3 Escape & Return: Continuations
- 4 Assignment and Side Effects
- 5 Denotational Semantics
- 6 Fast Interpretation
- 7 Compilation
- 8 Evaluation & Reflection
- 9 Macros: Their Use & Abuse
- 10 Compiling into C
- 11 Essence of an Object System
- Answers to Exercises
- Bibliography
- Index
Summary
Objects! Oh, where would we be without them? This chapter defines the object system that we've used throughout this book. We deliberately restricted ourselves to a limited set of characteristics so that we would not overburden the description which will follow here. In fact, as Rabelais would say, we want to limit it to its sustantificque mouelle, that is, to its very essence.
This object system is called Meroon. Such a system is complicated and demands considerable attention if we want it to be simultaneously efficient and portable. As a result, the system is endowed with a structure strongly influenced, maybe even distorted, by our worries about portability. To compensate for that, we're actually going to show you a reduced version of Meroon, and we'll call that reduced version Meroonet.
Lisp and objects have a long history in common. It begins with one of the first object languages, Smalltalk 72, which was first implemented in Lisp. Since that time, Lisp, as an excellent development language, has served as the cradle for innumerable studies about objects. We'll mention only a couple: Flavors, developed by Symbolics for a windowing system on Lisp machines, experimented with multiple inheritance; Loops, created at Xerox Pare, introduced the idea of generic functions. Those efforts culminated in the definition of CLOS (Common Lisp Object System) and of TEΛOΣ (the EuLisp object system). These latter two systems bring together most of the characteristics of the preceding object systems while immersing them in the typing system of the underlying language.
- Type
- Chapter
- Information
- Lisp in Small Pieces , pp. 417 - 450Publisher: Cambridge University PressPrint publication year: 1996