previous | contents | next

Chapter 50 ½ Hewlett-Packard Calculator Architectures 827

in the generation being developed. Unfortunately, two factors team up to defeat this admirable goal. First, it seems that regardless of how carefully the previous software was documented, the (new) personnel who will be responsible for the next generation find the ancestor software's documentation dull and uninspired. Second, the performance objectives of the new generation automatically render much of the ancestral code obsolete. Once Pandora's box is opened, good intentions escape and most of the code is rewritten. The paradoxical result of this process is that an architecture is retained because one wishes to capitalize upon its software when, in fact, very little of the software is actually used. The measurable effect of this logic is that an architecture may persist much longer than it would if its software were removed from the decision process.

It has been more than a decade since the first scientific desk-top calculator was introduced. Since that time the public has had enough time to appraise many systems and use their respective languages. To me it appears that as we add more deep structure to the grammars upon which the languages are based, the users become more confused. In an odd way, the more powerful we make our grammars, the less useful they become to all but a few. The following BASIC statement is an example:

Unless you have committed to memory the nine levels of hierarchy involved, there is little chance that you would parse the sentence as:

My point is that while the first sentence is derived from what many consider to be a trivial grammar, the sentence can only be understood if the user has memorized the proper grammatical rules or has access to a manual in which they are described. The entire meaning of what is being said is lost if the rules of the language are forgotten or improperly used.

Based upon my experiences, a language that is easily learned and seldom misused would:

1 Be free from hierarchy, except for parentheses

2 Be left-associative

3 Use the right assignment operator "® "

In other words, it would be much like APL except that it would execute left to right rather than right to left.

References

Hewlett-Packard [1968]; Hewlett-Packard [1972].

previous | contents | next