Advertisement

Research and Advances

An undergraduate program in computer science—preliminary recommendations

The Curriculum Committee on Computer Science (C3S) of the Association for Computing Machinery has been considering curriculum problems for approximately three years. During the early part of this period, a number of informal sessions were held with computer people at various national meetings. In the latter part of this three-year period, the Committee has been formally organized and has made a definite effort to arrive at a concrete suggestions for a curriculum.
Research and Advances

Applications of differential equations in general problem solving

A large class of problems leading to digital computer processing can be formulated in terms of the numerical solution of systems of ordinary differential equations. Powerful methods are in existence for the solution of such systems. A good general purpose routine for the solution of such systems furnishes a powerful tool for processing many problems. This is true from the point of view of ease of programming, ease of debugging, and minimization of computer time. A number of examples are discussed in detail.
Research and Advances

On reversible subroutines and computers that run backwards

A computer design is described which permits subroutines to be executed backward as well as forward, either with their instructions unchanged or replaced with conjugate instructions. It is shown that using this concept a number of new subroutine types can be developed with rather unusual properties. Since these properties are analogous to certain matrix operations, a arallel nomenclature is suggested for their classification.
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.

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