Program and Code


The nature of computer programs can be characterized from two different viewpoints: as executable artifacts that create signals on a computing device or as pure mathematical objects with a rigorous, unambiguous semantics. To distinguish both usages I use the word “code” for the first and “program” for the second. This distinction is relevant to avoid confusion when discussing notions such as validity or correctness of software. The point is illustrated by refuting a well-known claim on the impossibility of verification and misleading claims about commercial products. At the same time the distinction “program versus code” is insufficient: I show that a “program” is always accompanied by an implicit or explicit application context which is necessary to scope its semantics. Ultimately, the analysis performed in this paper helps to distinguish relative from mathematical truths when discussing qualities of software.