October 1973 - Vol. 16 No. 10

October 1973 issue cover image

Features

Research and Advances

Multiple terminals under user program control in a time-sharing environment

User-written programs on the Dartmouth Time-Sharing System can communicate with many remote terminals simultaneously and can control the interactions between these terminals. Such programs can be written using standard input and output instructions in any language available on the system. This paper describes how this multiple-terminal facility was implemented without requiring any changes in the system executive or in any of the system's compilers or interpreters.
Research and Advances

A model and stack implementation of multiple environments

Many control and access environment structures require that storage for a procedure activation exist at times when control is not nested within the procedure activated. This is straightforward to implement by dynamic storage allocation with linked blocks for each activation, but rather expensive in both time and space. This paper presents an implementation technique using a single stack to hold procedure activation storage which allows retention of that storage for durations not necessarily tied to control flow. The technique has the property that, in the simple case, it runs identically to the usual automatic stack allocation and deallocation procedure. Applications of this technique to multitasking, coroutines, backtracking, label-valued variables, and functional arguments are discussed. In the initial model, a single real processor is assumed, and the implementation assumes multiple-processes coordinate by passing control explicitly to one another. A multiprocessor implementation requires only a few changes to the basic technique, as described.
Research and Advances

General performance analysis of key-to-address transformation methods using an abstract file concept

This paper presents a new approach to the analysis of performance of the various key-to-address transformation methods. In this approach the keys in a file are assumed to have been selected from the key space according to a certain probabilistic selection algorithm. All files with the same number of keys selected from this key space will be suitably weighted in accordance with the algorithm, and the average performance of the transformation methods on these files will be used as the potential of these methods. Using this analysis, methods with the same overall performance can be classified and key distributions partial to certain transformations can be identified. All this can be done analytically. The approach is applied to a group of transformation methods using files whose keys are selected randomly.
Research and Advances

Control structures in Illiac IV Fortran

As part of an effort to design and implement a Fortran compiler on the ILLIAC IV, an extended Fortran, called IVTRAN, has been developed. This language provides a means of expressing data and control structures suitable for exploiting ILLIAC IV parallelism. This paper reviews the hardware characteristics of the ILLIAC and singles out unconventiona features which could be expected to influence langluage (and compiler) design. The implications of these features for data layout and algorithm structure are discussed, and the conclusion is drawn that data allocation rather than code structuring is the crucial ILLIAC optimization problem. A satisfactory method of data allocation is then presented. Language structures to utilize this storage method and express parallel algorithms are described.
Research and Advances

Addendum to a multiple-precision division algorithm

In [1] Mifsud presented a generalized division algorithm for positive integral operands. The uniqueness of the method was advertised as causing each trial cipher in the quotient to be either equal to or one greater than its final replacement. The method of describing the algorithm was intended to stress the simple mathematical facts that were the basis of the algorithm. However, some difficulty arises with the programming and implementation of the algorithm. Article [1] addressed itself to the calculation of the trial cipher by using the first two digits of the partial dividend (step 6); i.e. it formed [pr+1pr/dr], with pr+1 < dr, where the bracket is used to indicate the integral part of its content. Thus the paper conveniently avoided the possibility of overflow which would happen if pr+1 = dr.

Recent Issues

  1. January 2025 cover
    January 2025 Vol. 68 No. 1
  2. December 2024 CACM cover
    December 2024 Vol. 67 No. 12
  3. November 2024 CACM cover
    November 2024 Vol. 67 No. 11
  4. October 2024 CACM cover
    October 2024 Vol. 67 No. 10