Advertisement

Machine controls for analysis of variance

A major problem in using the analysis of variance, as the number of factors increases, is the exponential rise in the number of interactions. Even though the experimenter may not be interested in these interactions it is impossible to ignore them in most experimental designs because of the problem of getting error terms. It is natural therefore to look to the computer to handle the bulk of work involved in computing the interactions. A program device to get the computer to do this is described.

Final examination scheduling

A method for scheduling final examinations to yield a minimal number of student conflicts is described. The “minimization” is achieved by repetitively evaluating a nonlinear set of equations. Imbedded in the process is a random or Monte Carlo selection of assignments. As in such heuristic techniques, the solution may not be optimum and many solutions may be found which yield locally minimal results. Computer programs are described and empirical results given.

Divide-and-correct methods for multiple precision division

A division problem is defined and notation to relate it to the problem of multiple precision operation in a digital computer is introduced. A basic divide-and-correct method for multiple precision division is formulated and its known properties briefly reviewed. Of particular interest is the fact that the method produces at each step a set of precisely three estimates for the desired result, one of which is exact.

A simple automatic derivative evaluation program

A procedure for automatic evaluation of total/partial derivatives of arbitrary algebraic functions is presented. The technique permits computation of numerical values of derivatives without developing analytical expressions for the derivatives. The key to the method is the decomposition of the given function, by introduction of intermediate variables, into a series of elementary functional steps. A library of elementary function subroutines is provided for the automatic evaluation and differentiation of these new variables. The final step in this process produces the desired function's derivative. The main feature of this approach is its simplicity. It can be used as a quick-reaction tool where the derivation of analytical derivatives is laborious and also as a debugging tool for programs which contain derivatives.

Formal parsing systems

Automatic syntactic analysis has recently become important for both natural language data processing and syntax-directed compilers. A formal parsing system G = (V, &mgr;, T, R) consists of two finite disjoint vocabularies, V and T, a many-many map, &mgr;, from V onto T, and a recursive set R of strings in T called syntactic sentence classes. Every program for automatic syntactic analysis determines a formal parsing system. A directed production analyzer (I, T, X, &rgr;) is a nondeterministic pushdown-store machine with internal vocabulary I, input vocabulary T, and all productions of &rgr; in the form: (Z, a) → aY1 ··· Ym, Z, Yi &egr; I, a &egr; T. Every context-free language can be analyzed by a directed production analyzer.

A method of syntax-checking ALGOL 60

A syntax checker was designed based on the syntax of ALGOL as described in the ALGOL 60 Report [Communications of the ACM, May 1960]. Since the definition of the elements of the language is recursive it seemed most desirable to design the syntax checker as a set of mutually recursive processors tied together by subroutines which perform certain bookkeeping functions. Because of the recursive nature of the language and of the syntax checker the problem of recovery after an error required much attention. A method was devised which permits most programs to be checked completely despite errors.

An alternate checksum method

To increase reliability of transmission between magnetic tape and core storage on an IBM 7090/7094, blocks or records of data are often assigned a word called a logical checksum. This is a number derived from the block by some simple algorithm and as unique to it as possible. The method most commonly used to form a checksum is to add together every datum in the block by the ACL (add and carry logical) instruction.

Remark on algorithm 162: Near-minimax polynomial approximations and partitioning of intervals

A method of near-minimax polynomial approximation is described. As a by-product, this method provides a formula for an estimate of the maximum error associated with a given degree of approximation. Using this formula, a partitioning algorithm is obtained for dividing a basic interval into sub-intervals for which approximations of equal degree give equal maximum error.

A compiler-building system developed by Brooker and Morris: including a comprehensive discussion of the major features of the system

In a number of articles published during the past two years, R. A. Brooker and D. Morris (joined by J. S. Rohl in their most recent paper) have presented a very interesting programming system that they have developed for the Ferranti Atlas computer. The present paper describes some of the major features of their system. It expands on some points that the original authors cover briefly, and treats only very lightly some topics to which they devote considerable space. The purpose of this paper is purely expository. Except in some very small details, and in some comments, it does not intentionally depart from or add to the material published in the listed references. In the opinion of the writer, systems of this kind are well worth implementing and will provide useful research tools in the development of languages and techniques. This opinion is true even when such systems turn out to be of limited usefulness in producing “production” compilers, where compiling speed and object code optimization may be considered more important than language flexibility and elegance or generality of system organization.

Characteristics of the FORTRAN CEP language

The FORTRAN CEP languages differs from FORTRAN II mainly because: (1) it extends the variety of the modes for real quantities; (2) it allows suitable mixtures, in an input/output list or in an expression, of quantities that occur under different modes; (3) it makes it possible to address a greater number of input/output equipment; and (4) it removes the restrictions on the complexity of the list of quantities to be transmitted between the magnetic core memory and the drum or the magnetic tape units.

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More