Advertisement

Research and Advances

A general formalation of storage allocation

Formalization of a general computer storage allocation process is attempted. With a given computer M is associated a fictitious computer M′ essentially identical to M except in respect to possession of unbounded primary storage. Mappings of the total storage set (internal and external) of M into the direct address set of M′ are introduced. A program sequence P for M′ is termed M-admissible (relative to a specific execution time period) if there is a mapping under which P and its effective data referents are all located in the direct address set of M. Storage allocation is considered as a process of establishing for an arbitrary M′ program a sequence of mappings, a decoupling of the program into M-admissible subprograms and a linking set of interludes. An existence proof in terms of a completely interpretive M program as indicated. Some special cases are discussed. Various restrictions on generality of M′ programs are considered under which more practical realization of allocation processes becomes tractable.
Research and Advances

COBOL: a sample problem

COBOL (COmmon Business Oriented Language) is an English Language programming system which is capable of being implemented on a wide variety of electronic digital computers for use in the solution of business data processing problems. The idea was conceived in May, 1959 at a meeting called in the Pentagon by Mr. Charles Phillips of the Office of the Assistant Secretary of Defense, Comptroller. The purpose of this meeting was to consider the desirability and the feasibility of establishing a common language for the programming of electronic computers for data processing. Representatives from computer user installations, both government and industrial, computer manufacturers, universities, and others concerned with computers were present. There was almost unanimous agreement that the project was both desirable and feasible. The COnference on DAta SYstems Languages (CODASYL) was established, and three committees were defined and staffed. These committees were the Short Range Committee, the Intermediate Range Committee, and the Long Range Committee. Each committee had its own goal and its own time scale. The coordination of the work to be performed was to be accomplished by an Executive Committee.
Research and Advances

An algorithm for equivalence declarations

Many algebraic translators provide the programmer with a limited ability to allocate storage. Of course one of the most desirable features of these translators is the extent to which they remove the burden of storage allocation from the programmer. Nevertheless, there are situations in which one wishes to make certain vectors and arrays contiguous, coincident, or overlapping. This is made possible in FORTRAN by the use of COMMON and EQUIVALENCE statements, in MAD by the use of PROGRAM COMMON, ERASABLE, and EQUIVALENCE statements, etc.
Research and Advances

Operational compatability of systems—conventions

This project is engaged in (a) a program of research into the application of the concepts and techniques of modern data processing to the design of mechanical parts, and (b) the further development of automatic programming systems for numerically controlled machine tools. The project is a cooperative venture between the Computer Applications Group of the Electronic Systems Laboratory and the Design and Graphics Division of the Mechanical Engineering Department, and is sponsored by the Manufacturing Methods Division of the USAF Air Material Command through Contract AF-33(600)-40604.
Research and Advances

Logic-structure tables

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

ALGOL 60 confidential

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

Bitwise operations

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

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

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

The BKS system for the Philco-2000

The BKS System is a program sequencing system designed for the Philco-2000 computer to meet operational requirements of the Bettis and Knolls Atomic Power Laboratories. The Philco-2000 on which this system is being used has a 32,768-word memory, 16 tape transports on-line, and an electric typewriter on-line. The card-to-tape, card-to-printer, tape-to-card, tape-to-printer, and routine tape-to-tape operations are performed with off-line equipment.
Research and Advances

Statistical programs at the University of North Carolina

The Research Computation Center at the University of North Carolina has access to a UNIVAC 1105 general purpose digital computer for use in connection with data processing problems, theoretical studies, and computer research. With respect to data processing problems, three major statistical programs have been written: General Contingency Table Analysis for Questionnaire Data Analysis of Variance (ANOVA) Multiple Regression and Correlation Some of the concepts and ideas in these programs are new and may be of interest to other computation centers. Hence they are described below. The programs were written in the Remington Rand UNICODE language. Thus it would not be difficult to translate them into any other algebraic language, such as ALGOL, FORTRAN, or IT.

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