- Quaject
In
object-oriented programming , an object is a structure that holds variables that define its state; operations, or methods, are then written to manipulate this data. In contrast, a quaject is a type of object that keeps a copy of its methods as part of its data load. The methods exist verbatim in the space of the object.Because all the methods of an object are copied into it upon creation, a single pointer is enough to designate both the object and the desired method of that object to call. As the state of a quaject changes, it replaces the implementations of its methods with appropriate special cases. Alternatively, instead of supplying a callback function, the source quaject may simply install a copy of one of its methods into the callback slot of another quaject.
Quajects were first introduced by
Henry Massalin in his PhD thesis describing aUnix -like kernel called Synthesis, written in theMotorola 68030 assembly language .While no modern language uses the term "quaject" to describe its objects, many
toy language s andscripting language s have quaject-like semantics, in which each object or actor carries with it scripts for all the actions it can perform. For one example, seeLinden Scripting Language .External links
* [http://citeseer.ist.psu.edu/massalin92synthesi.html Synthesis thesis]
Wikimedia Foundation. 2010.