scispace - formally typeset
Search or ask a question

Showing papers in "Communications of The ACM in 1971"


Journal ArticleDOI
TL;DR: The process of successive refinement of specifications is illustrated by a short but nontrivial example, from which a number of conclusions are drawn regarding the art and the instruction of programming as discussed by the authors.
Abstract: The creative activity of programming—to be distinguished from coding—is usually taught by examples serving to exhibit certain techniques. It is here considered as a sequence of design decisions concerning the decomposition of tasks into subtasks and of data into data structures. The process of successive refinement of specifications is illustrated by a short but nontrivial example, from which a number of conclusions are drawn regarding the art and the instruction of programming.

728 citations


Journal ArticleDOI
C. W. Gear1
TL;DR: An integration technique for the automatic solution of an initial value problem for a set of ordinary differential equations and a criterion for the selection of the order of approximation are proposed.
Abstract: An integration technique for the automatic solution of an initial value problem for a set of ordinary differential equations is described. A criterion for the selection of the order of approximation is proposed. The objective of the criterion is to increase the step size so as to reduce solution time. An option permits the solution of “stiff” differential equations. A program embodying the techniques discussed appears in Algorithm 407.

633 citations


Journal ArticleDOI
TL;DR: The problem of the mutual exclusion of several independent processes from simultaneous access to a “critical section” is discussed for the case where there are two distinct classes of processes known as “readers” and “writers.”
Abstract: The problem of the mutual exclusion of several independent processes from simultaneous access to a “critical section” is discussed for the case where there are two distinct classes of processes known as “readers” and “writers.” The “readers” may share the section with each other, but the “writers” must have exclusive access. Two solutions are presented: one for the case where we wish minimum delay for the readers; the other for the case where we wish writing to take place as early as possible.

556 citations


Journal ArticleDOI
TL;DR: The assignment problem, together with Munkres proposed algorithm for its solution in square matrices, is presented and an extension of this algorithm which permits a solution for rectangular matrices is developed.
Abstract: The assignment problem, together with Munkres proposed algorithm for its solution in square matrices, is presented first. Then the authors develop an extension of this algorithm which permits a solution for rectangular matrices.Timing results obtained by using an adapted version of Silver's Algol procedure are discussed, and a relation between solution time and problem size is given.

530 citations


Journal ArticleDOI
TL;DR: The original work of Gale and Shapley on an assignment method using the stable marriage criterion has been extended and the algorithm derived is proved to satisfy all the conditions of the problem.
Abstract: The original work of Gale and Shapley on an assignment method using the stable marriage criterion has been extended to find all the stable marriage assignments. The algorithm derived for finding all the stable marriage assignments is proved to satisfy all the conditions of the problem. Algorithm 411 applies to this paper.

343 citations


Journal ArticleDOI
TL;DR: A technique for recognizing systems of lines is presented, in which the heuristic of the problem is not embedded in the recognition algorithm but is expressed in a figure of merit, which allows for greater flexibility and adequacy in the particular problem.
Abstract: : A technique for recognizing systems of lines is presented, in which the heuristic of the problem is not embedded in the recognition algorithm but is expressed in a figure of merit. A multistage decision process is then able to recognize in the input picture the optimal system of lines according to the given figure of merit. Due to the global approach, greater flexibility and adequacy in the particular problem is achieved. The relation between the structure of the figure of merit and the complexity of the optimization process is then discussed. (Modified author abstract)

324 citations



Journal ArticleDOI
TL;DR: An elementary outline of the theorem-proving approach to automatic program synthesis is given, without dwelling on technical details, and the relation between the version of the induction rule used and the form of the program constructed is explored.
Abstract: An elementary outline of the theorem-proving approach to automatic program synthesis is given, without dwelling on technical details. The method is illustrated by the automatic construction of both recursive and iterative programs operating on natural numbers, lists, and trees.In order to construct a program satisfying certain specifications, a theorem induced by those specifications is proved, and the desired program is extracted from the proof. The same technique is applied to transform recursively defined functions into iterative programs, frequently with a major gain in efficiency.It is emphasized that in order to construct a program with loops or with recursion, the principle of mathematical induction must be applied. The relation between the version of the induction rule used and the form of the program constructed is explored in some detail.

269 citations


Journal ArticleDOI
TL;DR: These parser-construction techniques have been implemented and by direct comparison proved to be superior to precedence techniques, not only in the range of grammars covered, but also in the speed of parser construction and in the size and speed of the resulting parsers.
Abstract: A class of context-free grammars, called the “Simple LR(k)” or SLR(k) grammars is defined. This class has been shown to include weak precedence and simple precedence grammars as proper subsets. How to construct parsers for the SLR(k) grammars is also shown. These parser-construction techniques are extendible to cover all of the LR(k) grammars of Knuth; they have been implemented and by direct comparison proved to be superior to precedence techniques, not only in the range of grammars covered, but also in the speed of parser construction and in the size and speed of the resulting parsers.

254 citations


Journal ArticleDOI
TL;DR: A language, BLISS, is described, designed so as to be especially suitable for use in writing production software systems for a specific machine (the PDP-10): compilers, operating systems, etc.
Abstract: A language, BLISS, is described. This language is designed so as to be especially suitable for use in writing production software systems for a specific machine (the PDP-10): compilers, operating systems, etc. Prime design goals of the design are the ability to produce highly efficient object code, to allow access to all relevant hardware features of the host machine, and to provide a rational means by which to cope with the evolutionary nature of systems programs. A major feature which contributes to the realization of these goals is a mechanism permitting the definition of the representation of all data structures in terms of the access algorithm for elements of the structure.

231 citations


Journal ArticleDOI
TL;DR: A proof is given of the correctness of the algorithm “Find” and some conclusions relating to general programming methodology are drawn.
Abstract: A proof is given of the correctness of the algorithm “Find.” First, an informal description is given of the purpose of the program and the method used. A systematic technique is described for constructing the program proof during the process of coding it, in such a way as to prevent the intrusion of logical errors. The proof of termination is treated as a separate exercise. Finally, some conclusions relating to general programming methodology are drawn.


Journal ArticleDOI
TL;DR: In this paper, the authors describe a computer-aided heuristic technique which uses only a modest amount of computer time in real time to solve large (100-200) point problems.
Abstract: The traveling salesman problem, (form a circuit through N points with no subloops in such a way as to minimize the length of the circuit), is a close kin to many board wiring problems. It has been attacked by many mathematical methods with only meager results. Only for special forms of the problem or for problems with relatively few points can it be solved exactly even using very large amounts of computer time. Heuristic procedures have been proposed and tested with only slightly better results. This paper will describe a computer-aided heuristic technique which uses only a modest amount of computer time in real time to solve large (100-200) point problems. This technique takes advantage of both the computer's and the human's problem solving abilities. The computer is not asked to solve the problem in a brute force way as is the case in many of today's heuristics but it is asked to organize the data for the human in a fashion that allows the human to solve the problem easily.The techniques employed in this paper require that the computer and the human cooperate to find the solution to the problem in reasonable amounts of both of their times. The computer initially uses a series of heuristics that produce groups of points and some partial connections of these points. The human is asked to connect the points within the groups and then connect the groups in a manner that produces a circuit and appears to the human to maximize the ratio of enclosed area to perimeter. The computer takes this solution and uses another set of heuristics to make improvements. The solution is displayed to the human and if he is satisfied the procedure stops; if not the former procedure is repeated until the human is satisfied that cost for finding a better solution exceeds his estimate of the best possible improvement that could be obtained by further work. The heuristic procedures seek to group points around information obtained from solving a series of mathematical programming problems (assignment problems) and some observed correlations between these problems and the traveling salesman problem.The results are very good. The man-machine interaction solution for all problems in the literature is within one per cent of the solution for a fraction of the computer time. The experience to date indicates that the technique can be taught to inexperienced persons and their results, after training, are similar to those of the authors'.

Journal ArticleDOI
TL;DR: Three algorithms are described (all using Monte Carlo methods) which were designed to solve the problem of estimating gray levels of a digital picture at the individual points from the sums of the gray levels along straight lines (projections) at a few angles.
Abstract: There are situations in the natural sciences and medicine (e.g. in electron microscopy and X-ray photography) in which it is desirable to estimate the gray levels of a digital picture at the individual points from the sums of the gray levels along straight lines (projections) at a few angles. Usually, in such situations, the picture is far from determined and the problem is to find the “most representative” picture. Three algorithms are described (all using Monte Carlo methods) which were designed to solve this problem. The algorithms are applicable in a large and varied number of fields. The most important uses may be the reconstruction of possibly asymmetric particles from electron micrographs and three-dimensional X-ray analysis.

Journal ArticleDOI
TL;DR: Tradeoff curves are developed to show minimal cost of file usage by grouping various partially combined indices under conditions offile usage with different fractions of retrieval and update.
Abstract: In a paper in the November 1970 Communications of the ACM, V.Y. Lum introduced a technique of file indexing named combined indices. This technique permitted decreased retrieval time at the cost of increased storage space. This paper examines combined indices under conditions of file usage with different fractions of retrieval and update. Tradeoff curves are developed to show minimal cost of file usage by grouping various partially combined indices.

Journal ArticleDOI
Vincent Y. Lum1, P. S. T. Yuen1, M. Dodd1
TL;DR: The intricacy of the generalized radix transformation method has motivated us to conduct further studies of the technique and it is more appropriate to change the label of that transformation in [1] from "Lin's method" to "generalized radix Transformation method" and use this term here.
Abstract: In an earlier paper by Lum, Yuen, and Dodd [1] experimental results comparing six commonly used key-to-address transformation techniques were presented. One transformation in that study referred to as \"Lin's method\" is an elaborate technique based on radix transformation. Andrew Lin has since pointed out to the authors that his method of transformation [2] consists of not just a radix transformation algorithm but also the specific ways the values of p and q are chosen as well as hardware implementation to carry out the steps of this transformation in an efficient manner. Since our study was intended for general radix transformations rather than Lin's specific implementation, we think it is more appropriate to change the label of that transformation in [1] from \"Lin's method\" to \"generalized radix transformation method\" and we use this term here. The intricacy of the generalized radix transformation method has motivated us to conduct further studies of the technique. The additional results are presented General permission to republish, but not for profit, all or part of this material is granted, provided that reference is made to this publication, to its date of issue, and to the fact that reprinting privileges were granted by permission of the Association for Computing Machinery. after a brief description of the basic algorithm used in this generalized radix transformation method. As reported in [1], a key is expressed in radix p and the result taken modulo qm where p and q are relatively prime and m is a positive integer. A given key is first written as a simple binary bit string. These bits are then grouped to form p-nary digits. The result is expressed as a decimal number which, taken modulo q% gives the address. To simplify the selection of p, q, and m,p was set to equal q + 1, and m was chosen so that qm approximates the number of addresses available. Further analysis of this generalized radix transformation technique shows that in the process of grouping bits to obtain a decimal number on the basis of p radix, alternatives exist. In the case of p = 8, as given in [l], 3 bits will be grouped. Thus the binary string 100101110101 will become a decimal number of 5 q-6 X 8-1-5 X 82 q-4 X 83 = 2421. However, if p = 19, then it is not clear how many bits are to be grouped. Grouping by …

Journal ArticleDOI
Shi-Kuo Chang1
TL;DR: A characterization of patterns that are reconstructable from their projections is given and it is shown that an unambiguous pattern can be perfectly reconstructed in time and that a pattern similar to an ambiguous pattern can also be constructed in time.
Abstract: Given the horizontal and vertical projections of a finite binary pattern f, can we reconstruct the original pattern f? In this paper we give a characterization of patterns that are reconstructable from their projections. Three algorithms are developed to reconstruct both unambiguous and ambiguous patterns. It is shown that an unambiguous pattern can be perfectly reconstructed in time m × n and that a pattern similar to an ambiguous pattern can also be constructed in time m × n, where m, n are the dimensions of the pattern frame.

Journal ArticleDOI
TL;DR: A notation and formalism is presented which could be part of a programming language, which allows a programmer who has expressed the semantics of an algorithm in terms of the graphs to then specify the implementation of some of his data structures in order to gain efficiency.
Abstract: This paper presents a notation and formalism for describing the semantics of data structures. This is based on directed graphs with named edges and transformations on these graphs. In addition, and implementation facility is described which could be part of a programming language, which allows a programmer who has expressed the semantics of an algorithm in terms of the graphs to then specify the implementation of some of his data structures in order to gain efficiency.

Journal ArticleDOI
TL;DR: A new file structure for attribute based retrieval is proposed that allows queries involving arbitrary Boolean functions of the attribute-value pairs to be processed without taking intersections of lists.
Abstract: A new file structure for attribute based retrieval is proposed in this paper. It allows queries involving arbitrary Boolean functions of the attribute-value pairs to be processed without taking intersections of lists. The structure is highly dependent on the way in which the file is to be used and is uniquely determined by the specification of the allowed queries. Thus, for example, the structure for retrieval on the basis of ranges of values on a given attribute would be very different from one where only retrieval on the basis of a single value is permitted.The file organization being proposed is based on the atoms of a Boolean algebra generated by the queries. The desirable properties claimed for this structure are proved, and file maintenance questions are discussed.

Journal ArticleDOI
TL;DR: The processor developed in this paper stresses the simultaneous operation of the adder, shifter, masker, and testing facilities of the processor, and a microassembly language is developed and the overhead involved in subroutine linkages is analyzed.
Abstract: A dynamically microprogrammed processor is characterized by a small (4 ~ 64-bit word) read-write \"micro\" storage. The access time of this storage is similar to the cycle time of the machine (50-100 nsec). This microstorage is used to contain both data and subroutines. The (micro) instructions in such a processor differ from the conventional in that they perform only purely combinatorial operations; sequencing is under the control of the microinstruction. The presence of the read-write microstorage permits a more flexible assignment of resources than the read-only storage. In particular, the processor developed in this paper stresses the simultaneous operation (within the microinstruction) of the adder, shifter, masker, and testing facilities of the processor. A microassembly language is developed and the overhead involved in subroutine linkages is analyzed. The efficiency of a flexible software linkage scheme is examined as to its overhead for various subroutine characteristics. Finally, three examples of problem-oriented programming are considered and the resulting coding is compared against a System/360 assembly language version, with the technology normalized.

Journal ArticleDOI
TL;DR: Habermann's method of deadlock prevention is discussed, where deadlock is defined as a system state from which resource allocations to certain processes are not possible.
Abstract: Habermann's method of deadlock prevention is discussed, where deadlock is defined as a system state from which resource allocations to certain processes are not possible. It is shown that the scheduler may introduce “artificial” deadlocks which Habermann's method does not prevent. Permanent blocking is the situation where certain processes never receive their resource requests. It is shown that deadlock prevention does not necessarily eliminate permanent blocking. A method of preventing permanent blocking is given.


Journal ArticleDOI
TL;DR: Complex interval arithmetic is defined using real interval arithmetic to assure smallest possible resulting intervals.
Abstract: Complex interval arithmetic is defined using real interval arithmetic. Complex interval division is defined so as to assure smallest possible resulting intervals.

Journal ArticleDOI
TL;DR: An algorithm is given for accurately summing n t-digit floating-point numbers and the relative error in the computed sum is at most ⌈(“t” + 1)/“&ngr;”, which can be corrected to full t-digit accuracy.
Abstract: cumulation of floating-point sums is considered on a computer which performs t-digit base b floating-point addition with exponents in the range —m to M. An algorithm is given for accurately summing n t-digit floating-point numbers. Each of these n numbers is split into q parts, forming q·n t-digit floating-point numbers. Each of these is then added to the appropriate one of e auxiliary t-digit accumulators. Finally, the accumulators are added together to yield the computed sum. In all, q·n + e - 1 t-digit floating-point additions are performed. Let n = ⌈(M + m + 1)/(e + 1)⌉. If n ≤ (1/q)b⌈((q-1)/q)t⌈-n+1 (*), then the relative error in the computed sum is at most ⌈(t + 1)/n⌉b1-t. Further, with an additional q + e - 1 t-digit additions, the computed sum can be corrected to full t-digit accuracy.For example, for the IBM/360 (b = 16, t = 14, M = 63, m = 64), typical values for q and e are q = 2 and e = 32.In this case, (*) becomes n ≤ 1/2 × 164 = 32,768, and we have ⌈(t + 1)/n⌉b1-t = 4 × 16-13.

Journal ArticleDOI
TL;DR: Preliminary conclusions are presented on the need for education in administrative information systems, and appropriate college curricula and courses are suggested, and the role of professional societies and organizations using computers is discussed.
Abstract: The ACM Curriculum Committee on Computer Education for Management has been carrying out a study on “Curriculum Development in Management Information Systems Education in Colleges and Universities” under a grant from the National Science Foundation. This position paper provides a framework for the study.Preliminary conclusions are presented on the need for education in administrative information systems, and appropriate college curricula and courses are suggested. Also, the role of professional societies and organizations using computers is discussed, and the plans of the Committee are outlined.The initial approach of the Committee has been to describe the education necessary for the effective use of computers in organizations, to classify the positions for which education is required, and to survey educational programs now available.


Journal ArticleDOI
A. Michael Noll1
TL;DR: A television-like scanned-display system has been successfully implemented on a Honeywell DDP-224 computer installation and results thus far indicate that flicker-free displays of large amounts of data are possible with reasonably fast graphical interaction.
Abstract: A television-like scanned-display system has been successfully implemented on a Honeywell DDP-224 computer installation. The scanned image is stored in the core memory of the computer, and software scan conversion is used to convert the rectangular coordinates of a point to the appropriate word and bit in an output display array in core storage. Results thus far indicate that flicker-free displays of large amounts of data are possible with reasonably fast graphical interaction. A scanned image of size 240 X 254 points is displayed at a 30 frame-per-second rate.

Journal ArticleDOI
TL;DR: An alternative approach to display system design which avoids the use of structured display files is suggested, which employs display procedures to generate information for display and includes transformations within calls to these procedures.
Abstract: Although the use of structured display files is widespread in interactive computer graphics, these structures present a number of problems which tend to restrict their generality and usefulness. This paper discusses some of these problems, and suggests an alternative approach to display system design which avoids the use of structured display files.This technique employs display procedures to generate information for display. By including transformations within calls to these procedures it is possible both to simplify the specification of pictures and to speed up their generation. Display procedures permit picture elements to be defined conditionally and also facilitate the processing of inputs from pointing devices. The paper is illustrated by examples from a version of the EULER language in which display procedures were implemented.

Journal ArticleDOI
TL;DR: An inductive method for proving things about recursively defined functions is described and is shown to be useful for proving partial functions equivalent and thus applicable in proofs about interpreters for programming languages.
Abstract: An inductive method for proving things about recursively defined functions is described. It is shown to be useful for proving partial functions equivalent and thus applicable in proofs about interpreters for programming languages.

Journal ArticleDOI
John M. Chambers1