Introduction The Common Lisp Object System is an object-oriented extension to Common Lisp as defined in Common Lisp: The Language, by Guy L. Steele Jr. It is based on generic functions, multiple inheritance, declarative method combination, and a meta-object protocol. The first two chapters of this specification present a description of the standard Programmer Interface for the Common Lisp Object System. The first chapter contains a description of the concepts of the Common Lisp Object System, and the second contains a description of the functions and macros in the Common Lisp Object System Programmer Interface. The chapter "The Common Lisp Object System Meta-Object Protocol" describes how the Common Lisp Object System can be customized. The fundamental objects of the Common Lisp Object System are classes, instances, generic functions, and methods. A class object determines the structure and behavior of a set of other objects, which are called its instances. Every Common Lisp object is an instance of a class. The class of an object determines the set of operations that can be performed on the object. A generic function is a function whose behavior depends on the classes or identities of the arguments supplied to it. A generic function object contains a set of methods, a lambda-list, a method combination type, and other information. The methods define the class-specific behavior and operations of the generic function; a method is said to specialize a generic function. When invoked, a generic function executes a subset of its methods based on the classes of its arguments. A generic function can be used in the same ways that an ordinary function can be used in Common Lisp; in particular, a generic function can be used as an argument to funcall and apply and can be given a global or a local name. A method is an object that contains a method function, a sequence of parameter speclalizers that specify when the given method is applicable, and a sequence of qualifiers that is used by the method combination facility to distinguish among methods. Each required formal parameter of each method has an associated parameter specializer, and the method will be invoked only on arguments that satisfy its parameter specializers. The method combination facility controls the selection of methods, the order in which they are run, and the values that are returned by the generic function. The Common Lisp Object System offers a default method combination type and provides a facility for declaring new types of method combination.
This paper discusses garbage collection techniques used in a high-performance Lisp implementation with a large virtual memory, the Symbolics 3600. Particular attention is paid to practical issues and experience. In a large system problems of scale appear and the most straightforward garbagecollection techniques do not work well. Many of these problems involve the interaction of the garbage collector with demand-paged virtual memory. Some of the solutions adopted in the 3600 are presented, including incremental copying garbage collection, approximately depth-first copying, ephemeral objects, tagged architecture, and hardware assists. We discuss techniques for improving the efficiency of garbage collection by recognizing that objects in the Lisp world have a variety of lifetimes.The importance of designing the architecture and the hardware to facilitate garbage collection is stressed.reclaims their storage. The user program does not have to say explicitly "I'm done with this object." Automatic storage reclamation is usually called garbage collection. It can be thought of as finding all the objects that are no longer useful for anything-the garbage--and collecting the memory used to represent them so that it can be reused for new objects.Garbage collection consists of -Deciding when to garbage collect and how much of the machine's resources to devote to garbage collection (as opposed to "useful work").-Discovering the division of storage between garbage and good objects' representations.-Separating the garbage so that its memory can be reused without disturbing the good objects.
This paper describes Symbolics' newly redesigned object-oriented programming system, Flavors. Flavors encourages program modularity, eases the development of large, complex programs, and provides high efficiency at run time. Flavors is integrated into Lisp and the Symbolics program development environment. This paper describes the philosophy and some of the major characteristics of Symbolics' Flavors and shows how the above goals are addressed. Full details of Flavors are left to the programmers' manual, Reference Guide to Symbolics Common Lisp. (5)
This 471-page, softcover manual describes the programming language and software environment of the Lisp Machine developed at M.I.T.'s Artificial Intelligence Laboratory over the past 8 years. The Lisp Machine is the result of a successful experiment in computer science: a distributed computing system consisting of a network of powerful 32-bit personal computers, implemented with custom hardware and software as complete, interactive graphical workstations. Each machine consists of a 32-bit computer with 64 megabytes of virtual memory, 1 to 16 megabytes of main memory, 80 megabytes (or larger) disk, 800x900 graphics display (color optional), mouse, keyboard, speaker and 4 million bit/second local network interface, which allows connections to other Lisp Machines, primers and file servers.
The Symbolics 3600 is a family of high-performance, single user computers optimized for the Lisp language and for interactive use. This paper briefly discusses some of the interesting aspects of the architecture, including the representation of data, the instruction set used for compiled code, the function calling discipline, and the way exception traps and interrupts are handled. The reader is assumed to have some previous exposure to the basic concepts of Lisp (4).
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.