Research and Advances
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.
This note describes a rational approximation for the error function which has been found useful in a subroutine as an asymptotic expression of improved accuracy. While the method of the approximation is along well-established lines [1, 2, 3, 4] a brief description may be of interest since the feasibility of a simplified means of determining the basic coefficients is shown for the error function, and this technique may be useful in other cases.
A 48-bit pseudo-random generator
A new 48-bit pseudo-random number generator, suitable for several computers, was tested statistically for randomness to determine its adequacy for use in Monte Carlo programs. Frequency tests, distributions of certain low-order moments, runs up and down, and runs above and below the mean were applied to one-half million generated numbers lying within the interval (0, 1) and to three sets of integers obtained from specified bits within the generated numbers. These tests substantiated the randomness of all numbers except for the set of integers coming from the least significant bits.
A generalized polyphase merge algorithm
The k-generalized Fibonacci numbers are defined as in [1]. A polyphase merge (merging an equal number of sequences from k tapes onto a single unused tape) using k+1 tapes is defined in terms of linear combinations of these numbers. A method is described to output sequences onto k of k+1 tapes after the internal sorting of elements to form sequences. This method will permit a polyphase merge of sequences of sorted elements provided that enough sequences are generated internally to place the proper numbers of sequences on each of the k tapes. For each value of k, there is a set of permissible numbers that can represent the total number of sequences generated during the original output process. If one of these numbers is met exactly and if there is a specific distribution of sequences on the k tapes, then a polyphase merge may proceed. If these conditions are not met, an algorithm is necessary to adjust the numbers of sequences to permit a polyphase merge. This paper describes such an algorithm.
The suggestions in this paper are part of the terminology used in work for the University of Pennsylvania's Office of Computer Research and Education. The work is jointly supported by the National Science Foundation* and the Air Force Office of Scientific Research.†
A note on multiple precision arithmetic
Since computers have means to detect overflow on addition or subtraction, this can be used in a multiple precision addition-subtraction subroutine to obviate a sign analysis. Consider all integers in the computer to be expressed “radix t”, that is, in the form a = a0 + a1t + ··· + antn where ai are of like sign and have magnitudes less than t. t is a positive integer determined by the word length of the computer. Consider the expression c = a ± b = (a0 ± b0) + (a1 ± b1)t + ··· + (an ± bn)tn. Here ai ± bi may exceed the storage capacity of one word or may have a sign different from c.
Glossaries for computing and data processing
At the present time, there is considerable interest and activity in the preparation of a comprehensive glossary of computing and data processing terms. This interest is generated by members of the various national and international professional associations, the computer manufacturers, and the American Standards Association.
An experimental computer program for hypothesis selection
An algorithm for finding the characterization of a class of objects on the basis of a randomly ordered sequence of labeled individual objects—some members of the class, some not—is described. The class is characterized as a disjunction of terms, each term being a conjunction of attributes. “All red, round objects or all square, small objects” is an example. Mechanisms based on this algorithm are described in terms of such properties as the amount of storage available for recording instances and the number of instances which had to be examined until the class was first guessed.
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