Definition of ‘abstract’

NOTE HXA7241 2011-04-10T09:10Z

Abstraction is definable in a nice discrete way. And abstraction is a fundamental law of reality! maybe.

Abstraction is definable

It might be worth having a good sharp definition of ‘abstract’ or ‘abstraction’:

An abstraction unites something fixed with something varying.

Or, an abstraction fixes something and lets something vary.

For example, an 8 bit number, as a primitive type, fits this straightforwardly. The number of bits and their interpretation as successive powers of 2 is what is fixed; the actual values of the bits is what varies. (The single bit is the ‘atomic abstraction’ of software.)

But the term ‘abstraction’ is also used for a kind of layer, where something complex is hidden by a simpler exterior: the details are said to be ‘abstracted away’. Nevertheless, this still fits the definition as a minimal case: we just have (in the hidden complex part) only one instance of what could possibly vary. (It is worth considering whether this is really degenerate abstraction – this is what is happening when ‘Hello, world’ is written as some sort of class framework.)

Factoring is just abstraction from a different angle. When you factor, you collect multiple things (like repeated lines of code) under a single grouping (like a function parameterised to fit its multiple uses) – you choose something fixed for some set of varying things.

Abstraction is at the absolute center of software, but maybe the usual everyday conception of what it means is rather vague. The above definition seems good because it is quite discrete, mathematical. It is a kind that can be delineated. It suggests the idea that abstraction could be measured . . .

Abstraction is fundamental

And if there seems to be something profound about abstraction, here is a rather speculative idea why.

Abstraction seems like a necessary emergent ‘secondary’ law of physics, like evolution. Evolution is not a basic law of physics, but it perhaps inevitably arises in the operation of our physical world. Abstraction seems similar.

The reasoning is like this:

  • Any thing's behavior is limited by its physical limits (any thing must be smaller than the outside world to be considered as a thing).
  • It interacts with the outside world, which is more complex than its interface and internals (which are smaller than the world).
  • So its behaviour is a filtering of many to fewer, a many-to-one functional form – that is abstraction.

If a thing has any relation to the world – that is, it responds to it in some sense – then it must do so in reduction. And such a reduction is an abstraction.

(Abstraction is a kind of ‘logical resonance’.)

Abstraction looks even more basic than evolution. Abstraction is what creates pattern – pattern is variation with some fixed rule. And evolution is a kind of pattern – varying products of repetition over time.

Is this whole idea really sensible, or significant? It is something to ponder . . .