• Publications
  • Influence
The art of the Metaobject Protocol
A new approach to programming language design is presented, which resolves fundamental tensions between elegance and efficiency, and a metaobject protocol is presented that gives users the ability to incrementally modify the language's behavior and implementation. Expand
On data-limited and resource-limited processes
The principles discussed show that conclusions about the interactions among psychological processes must be made with caution, and some existing assumptions may be unwarranted, as well as resulting in some new interpretations of interactions among competing psychological processes. Expand
WYSIWIS revised: early experiences with multiuser interfaces
The design issues and choices that arose in the first generation of meeting tools based on WYSIWIS, a foundational abstraction for multiuser interfaces that expresses many of the characteristics of a chalkboard in face-to-face meetings, are presented. Expand
Beyond the chalkboard: computer support for collaboration and problem solving in meetings
An experimental meeting room called the Colab has been created at Xerox PARC to study computer support of collaborative problem solving in face-to-face meetings, with the long-term goal to understand how to build computer tools to make meetings more effective. Expand
Common Lisp Object System specification
This specification presents adescription of the standard Programmer Interface for the Common Lisp Object System, a object-oriented extension to Common Lisp as defined in Common Lisp: The Language, and provides a facility for declaring new types of method combination. Expand
An efficient, incremental, automatic garbage collector
This paper describes a new way of solving the storage reclamation problem for a system such as Lisp that allocates storage automatically from a heap, and does not require the programmer to give anyExpand
What a to-do: studies of task management towards the design of a personal task list manager
This paper reports on the results of studies of task management to support the design of a task list manager. We examined the media used to record and organize to-dos and tracked how tasks areExpand
On Overview of KRL, a Knowledge Representation Language
KRL is an attempt to integrate procedural knowledge with a broad base of declarative forms to give flexibility in associating procedures with specific pieces of knowledge, and to control the relative accessibility of different facts and descriptions. Expand
Object-Oriented Programming: Themes and Variations
The object-oriented style has often been advocated for simulation programs, systems programming, graphics, and AI programming, and is related to a line of work in AI on the theory of frames and their implementation in knowledge representation languages such as KRL, KEE, FRL, and UNITS. Expand