Advertisement

Research and Advances

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.
Research and Advances

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.
Research and Advances

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.
Research and Advances

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.
Research and Advances

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.
Research and Advances

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.
Research and Advances

Autosate

An automated data system analysis technique is described. The technique is designed to alleviate some of the principal problems that beset current analysis—large data workloads, long span of time between project inception and system operational date, the lack of explicit directions for conducting data system analysis and using the results, and the lack of a technique to control data system changes throughout its lifetime. The analysis is geared to determining workload, relationships and storage characteristics of documents in the information network automatically.
Research and Advances

Experimental personalized array translator system

A system designed for intimate man-machine interaction in a general-purpose problem-solving environment is experimentally operational. The system utilizes an array-oriented symbolic source language containing powerful statement types. These include numeric, Boolean, relational and selection operators on operands which can be entire arrays. The system also permits simple specification of test and argument arrays in single statements. The completely symbolic operating system includes display and entry of program and data. Sequence control is aided by an interrupt switch which allows the user to interact with the program during execution. In addition to normal stored program sequencing, the system provides trace options and the ability to enter any statement for immediate execution. Present implementation of the system is with an interpretive translator on an IBM 1620 computer.
Research and Advances

A method for comparing the internal operating speeds of computers

First, a table of frequencies of various types of operations is prepared based on experience in similar applications or, perhaps, on actual counts if these are available. Table 1 shows such a frequency table. Next, the total weighted execution time for a given operation type is obtained by multiplying the time required for the operation by the frequency count. Finally, an “average” operation time is calculated by summing overall operation types and dividing by the sum of the frequency counts. Table 2 shows the computation for the IBM 7090. Table 3 shows a comparison of average and relative speeds for several current computers for the particular application using the IBM 7090 as a reference base.

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