object is perhaps the most overloaded word in computing, with the common denominator being the idea that an object is a concrete instance of some type of thing in the context of some larger system.


At the machine level, a region of memory exposed to a program is called an object, and assembly programs express operations directly on these regions. At the next level up, languages like C express operations on values and their locations in memory, but also express a type for each value such as "character", "integer", "float", and "array", and constrain operations on the basis of these types. In The C Programming Language, the first use of the term "object" is in reference to these primitive types. At this level, the concept of class also begins to arise, with the various numeric types having a certain degree of compatibility with each other.

In the context of compiling source code to machine code, C, an object is an instance of a compiled unit of source code. From this meaning comes the term, shared object, also called a dynamic link library, which is a compiled code object that can be linked into a program at runtime.

In object-oriented programming, which refers to a set of programming language features for dividing the data handled by a program up into discrete units and associating each unit with a particular set of operations that can be applied to the unit, each such unit is called an object. The available operations provide the interface to the unit. Typically, each object is either instantiated from a class or cloned from a prototype. Such an object is primarily concerned with managing the data that represent something that is being modeled, but programmers often misuse object-oriented features as if they provided a way to model the thing itself instead of the data that represent it. For example, a method is often misunderstood as implementing the behaviour of the object, instead of being correctly understood as applying an operation to the data that the object encapsulates.

In the C implementation of Tcl, a Tcl_Obj is a data structure that represents a a Tcl value.

See Also

Object Orientation