Abstraction (computer Science)

Abstraction (computer Science)

In computer science, abstraction is the process by which data and programs are defined with a representation similar in form to its meaning (semantics), while hiding away the implementation details. Abstraction tries to reduce and factor out details so that the programmer can focus on a few concepts at a time. A system can have several abstraction layers whereby different meanings and amounts of detail are exposed to the programmer. For example, low-level abstraction layers expose details of the computer hardware where the program is run, while high-level layers deal with the business logic of the program.

The following English definition of abstraction helps to understand how this term applies to computer science, IT and objects:

abstraction - a concept or idea not associated with any specific instance

Abstraction captures only those details about an object that are relevant to the current perspective. The concept originated by analogy with abstraction in mathematics. The mathematical technique of abstraction begins with mathematical definitions, making it a more technical approach than the general concept of abstraction in philosophy. For example, in both computing and in mathematics, numbers are concepts in the programming languages, as founded in mathematics. Implementation details depend on the hardware and software, but this is not a restriction because the computing concept of number is still based on the mathematical concept.

In computer programming, abstraction can apply to control or to data: Control abstraction is the abstraction of actions while data abstraction is that of data structures.

  • Control abstraction involves the use of subprograms and related concepts control flows
  • Data abstraction allows handling data bits in meaningful ways. For example, it is the basic motivation behind datatype.

One can regard the notion of an object (from object-oriented programming) as an attempt to combine abstractions of data and code.

The same abstract definition can be used as a common interface for a family of objects with different implementations and behaviors but which share the same meaning. The inheritance mechanism in object-oriented programming can be used to define an abstract class as the common interface.

The recommendation that programmers use abstractions whenever suitable in order to avoid duplication (usually of code) is known as the abstraction principle. The requirement that a programming language provide suitable abstractions is also called the abstraction principle.

Read more about Abstraction (computer Science):  Rationale, Control Abstraction, Abstraction in Object Oriented Programming, Considerations, Levels of Abstraction

Other articles related to "abstraction":

Abstraction (computer Science) - Levels of Abstraction - Layered Architecture
... The ability to provide a design of different levels of abstractioncan simplify the design considerably enable different role players to effectively work at various levels of ... designs that contain various levels of abstraction ... partitions the concerns of the application into stacked groups layers) ...

Famous quotes containing the word abstraction:

    When truth is nothing but the truth, it’s unnatural, it’s an abstraction that resembles nothing in the real world. In nature there are always so many other irrelevant things mixed up with the essential truth. That’s why art moves you—precisely because it’s unadulterated with all the irrelevancies of real life.
    Aldous Huxley (1894–1963)