Information Technology Reference
In-Depth Information
members are assigned a membership number that is explicit and essentially ordinal.
Such assignments can be expressed by a finite set of rules. Similarly, a probabilistic
assignment of a member is also rational where a rule is in the form of a ratio of in-
tegers that specifies its membership. So there is difficulty transforming an irrational
to a rational set by simply assigning some kind of membership function.
Even though there are irrational sets we still have rational sets, and so denotation
remains one mechanism for relating meaning to a name. For irrational sets there is
an additional and more important mechanism for meaning assignment based upon
human usage and context. It is this latter mechanism that provides the link between
the program and the world it is designed to represent and is the other half of the dual
semantics.
9.3.3
Some Predictions from this Thesis
So we have computer programs with a semantics based upon computer bits but we
create programs that cannot rationally be assigned meaning to the very problem
domain for which they have been written. Programs must remain in the domain of
rational sets if they are to be implemented on a machine. However, we do have the
freedom to use the program's accidental properties, such as variable names and the
addition of annotation, without affecting the program's meaning with respect to the
computer. We can choose the names we use and select the computer organisation
from the possibilities bounded by the essential (minimal expression of a) program.
During the 1960s variables in programs were severely limited to about 4 - 8 char-
acters or integers. This limitation could make programs obscure to even experienced
programmers. The advance of more flexible naming and the addition of annotation
made programs very much more readable. The early endeavours, such as COBOL,
attempted to make the program expressions reflect an English sentence so that non-
programmers, such as clerks, could understand it. This did help, sometimes but it
could also be very confusing. The problem was that the real programming features,
such as column position, became lost in the English 'descriptions'.
A proposition, and hence a program, can adopt many equivalent forms. It is the
job of a compiler to make a transformation of a program in order that it is accept-
able for a particular computer to run it. For any computer there are an infinite but
bounded number of possible structural forms for a given program. The possibilities
are bounded by the limitations of the compiler and the intended final form of the
program (the essential program). Apart from these limitations the choice of form
chosen is in the hands of the programmer. This means that:
Reverse engineering is impossible unless domain information is used. This is
because there is no rational link between a real world domain and the program.
The world is always open to novel interpretations that depend upon purpose.
Design methods will generally only limit what is possible to implement unless they
are 'complete'. A 'complete' method is one that constrains the possible designs
to that of the limits of the machine being programmed.
Search WWH ::




Custom Search