Programs cannot be Understood

Sunday afternoon: a small arm-chair mind game.

Ontology is the study of being or existence. One of the more dubious questions one might ask about programs is if they exist and, if so, where they exist.

Of course, when we look at the physical dimensions of a program, we can only conclude that a program is a series of bits residing somewhere in memory. The purpose of a program is to be executed by a processor, which will result in some effect, usually the manipulation of other bits and the change of state of devices. For most people, the users of programs, a program is a thing observable by the effect it sorts.

For a programmer, the program usually is the code, or script, he writes which will have some effect when executed. He deals with mental abstractions of state and computation and, in general, is hardly aware of the underlying machinery which will cause the intended effect.

By necessity, for people, the observable behavior of a program, or the observable abstract representation of a program through source code, gives an incomplete view on its existence.

A program is a poorly understood series of bits.

Then again, who cares about ontology?