Abstraction (computer science)

related topics
{math, number, function}
{system, computer, user}
{theory, work, human}
{food, make, wine}
{rate, high, increase}
{specie, animal, plant}
{language, word, form}

In computer science, the mechanism and practice of abstraction reduces and factors out details so that one can focus on a few concepts at a time.

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

The concept originated by analogy with abstraction in mathematics. The mathematical technique of abstraction begins with mathematical definitions; this has the fortunate effect of finessing some of the vexing philosophical issues of abstraction. 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 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.


Full article ▸

related documents
Insertion sort
L'Hôpital's rule
Complete metric space
Standard ML
Icon (programming language)
Equivalence relation
Cantor's diagonal argument
Tail recursion
Natural number
Kernel (matrix)
Square root
Analysis of algorithms
Object-oriented programming
Cholesky decomposition
Hausdorff dimension
Template (programming)
Extended Euclidean algorithm
Uniform continuity
Chaitin's constant
Breadth-first search
Taylor's theorem
Goldbach's conjecture
Euclidean space
Homology (mathematics)