Level of Abstraction

From CasGroup

Jump to: navigation, search

A level of abstraction describes a system at a certain scope or resolution, and it used to explain the system at a certain level. The relationship between different levels of abstraction is described by emergence. The different types and classes of emergence describe different relationships between higher and lower levels of abstractions. Strong emergence requires at least one completely new level of abstraction, if it is defined as the appearance of a new code. The "level of abstraction" is related to the "level of detail", the "scope of view" or the "degree of generality". The higher the level, the less detail. The lower the level, the more detail. The highest level of abstraction is the single system itself. The next level would be only a handful of components, and so on, while the lowest level could be millions of objects or agents. Abstraction comes from the Latin word 'abstrahere', which means to 'drag away from, remove, abort': we remove the details associated with any specific instance of the system.

A "level of abstraction" for computing is the number of abstraction layers between the physical layer (of bits and binary code) and the current representation. A layer is a code, language or protocol which offers a certain service. For example in a computer we have the language cascade from binary code to machine code, byte code and high level code, or the OSI Reference Model. The most common abstraction layer is the programming interface (API) between an application and a framework or operating system. High-level calls are made to the system, which executes the necessary instructions to perform the task.

Russ Abbott has argued in "The reductionist blind spot" that the best way to understand emergence is through the lens of implementation - emergent properties can be described as a high level abstraction which is implemented by low level elements. The lower level of abstraction implements the higher level.


Personal tools