In about 1970, after Tymshare received the sources for the 940 timesharing system from Berkeley, L. Peter Deutsch sent a small assembly routine for the 940. Parameters to this routine were: Peter’s routine returns success or failure. Upon success an integer is also returned telling the number of 1.75 μs cycles before which the checked routine is guaranteed to return. Peter’s routine returns ‘fail’ if the checked routine fails to conform to some code pattern rules expressed in an accompanying document, or if the checked routine stores outside the permitted range.

The imposed patterns allow certain sorts of instructions in an unlimited form. Store instructions must be unindexed and within the permitted range, or indexed by a value whose inclusion in the permitted range is verified by code in the checked routine. There are provisions for Fortran style loops with limits known to Peter’s code. Linked lists can be followed in such a loop, but thus with an imposed limit on their length.

Branches into the writable range of the checked routine are not allowed.

Turing proved that no program could generally decide whether another program would terminate. Peter’s code would fail some programs that would indeed terminate, thus it did not claim to be a termination decider.


“A Flexible Measurement Tool for Software Systems”, P. Deutsch, C. A. Grant