Advertisement

Research and Advances

Symbolic derivatives without list processing, subroutines, or recursion

A routine has been developed which computes and prints out the symbolic derivative of an absolutely continuous elementary function of one or several variables. No use is made of list processing languages. The chain rule is applied and the result is edited to produce results as elegant and efficient as those obtained by hand computation. A subset may be imbedded in a formula translator to introduce a differentiation operator into an “algebraic” programming language.
Research and Advances

File-handling within FORTRAN

This note describes some FORTRAN subroutines to facilitate handling of tape files. They allow symbolic naming or information files, without violating the casual scientific programmer's idea of simplicity. Some comments on two years use of these subroutines are given.
Research and Advances

High speed compilation of efficient object code

A three-pass compiler with the following properties is briefly described: The last two passes scan an intermediate language produced by the preceding pass in essentially the reverse of the order in which it was generated, so that the first pass is the only one which has to read the relatively bulky problem-oriented input. The double scan, one in either direction, performed by the first two passes, allows the compiler to remove locally constant expressions and recursively calculable expressions from loops and to do the important part of common subexpression recognition. Optimization such as the effective use of index registers, although as important, is not discussed since the object code which would be most efficient is highly machine dependent. The discussion is in terms of a FORTRAN-like language, although the technique is applicable to most algebraic languages.
Research and Advances

The predictive analyzer and a path elimination technique

Some of the characteristic features of a predictive analyzer, a system of syntactic analysis now operational at Harvard on an IBM 7094, are delineated. The advantages and disadvantages of the system are discussed in comparison to those of an immediate constituent analyzer, developed at the RAND Corporation with Robinson's English grammar. In addition, a new technique is described for repetitive path elimination for a predictive analyzer, which can now claim efficiency both in processing time and core storage requirement.
Research and Advances

The structure of yet another ALGOL compiler

A high-speed “top down” method of syntax analysis which completely eliminates “back-up” of the source string has been implemented in a convenient macro-language. A technique of simulation at compile time of the use of a conventional run-time stack enables the generation of code for expressions which minimizes stores, fetches and stack-pointer motion at run time, while properly treating recursion and side effects of procedures. Block structure and recursion are handled without need for interpretive methods at run time. The “context problem” in the transmission to recursive procedures of parameters “called by name” is solved in a manner which permits the handling of the common cases of simple expressions and array identifiers with particular efficiency.
Research and Advances

Conventions for the use of symbols in the preparation of flowcharts for information processing systems

This paper is intended as an outline of the various conventions which are being considered for the use of flowchart symbols in the preparation of all types of flowcharts for information processing systems. The conventions are applied to the use of the symbols appearing in the proposed American Standard Flowchart Symbols for Information Processing Systems. This paper is concerned with the use of the proposed American Standard Flowchart Symbols and not with the symbols per se.
Research and Advances

The organization of structured files

A data file is an integral part of a data processing system. In many systems, the selection of an organization for the data within the file can be critical to the system's operating efficiency. This paper provides the systems designer with an information source which describes ten techniques that may be employed for organizing structured data. The characteristics of the organizations described are application independent, thus providing the designer with a reference which allows him to limit the number of file organizations he must consider for his system.

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