Advertisement

Research and Advances

Dynamic storage allocation for an information retrieval system

This paper presents an information retrieval problem whose programming solution included dynamic storage allocation. Allocatable machine code is defined, and an assembly program to produce allocatable machine code is described. The work reported on was done as part of Project ACSI-MATIC1 which is concerned with the application of computer techniques to the activities of certain headquarters military intelligence operations of the U.S. Army [1, 2].
Research and Advances

Program organization and record keeping for dynamic storage allocation

The material presented in this paper is part of the design plan of the core allocation portion of the ACSI-MATIC Programming System. Project ACSI-MATIC is concerned with the application of computer techniques to the activities of certain headquarters military intelligence operations of the U.S. Army. In describing features of organization and record keeping there has been no attempt at completeness, but rather an exploration of the salient aspects of the system to some reasonable level of technical detail.1
Research and Advances

The case for dynamic storage allocation

Programming is the process of developing a scheme for solving a problem using a computer. The programmer's task is to minimize the cost of achieving a solution. This cost involves the interrelated factors of planning, coding, debugging, storage space, and computation time. The storage allocation problem is the subtask of assigning the space-taking objects (programs and data) to the available storage devices (core, drum, disc and magnetic tape).
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.

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