Theory
Logic tables are an excellent way of developing and expressing the logic required in procedures, operations, systems and circuits. A set of rules for writing and using logic tables is explained by means of some simple examples. Then the logic structure of a vending machine is given in which two logic tables are used. Logic tables are two-dimensional in nature, enabling us to fully express and consider both the sequential and parallel aspects of logic. They can be compiled directly into a computer program and so eliminate the need for flow charting and hand coding.
The ALGOL 60 Report,* when first encountered, seems to describe a very complex language which will be difficult to learn. The “metalinguistic formulae” admirably serve the purpose of precisely specifying a language, but they are certainly not very readable for a beginner. However, experience has shown that once the report is explained it is in fact easy to learn ALGOL and to write algorithms in it. The language is so general and powerful it can handle an enormous class of problems.
It is not hard to learn those parts of ALGOL present in other compiler languages: how to write assignment and go to and for statements, etc. Indeed, a lot of the unnecessary restrictions imposed by other compiling languages have finally been lifted. But ALGOL also allows many unobvious things to be written, as we will see later, and herein lies a problem: ALGOL seems to have become too general. So many restrictions have been lifted that a lot of technical details crop up which are hard to learn and to use correctly. In this paper some of the more obscure features of the language are considered and their usefulness is discussed. Remarks are based on the authors' interpretations of the ALGOL 60 Report.
An indirect chaining method for addressing on secondary keys
Methods for entering random-access files on the basis of one key are briefly surveyed. The widely used chaining method, based on a pseudo-random key transformation, is reviewed in more detail. An efficient generalization of the chaining method which permits recovery on additional keys is then presented.
Comparison of iterative methods for the calculation of nth roots
Three iterative methods for calculation of nth roots (including one proposed by the author) are compared in two ways: (1) Theoretical convergence estimates are given. (2) A new macro-compiler which estimates machine running time is used to compare the running time of the three methods for a variety of input data.
Recent contributions on the subject of counting the ones or reversing the digits of a binary word have prompted some rather more general observations on bitwise operations which treat each binary digit in a computer word as a separate entity.
Two subroutines for symbol manipulation with an algebraic compiler
The current University of North Carolina version of the IT Compiler [1, 2], as well as the GAT Compiler of Arden and Graham of the University of Michigan [3], have special “alphabetic read” and “alphabetic type” statements. On the UNIVAC 1105 these features allow the direct input or output of six-symbol words, each symbol being either an alphanumeric or special character. Internally, each symbol is represented by a six-bit binary coded decimal code. On the IBM 650, five-symbol words are processed, with each symbol represented internally by a two-digit decimal code.
On finding minimum routes in a network with turn penalties
In some highway engineering work it is necessary to find a route between two points in a city's street and freeway network such that a function of time and distance is minimized. Such a route is called a “best” route, and finding such a route is not a difficult task. The Moore Algorithm1 accomplishes this quite nicely, and using that algorithm and a procedure developed by Hoffman and Pavley2 (programmed by them for the IBM 650) it is even possible to find the “Nth best path.”
Comment on a paper on parallel processing
The article by Lynn Yarbrough on Parallel Processing in the October Communications is interesting since it attracts attention to a subject which needs to be given increased consideration. His indictment of manufacturers for failing to provide what he feels is minimal to realizing the advantages of multi-programming is not applicable to STRETCH, however. It may be recalled that his specific complaint concerns the lack of protection of any program or monitor from the unpredictable actions of any other program. On page 15 of the STRETCH Data Processing System Reference Manual, we read: Address monitoring facilities are provided … The upper and lower boundaries of the storage area to be defined are placed in two address boundary registers. An alarm will be given when an address falls either inside or outside the defined area, whichever is desired. Storing in protected areas is normally suppressed.
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 InvolvedCommunications 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