.I 1 .T Preliminary Report-International Algebraic Language .A Perlis, A. J. Samelson,K. .I 2 .T Extraction of Roots by Repeated Subtractions for Digital Computers .A Sugai, I. .I 3 .T Techniques Department on Matrix Program Schemes .A Friedman, M. D. .I 4 .T Glossary of Computer Engineering and Programming Terminology .I 5 .T Two Square-Root Approximations .A Wadey, W. G. .I 6 .T The Use of Computers in Inspection Procedures .A Muller, M. E. .I 7 .T Glossary of Computer Engineering and Programming Terminology .I 8 .T On The Equivalence and Transformation of Program Schemes .A Friedman, M. D. .I 9 .T Proposal for an UNCOL .A Conway, M. E. .I 10 .T Glossary of Computer Engineering and Programming Terminology .I 11 .T The Problem of Programming Communication with Changing Machines A Proposed Solution-Part 2 .A Strong, J. Wegstein, J. Tritter, A. Olsztyn, J. Mock, O. Steel, T. .I 12 .T Error Estimation in Runge-Kutta Procedures .A Call, D. H. Reeves, R. F. .I 13 .T Glossary of Computer Engineering and Programming Terminology .I 14 .T The Problem of Programming Communication with Changing Machines A Proposed Solution (Part 1) .A Strong, J. Wegstein, J. Tritter, A. Olsztyn, J. Mock, O. Steel, T. .I 15 .T Recursive Curve Fitting Technique .A Giblin, J. .I 16 .T Secant Modification of Newton's Method .A Jeeves, T. A. .I 17 .T On Programming of Arithmetic Operations .A Ershov, A. P. .I 18 .T Simple Automatic Coding Systems .A Adams, E. S. Schlesinger, S. I. .I 19 .T Glossary of Computer Engineering and Programming Terminology .I 20 .T Accelerating Convergence of Iterative Processes .W A technique is discussed which, when applied to an iterative procedure for the solution of an equation, accelerates the rate of convergence if the iteration converges and induces convergence if the iteration diverges. An illustrative example is given. .A Wegstein, J. H. .I 21 .T Algebraic Formulation of Flow Diagrams .A Voorhees, E. A. .I 22 .T Unusual Applications Department--Automatic Implementation of Computer Logic .A Morris, E. F. Wohr, T. E. .I 23 .T Binary and Truth-Function Operations on a Decimal Computer with an Extract Command .A Kautz, W. H. .I 24 .T An Improved Decimal Redundancy Check .A Sisson, R. L. .I 25 .T General Purpose Programming Systems .A Holt, A. W. .I 26 .T A Subroutine Method for Calculating Logarithms .A Bemer, R. W. .I 27 .T Note On Empirical Bounds For Generating Bessel Functions .A Randels, J. B. Reeves, R. F. .I 28 .T Request for Methods or Programs .A Corley, H. P. T. .I 29 .T Need for an Algorithm .A Selden, W. .I 30 .T Algorithm for Analyzing Logical Statements to Produce a Truth Function Table .A Wolpe, H. .I 31 .T IBM 704 Code-Nundrums .A Grumette, M. .I 32 .T Variable-Width Tables with Binary-Search Facility .A Halpern, M. .I 33 .T A Programmed Binary Counter For The IBM Type 650 Calculator .A Kenny, B. C. Hunter, J. A. .I 34 .T Tables for Automatic Computation .A Wilf, H. S. .I 35 .T A Machine Method for Square-Root Computation .A Bemer, R. W. .I 36 .T A Queue Network Simulator for the IBM 650 and Burroughs 220 .A Conway, R. W. Johnson, B. M. Maxwell, W. L. .I 37 .T Impact of Computer Developments .A Humphrey, S. M. .I 38 .T A Proposed Interpretation in ALGOL .A Irons, E. T. Acton, F. S. .I 39 .T The Secant Method for Simultaneous Nonlinear Equations .W A procedure for the simultaneous solution of a system of not-necessarily-linear equations, a generalization of the secant method for a single function of one variable, is given. .A Wolfe, P. .I 40 .T Fingers or Fists? (The Choice of Decimal or Binary Representation) .W The binary number system offers many advantages over a decimal representation for a high-performance, general-purpose computer. The greater simplicity of a binary arithmetic unit and the greater compactness of binary numbers both contribute directly to arithmetic speed. Less obvious and perhaps more important is the way binary addressing and instruction formats can increase the overall performance. Binary addresses are also essential to certain powerful operations which are not practical with decimal instruction formats. On the other hand, decimal numbers are essential for communicating between man and the computer. In applications requiring the processing of a large volume of inherently decimal input and output data, the time for decimal-binary conversion needed by a purely binary computer may be significant. A slower decimal adder may take less time than a fast binary adder doing an addition and two conversions. A careful review of the significance of decimal and binary addressing and both binary and decimal data arithmetic, supplemented by efficient conversion instructions. .A Buchholz, W. .I 41 .T Some Notes on Computer Research in Eastern Europe .A Nadler, M. .I 42 .T A New Method of Computation of Square Roots Without Using Division .A Sarafyan, D. .I 43 .T A Technique for Handling Macro Instructions .A Greenwald, I. D. .I 44 .T RUNCIBLE-Algebraic Translation on a Limited Computer .A Knuth, D. E. .I 45 .T Flow Outlining-A Substitute for Flow Charting .A Gant, W. T. .I 46 .T Multiprogramming STRETCH: Feasibility Considerations .W The tendency towards increased parallelism in computers is noted. Exploitation of this parallelism presents a number of new problems in machine design and in programming systems. Minimum requirements for successful concurrent execution of several independent problem programs are discussed. These requirements are met in the STRETCH system by a carefully balanced combination of built-in and programmed logic. Techniques are described which place the burden of the programmed logic on system programs (supervisory program and compiler) rather than on problem programs. .A Codd, E. F. Lowry, E. S. McDonough, E. Scalzi, C. A. .I 47 .T Russian Visit to U.S. Computers .A Zaitzeff, E. M. Astrahan, M. M. .I 48 .T Shift-Register Code for Indexing Applications .W In this communication the use of a shift-register code with n = 10 is described for calling 64 wireless telemetering stations in a fixed cyclical order. A high degree of redundancy is used, permitting a single-error correcting code ("minimum-distance-three" code) with 64 10-bit code words to be employed as the station identification code. Embedding this in the shift-register code with period 1023 permits the code to be employed without punctuation, each of the telemetering station receivers simply putting received ones and zeros into a shift register. Each time the given code combination arises identifying the particular station (barring for tuitous error combinations of very low probability) it has been called. The communication describes the properties and application of the code in some detail and the finding of the particular example to be employed on URAL, the Soviet-built drum computer donated to the Indian Statistical Institute by the United Nations Technical Aid Administration (UNTAA). .A Nadler, M. Sengupta, A. .I 49 .T Scientific and Business Applications (Oracle Curve Plotter) .A Fike, C. T. .I 50 .T Statistical Programs for the IBM 650-Part II .A Hamblen, J. W. .I 51 .T On the Construction of Micro-Flowcharts .A Gorn, S. Ingerman, P. Z. Crozier, J. B. .I 52 .T An Efficient Method for Generating Uniformly Distributed Points on the Surface on an n-Dimensional Sphere (Corrigendum) .A Cook, J. M. .I 53 .T Recommendations of the SHARE ALGOL Committee .I 54 .T SALE, a Simple Algebraic Language for Engineers .A Brittenham, W. R. Clark, K. Kuss, G. Thompson, H. Smith, A. O. .I 55 .T An Algebraic Translator .A Kaner, H. .I 56 .T Proposed Standard Flow Chart Symbols .I 57 .T J.E.I.D.A. and Its Computer Center .I 58 .T LEM-1, Small Size General Purpose Digital Computer Using Magnetic (Ferrite) Elements .W The paper examines some of the questions of development and construction of a general purpose digital computer using contactless magnetic (ferrite) and capacitive "DEZU" (long duration capacitive memory) elements, developed at the Laboratory of Electrical Modeling VINITYI AN SSSR, under the supervision of Professor L.I. Gutenmacher. .A Machmudov, U. A. .I 59 .T Survey of Progress and Trend of Development and Use of Automatic Data Processing in Business and Management control Systems of the Federal Government, as of December 1957-III .I 60 .T The Alpha Vector Transformation of a System of Linear Constraints .A Wersan, S. J. .I 61 .T IBM 709 Tape Matrix Compiler .A Hornick, S. D. .I 62 .T Multi-Dimensional Least-Squares Polynomial Curve Fitting .A Lesh, F. H. .I 63 .T Octal Diagrams of Binary Conception and Their Applicability to Computer Design Logic .W This paper dates back the genesis of binary conception circa 5000 years ago, and octal diagrams about 4800 years ago, as derived by the Chinese ancients. It analyzes the applicability of binary trinities of the octal diagrams to modern electronic-digital-computer design logic. .A Li, S. T. .I 64 .T Remarks on ALGOL and Symbol Manipulation .A Green, J. .I 65 .T ALGOL Sub-Committee Report - Extensions .A Dijkstra, E. W. Heise, W. Perlis, J. A. Samelson, K. .I 66 .T A Proposal for a Generalized Card Code for 256 Characters .A Bemer, R. W. .I 67 .T Central-European Computers .A Blachman, N. M. .I 68 .T The Role of the University in Computers, Data Processing and Related Fields .W A study was made of university programs in the United States in the fields of computers, data processing, operations research, and other closely related fields. University policies, organization, administration, faculties, students, researches, curricula, equipment, and financing were investigated. An integrated university program is recommended reflecting the conviction that many present activities related to computers will develop into disciplines and as such are the legitimate province of the university scholar. Details on a recommended Graduate School of "Computer Sciences" are given. .A Fein, L. .I 69 .T Statistical Programs for the IBM 650-Part I .W A collection is given of brief descriptions of statistical programs now in use in university computing centers which have IBM 650's. .A Hamblen, J. W. .I 70 .T Construction of a Set of Test Matrices .W This paper develops the equations and properties of a set of test matrices which are useful in the determination of the accuracy of routines for finding the inverse, determinant and/or eigenvalues of a matrix. .A Aegerter, M. J. .I 71 .T Proposal for a Feasible Programming System .W This paper proposes designing a programming facility (itself involving a digital computer and a program) which will assist the preparation of large-scale real-time programs. This facility is to be capable of preparing programs for any of a variety of machines having characteristics similar to those of the facility's computer. One of the basic assumptions is that there will be enough random-access storage available to avoid the necessity for segmenting a constructed program in any fashion other than a trivial one. While this assumption is somewhat unrealistic, it is intended to provide an opportunity to concentrate on the other aspects of program construction. The programming system should stress the discovery in source program statements of as many errors as possible, before attempting to construct an object program. Among the computer characteristics which are advocated are a program interrupt scheme, a large set of characters, and indirect addressing. .A Bagley, P. R. .I 72 .T An Educational Program in Computing .A Hollingsworth, J. .I 73 .T A Real Time Data Assimilator .A Gschwind, H. W. .I 74 .T A High-Speed Sorting Procedure .A Shell, D. L. .I 75 .T Parameter Estimation for Simple Nonlinear Models .A Chow, W. M. .I 76 .T Binary Conversion, With Fixed Decimal Precision, Of a Decimal Fraction .A Taranto, D. .I 77 .T On GAT and the Construction of Translators .A Arden, B. Graham, R. .I 78 .T Remarks on the Practical Solution of Characteristic Value Problems .W This paper is concerned with the practical solution of characteristic value problem for an ordinary differential equation. It is at once apparent that sequential computers, be they digital or analog, solve initial value problems, rather than boundary value problems, and some mathematical process must be found to compensate for the machine's inadequacy. (Compensating for machine imperfection is, of course, the normal activity of the numerical analyst.) A number of other papers have applied particular devices to particular problems. The purpose of this note is to establish a mathematical framework or model for these practical procedures and thus assist in the use and extension of the ideas in other particular problems. .A Wouk, A. .I 79 .T Programming for a Machine With an Extended Address Calculational Mechanism .A Schecher, H. .I 80 .T A Technique for Computing Critical Rotational Speeds of Flexible Shafts on an Automatic Computer .A Schwartz, B. L. .I 81 .T NORC High-Speed Printer .A Gleissner, G. H. .I 82 .T Handling Identifiers as Internal Symbols in Language Processors .W Substitution of computer-oriented symbols for programmer-oriented symbols in language processors is examined and a feasible method for doing so is presented. .A Williams, F. A. .I 83 .T A Visit to Computation Centers in the Soviet Union .A Carr III, J. W. .I 84 .T Survey of Progress and Trend of Development and Use of Automatic Data Processing in Business and Management Control Systems of the Federal Government, as of December 1957-II (Part 2 see CA590406) .I 85 .T Error Analysis in Floating Point Arithmetic .A Carr III, J. W. .I 86 .T Survey of Progress and Trend of Development and Use of Automatic Data Processing in Business and Management Control Systems of the Federal Government, as of December 1957 .A Controller General of the United States to the Congress of the United States .I 87 .T A Note on a Method for Generating Points Uniformly on N-Dimensional Spheres .A Muller, M. E. .I 88 .T An Efficient Method for Generating Uniformly Distributed Points on the Surface of an n-Dimensional Sphere .A Hicks, J. S. Wheeling, R. F. .I 89 .T A Routine to Find the Solution of Simultaneous Linear Equations with Polynomial Coefficients .A Larson, E. H. Marshall, D. P. .I 90 .T Binary Arithmetic for Discretely Variable Word Length in a Serial Computer .A Ercoli, P. Vacca, R. .I 91 .T A Mathematical Procedure for Machine Division .A Gilman, R. E. .I 92 .T A Checklist of Intelligence for Programming Systems .W A remarkable variation exists in the degree of sophistication of various programming systems. A particular manifestation is the jungle of assorted devices for reproducing limited human decision procedures. An attempt is made here to begin a systematic classification of the various devices for educating the computer to take over the decision-making functions of one or many human operators, both those that have been demonstrated feasible to date and those that are highly desirable for the future. .A Bemer, R. W. .I 93 .T From Formulas to Computer Oriented Language .W A technique is shown for enabling a computer to translate simple algebraic formulas into a three address computer code. .A Wegstein, J. H. .I 94 .T An Iterative Method for Fitting the Logistic Curve .W An iterative method is given for finding a logistic curve of best least squares fit to a set of two-dimensional points. .A Howell, J.R. .I 95 .T Elimination of Special Functions from Differential Equations .W A set of ordinary differential equations which contains mathematical functions requiring the use of subroutines for numerical solution by electronic computer, tabular data for numerical solution by hand calculation or function generators when analog methods are applied can sometimes be expanded to an equivalent set of equations which do not contain the functions. This is practical if these functions satisfy sufficiently simple differential equations. Thus among those functions which can be eliminated by this procedure are the trigonometric, inverse trigonometric, exponential, and many other transcendental functions. .A Powers, J. E. .I 96 .T On Computing Radiation Integrals .W The relative merit and cost of four ways of evaluating typical radiation integrals containing spherical Bessel functions are investigated. These methods are desk machine evaluation of a finite series, integration of the appropriate differential equation by a Reeves Electronic Analog Computer and by a Litton 40 IBM 704 computer. Results are generally applicable to equations separated from a Helmholtz or wave equation. .A Hansen, R. C. Bailin, L. L. Rutishauser, R. W. .I 97 .T Signal Corps Research and Development on Automatic Programming of Digital Computers .A Luebbert, Capt. W. F. Collom Jr., Capt. P. W. .I 98 .T The Arithmetic Translator-Compiler of the IBM FORTRAN Automatic Coding System .A Sheridan, P. B. .I 99 .T Possible Modifications to the International Algebraic Language .A Green, J. .I 100 .T Recursive Subscripting Compilers and List-Types Memories .A Carr III, J. W. .I 101 .T Nuclear Reactor Codes .A Nather, V. Sangren, W. .I 102 .T A Comparison of 650 Programming Methods .A Curtz, T. B. Riordan, J. F. Spohn,M. .I 103 .T COPE (Console Operator Proficiency Examination)* .W Each year electronic computers become more sophisticated, and the programs they must process become more complex. Because of this,dependence of those in computing on the skill and experience of operators is increasing. At the same time, selection and training of qualified operators grows more difficult. To meet the need for a quick, accurate, uniform operator test and training aid, the authors have developed COPE (Console Operator Proficiency Examination), outlined below. While this examination is programmed specifically for the IBM 705 Model II with two Tape Record Coordinators, similar programs could be developed for other computers. .A Farbman, D. Ketover, R. .I 104 .T Digital Simulation of Discrete Flow Systems* .W The discrete flow systems discussed are characterized by the movement of randomly arriving items along interacting channels. Programing a digital computer to simulate such systems utilizes some techniques not common in other approaches to physical problems. The principal portion of the paper is a discussion of two simulation studies that illustrate some of the programming problems involved. One is of an extensive package-handling plant, with the objective being optimization of parameters such as storage capacities and processing rates. In the other, air traffic flow and control procedures are simulated to compare the effects of alternative control decisions. .A Moore, C. J. Lewis, T. S. .I 105 .T Two Methods for Word Inversion on the IBM 709 .A Price, R. A. Jardins, P. D. .I 106 .T A Method for Overlapping and Erasure of Lists .W An important property of the Newell-Shaw-Simon scheme for computer storage of lists is that data having multiple occurrences need not be stored at more than one place in the computer. That is, lists may be "overlapped." Unfortunately, overlapping poses a problem for subsequent erasure. Given a list that is no longer needed, it is desired to erase just those parts that do not overlap other lists. In LISP, McCarthy employs an elegant but inefficient solution to the problem. The present paper describes a general method which enables efficient erasure. The method employs interspersed reference counts to describe the extent of the overlapping. .A Collins, G. E. .I 107 .T Multiple Precision Arithmetic .A Pope, D. A. Stein, M. L. .I 108 .T Programmed Error Correction in Project Mercury .A Dimsdale, B. Weinberg, G. M. .I 109 .T A Note on Approximating e^x .A Lubkin, S. .I 110 .T Fibonaccian Searching .A Ferguson, D. E. .I 111 .T On Programming the Numerical Solution of Polynomial Equations .W Numerical techniques are presented for computing the roots of polynomial equations. By applying the recommended scaling and inversion rules, the basic Bairstow and Newton-Raphson iterative techniques can be applied with great reliability. Both a high degree of accuracy and rapid convergence are realized. Numerical examples are shown to illustrate the pitfalls and to show how these are circumvented by application of the recommended procedures. .A Ellenberger, K. W. .I 112 .T Numerical Solution of the Polynomial Equation (Algorithm 30) .A Ellenberger, K. W. .I 113 .T Survey of Coded Character Representation .A Bemer, R. W. .I 114 .T Survey of Punched Card Codes .A Smith, H. J. Williams, F. A. .I 115 .T Optimizers: Their Structure .A Wheeling, R. F. .I 116 .T The Sumador Chino .W On a recent motor trip through Mexico, the writer came across on adding device which was referred to as a sumador chino (Chinese adder). A survey of the more available literature on the history of mathematics and on instruments of calculation has uncovered no reference to such a device. The purpose of this communication is to enlist the help of other members in bringing to light whatever may be known concerning the evolution and present status of the sumador chino. .A Rogers, J. L. .I 117 .T An Estimation of the Relative Efficiency of Two Internal Sorting Methods .A Nagler, H. .I 118 .T Character Scanning on the IBM 7070 .A Speckhard, A. E. .I 119 .T Note on Eigenvalue Computation .A Andrus, J. F. .I 120 .T A Simple Technique for Coding Differential Equations .A Sefton, P. Vaillancourt, R. .I 121 .T Over-all Computation Control and Labelling .A Holt, A. .I 122 .T Least Squares Fitting of a Great Circle Through Points on a Sphere .A DeWitte, L. .I 123 .T Compilation for Two Computers with NELIAC .W NELIAC, a compiler based on ALGOL, was developed at the U.S. Navy Electronics Laboratory, San Diego,California, as a"boot-strap" compiler for the Remington Rand Univac COUNTESS computer. This compiler was used to generate a version of itself which, running as a COUNTESS program, generated machine code for the Control Data Corporation CDC-1604. All three versions of NELIAC accepted essentially identical input language. .A Masterson Jr., K. S. .I 124 .T An Algorithm for the Assignment Problem .W The assignment problem is formulated and briefly discussed. An efficient algorithm for its solution is presented in ALGOL code. An empirical relation between solution time and the size of the problem is given, based on extensive experiments carried out on a digital computer. .A Silver, R. .I 125 .T Polynomial Transformer (Algorithm 29) .A Mackinney, J. G. .I 126 .T Least Squares Fit By Orthogonal polynomials (Algorithm 28) .A Mackinney, J. G. .I 127 .T ASSIGNMENT (Algorithm 27) .A Silver, R. .I 128 .T ROOTFINDER III (Algorithm 26) .A Herroit, J. G. .I 129 .T ROOTFINDER II (Algorithm 15) .A Forsythe, G. E. Herriot, J. G. .I 130 .T Real Zeros of an Arbitrary Function (Algorithm 25) .A Leavenworth, B. .I 131 .T Solution of Tri-Diagonal Linear Equations (Algorithm 24) .A Leavenworth, B. .I 132 .T Math Sort (Algorithm 23) .A Feurzeig, W. .I 133 .T Riccati-Bessel Functions of First And Second Kind (Algorithm 22) .A Oser, H. .I 134 .T Bessel Function for a Set of Integer Orders(Algorithm 21) .A Borsch-Supan, W. .I 135 .T Digital Computers in Universities-IV .A Reeves, R. F. .I 136 .T A Note on the Calculation of Interest .A Ingerman, P. Z. .I 137 .T Evaluating Numbers Expressed as Strings of English Words .A Swift, C. J. .I 138 .T Some Thoughts on Reconciling Various Character Set Proposals (Corrigenda) .A Voorhees, E. A. .I 139 .T Binomial Coefficients (Algorithm 19) .A Kenyon, R. R. .I 140 .T Crout with Pivoting (Algorithm 16) .A Forsythe, G. E. .I 141 .T Some Thoughts on Parallel Processing .A Yarbrough, L. D. .I 142 .T Comments on a Technique for Counting Ones .A Sherman, P. M. .I 143 .T A List of Computer Systems Programs for the IBM 650, DATATRON 205, and UNIVAC SS-80 .A Romberg, A. .I 144 .T Do It by the Numbers-Digital Shorthand .W Present communications systems transmit single characters in groups of coded pulses between simple terminal equipments. Since English words form only a sparse set of all possible alphabetic combinations, present methods are inefficient when computer systems are substituted for these terminals. Using numeric representations of entire words or common phrases (rather than character-by-character representations) requires approximately one-third of present transmission time. This saving is reflected in overall costs. Other benefits accrue in code and language translation schemes. Provision is made for transmission of purely numeric and/or binary streams, and for single character-transmission of non-dictionary words such as the names of people or places. .A Bemer, R. W. .I 145 .T Automatic Graders for Programming Classes .A Hollingsworth, J. .I 146 .T The Use of Computers in Engineering Classroom Instruction .W On April 29-30, the Computer Committee of the College of Engineering, University of Michigan, which acts as a steering committee for The Ford Foundation Project on the Use of Computers in Engineering Education, held a special conference to discuss certain timely topics pertinent to the Ford Project. This report contains a condensed transcription of the key ideas offered by the conference attendees on selected topics. .A Katz, D. L. .I 147 .T Report on a Conference of University Computing Center Directors .I 148 .T Digital Computers in Universities-III .A Reeves, R. F. .I 149 .T A Decision Rule for Improved Efficiency in Solving Linear Programming Problems with the Simplex Algorithm .A Dickson, J. C. Frederick, F. P. .I 150 .T Rational Interpolation by Continued Fractions (Algorithm 18) .A Floyd, R. W. .I 151 .T TRDIAG (Algorithm 17) .A Sprague III, C. D. .I 152 .T CROUT With Pivoting (Algorithm 16) .A Forsythe, G. E. .I 153 .T Comments from a FORTRAN User .A Blatt, J. M. .I 154 .T Rapidly Convergent Expressions for Evaluating e^x .A Berin, A. .I 155 .T Trie Memory .A Fredkin, E. .I 156 .T An Introductory Problem in Symbol Manipulation for the Student .A Rosin, R. F. .I 157 .T Digital Computers in Universities -II .A Reeves, R. F. .I 158 .T ROOTFINDER II (Algorithm 15) .A Thacher Jr., H. C. .I 159 .T ROOTFINDER (Algorithm 2) .A Thacher Jr., H. C. .I 160 .T ROOTFINDER II (Algorithm 15) .A Thacher Jr., H. C. .I 161 .T Abbreviating Words Systematically (Corrigendum) .A Barrett, J. A. Grems, M. .I 162 .T A Variant Technique for Counting Ones .A Frieden, H. .I 163 .T Counting Ones on the IBM 7090 .A Kutler, S. S. .I 164 .T A Short Study of Notation Efficiency .A Smith Jr., H. J. .I 165 .T NELIAC-A Dialect of ALGOL .A Huskey, H. D. Halstead, M. H. .I 166 .T Programming Compatibility in a Family of Closely Related Digital Computers .A Luebbert, W. F. .I 167 .T Combining ALGOL Statement Analysis with Validity Checking .A McIsaac, P. .I 168 .T Multiprogram Scheduling Parts 3 and 4 Scheduling Algorithm and External Constraints .A Codd, E. F. .I 169 .T The Multilingual Terminology Project .A Holmstrom, J. E. .I 170 .T Some Thoughts on Reconciling Various Character Set Proposals .A Voorhees, E. A. .I 171 .T Digital Computers in Universities (Part I) .A Reeves, R. F. .I 172 .T Complex Exponential Integral (Algorithm 13) .A Beam, A. .I 173 .T ATLAS a new concept in large computer design .I 174 .T Interval Estimation of the Time in One State to Total Time Ratio in a DoubleExponential Process .A Neal, W. R. .I 175 .T The Solution of Simultaneous Ordinary Differential Equations Using a General Purpose Digital Computer .A Anderson, W. H. .I 176 .T Symbol Manipulation by Threaded Lists (Corrigendum) .A Perlis, A. J. Thornton, C. .I 177 .T Solution of Polynomial Equation by Bairstow Hitchcock Method, A. A. Grau Communications ACM, February, 1960 (Algorithm) .A Thacher Jr., H. C. .I 178 .T ROOTFINDER (Algorithm) .A Thacher Jr., H. C. .I 179 .T Evaluation of the Legendre Polynomial Pn(X) by Recursion (Algorithm) .A Galler, G. M. .I 180 .T Evaluation of the Laguerre Polynomial Ln(X) by Recursion (Algorithm) .A Galler, G. M. .I 181 .T Evaluation of the Hermite Polynomial Hn(X) by Recursion (Algorithm) .A Galler, G. M. .I 182 .T Evaluation of the Chebyshev Polynomial Tn(X) by Recursion (Algorithm) .A Galler, G. M. .I 183 .T Conversion Between Floating Point Representations .A Perry, C. .I 184 .T A Short Method for Measuring Error in a Least-Squares Power Series .A Robinson, S. M. Struble, G. W. .I 185 .T Multiprogram Scheduling Parts 1 and 2. Introduction and Theory* .W In order to exploit fully a fast computer which possesses simultaneous processing abilities, it should to a large extent schedule its own workload. The scheduling routine must be capable of extremely rapid execution if it is not to prove self-defeating. The construction of a schedule entails determining which programs are to be run concurrently and which sequentially with respect to each other. A concise scheduling algorithm is described which tends to minimize the time for executing the entire pending workload (or any subset of it), subject to external constraints such as precedence, urgency, etc. The algorithm is applicable to a wide class of machines. .A Codd, E. F. .I 186 .T An Algorithm Defining ALGOL Assignment Statements (Addendum) .A Floyd, R. W. .I 187 .T Compiling Connectives .A Swift, C. J. .I 188 .T The Department of Computer Mathematics at Moscow State University .A Berezin, I. S. .I 189 .T The Future of Automatic Digital Computers .A Booth, A. D. .I 190 .T Bendix G-20 System .I 191 .T Abbreviating Words Systematically .A Barrett, J. A. Grems, M. .I 192 .T A Technique for Counting Ones in a Binary Computer .A Wegner, P. .I 193 .T A Start at Automatic Storage Assignment .A Patrick, R. L. .I 194 .T Divisionless Computation of Square Roots Through Continued Squaring .A Sarafyan, D. .I 195 .T What is a Code? .A Patterson, G. W. .I 196 .T Report on the Algorithmic Language ALGOL 60 .A Naur, P. Backus, J. .I 197 .T An Imaginary Number System .A Knuth, D. E. .I 198 .T A High-Speed Multiplication Process for Digital Computers .A Gurzi, F. .I 199 .T Euclidian Algorithm (Algorithm 7) .A Claussen, R. .I 200 .T Bessel Function I, Asymptotic Expansion (Algorithm 6) .A Clarke, D. S. .I 201 .T Bessel Funtion I, Series Expansion (Algorithm 5) .A Clarke, D. S. .I 202 .T A Control System For Logical Block Diagnosis With Data Loading .W This paper describes a section of an integrated diagnostic monitor system which facilitates the checking of sections of instructions or subroutines anywhere in the object program. A new method of specifying all diagnostic operations in a format similar to a computer program makes the system convenient to use and relatively simple to understand. The paper also describes a number of other novel diagnostic features which can be included in the system. .A Senko, M. E. .I 203 .T Decoding Combinations of the First n Integers Taken k at a Time .A Brown, R. M. .I 204 .T Proving Theorems by Pattern Recognition I .A Wang, H. .I 205 .T Macro Instruction Extensions of Compiler Languages .W Macroinstruction compilers constructed from a small set of functions can be made extremely powerful. In particular, conditional assembly, nested definitions, and parenthetical notation serve to make a compiler capable of accepting very general extensions to its ground language. .A McIlroy, M. D. .I 206 .T Symbol Manipulation in XTRAN .A Green, J. .I 207 .T Syntactic and Semantic Augments to ALGOL .A Smith, J. W. .I 208 .T An Introduction to Information Processing Language V .A Newell, A. Tonge, F. M. .I 209 .T Symbol Manipulation by Threaded Lists .A Perlis, A. J. Thornton, C. .I 210 .T Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I .A McCarthy, J. .I 211 .T Share Standard Flow Chart Symbols .A Grems, M. .I 212 .T Bisection Routine (Algorithm 4) .A Gorn,S. .I 213 .T Numerical Inversion of Laplace Transforms .A Schmittroth, L. A. .I 214 .T An Algorithm Defining ALGOL Assignment Statements .A Floyd, R. W. .I 215 .T The Execute Operations-A Fourth Mode of Instruction Sequencing .A Brooks, F. P. .I 216 .T A Note on the Use of the Abacus in Number Conversion .A Kanner, H. .I 217 .T Soviet Computer Technology-1959 .I 218 .T Computer Preparation of a Poetry Concordance .A Painter, J. A. .I 219 .T Marriage-with Problems .A Shuchter, J. P. .I 220 .T A New Method of Computation of Square Roots Without Using Division .A Traub, J. F. .I 221 .T The Basic Side of Tape Labeling .A Logan, W. A. .I 222 .T Coding Isomorphisms .W The coding of external symbols into symbols internal to a compute can sometimes be carried out in such a way that relevant informational properties are preserved, but in a form much more easily dealt with. A case in point is presented. .A Lynch, W. C. .I 223 .T Selfcipher: Programming .A Pelta, H. N. .I 224 .T Sequential Formula Translation .W The syntax of an algorithmic language such as ALGOL is conveniently described as a sequence of states indicated by an element called cellar. Transitions are controlled by admissible state-symbol pairs which may be represented by a transition matrix. This description of syntax furnishes at the same time an extremely simple rule for translating into machine programs statements in the algorithmic language. Sequential treatment, however, is not feasible in the case of certain optimizing processes such as recursive address calculation. .A Samelson, K. Bauer, F. L. .I 225 .T A Techniquefor Handling Macro Instructions (Corrigendum) .A Greenwald, I. D. .I 226 .T Solution of Polynomial Equation by Bairstow-Hitchcock Method (Algorithm 3) .A Grau, A. A. .I 227 .T ROOTFINDER (Algorithm 2) .A Wegstein, J. .I 228 .T QUADI (Algorithm 1) .A Herbold, R. J. .I 229 .T A Terminology Proposal .A Gruenberger, F. .I 230 .T A Proposal for Character Code Compatibility .A Bemer, R. W. .I 231 .T A Proposal for a Set of Publication Standards for Use by the ACM .A Kent, E. R. .I 232 .T A High-Speed Sorting Procedure .A Frank, R. M. Lazarus, R. B. .I 233 .T Abstracts-Additional Nuclear Reactor Codes .A Nather, V. Sangren, W. .I 234 .T A SAP-Like Assembly Program for the IBM 650 .A Speckhard, A. E. .I 235 .T Two Think Pieces .A Bagley, P. R. .I 236 .T Soviet Cybernetics and Computer .W This article records observations on Soviet research and technology in cybernetics and computer science, made by the author during a visit to the Soviet Union as a delegate to the IFAC Congress on Automatic Control held in Moscow in the summer of 1960. .A Feigenbaum, E. A. .I 237 .T Computer Production of Peek-A-Boo Sheets .A Robbins, D. .I 238 .T Simulation and Analysis of Biochemical Systems .A Garfinkel, D. Rutledge, J. D. Higgins, J. J. .I 239 .T Inefficiency of the Use of Boolean Functions for Information Retrieval Systems .A Verhoeff, J. Goffman, W. Belzer, J. .I 240 .T Processing Magnetic Tape Files with Variable Blocks .A Graham, J. W. Sprott, D. A. .I 241 .T Machine Calculation of Moments of a Probability Distribution .W A method is presented for the calculation on a machine of the moments of a probability distribution, necessitating little more than n additions and n references to memory for each moment, instead of the minimum of n multiplication, 2n additions, and 2n references to memory required by the most straightforward method (where n is the number of entries in the probability distribution). The method is directly applicable when a tabulated distribution exists, as when it has been computed by repeated convolution; but in this case it conserves both time and accuracy. .A Lechner, J. A. .I 242 .T Notes on Geometric Weighted Check Digit Verification .W This note describes a method for utilizing geometric weight modulus 11 checking digits on a computer which does not have either multiplication or division. In addition some attempt has been made to show some limitations of this system. .A Wilson, J. G. .I 243 .T N-Dimensional Codes for Detecting and Correcting Multiple Errors .W The paper introduces a new family of codes for detecting and correcting multiple errors in a binary-coded message. The message itself is arranged (conceptually) into a multidimensional rectangular array. The processes of encoding and error detection are based upon parity evaluations along prescribed dimensions of the array. Effectiveness of the codes is increased by introducing a "system check bit", which is essentially a parity check on the other parity bits. Only three-dimensional codes are discussed in this paper with parity evaluations along the horizontal, the vertical, and one main diagonal. However, the family of codes is not restricted to three dimensions, as evidenced by the discussion by Minnick and Ashenhurst on a similar multidimensional single-bit selection plan used for another purpose [6]. A four-dimensional code, correcting three and detecting four errors, has been developed; the extension to higher-dimensional codes with greater correction power is straightforward. .A Rubinoff, M. .I 244 .T Incomplete Elliptic Integrals (Algorithm 73) .A Kriebel, D. C. .I 245 .T A Set of Associate Legendre Polynomials of the Second Kind (Algorithm 62) .A Herndon, J. R. .I 246 .T Least-Squares Fit by Orthogonal Polynomials (Algorithm 28) .A MacMillan, D. B. .I 247 .T Incomplete Elliptic Integrals (Algorithm 73) .A Jefferson, D. K. .I 248 .T What is Proprietary In Mathematical Programming?-Impressions of a Panel Discussion .W A panel discussion on "What is Proprietary in Mathematical Programming?" was sponsored by the Special Interest Committee on Mathematical Programming of the ACM during a Hall of Discussion/on September 7th at the 16th National ACM meeting in Los Angeles. This note consists solely of the impressions garnered by the moderator of the panel and does not necessarily represent the position of any of the panelists or other participants in the discussion. .A Smith, L. W. .I 249 .T Specification Languages for Mechanical Languages and Their Processors*-A Baker's Dozen .A Gorn, S. .I 250 .T An Engineering Application of Logic-Structure Tables .A Nickerson, R. C. .I 251 .T Ballistic Cam Design .W This paper presents a digital computer program for the rapid calculation of manufacturing data essential to the design of preproduction cams which are utilized in ballistic computers of tank fire control systems. The cam profile generated introduces the superelevation angle required by tank main armament for a particular type ammunition. .A Archambault, M. .I 252 .T Programming a Duplex Computer System .W This paper describes a method of duplex-computer programming that has been used with two computers in a military defense system. The method combines special programs with a basic data processing program package. The duplex operation gives the system greater reliability. After achieving the required level of integration, both computers do similar processing on the same inputs and continually cross-check the intermediate and final results. .A Dow, J. .I 253 .T On a Program for Ray-Chaudhuri's Algorithm for a Minimum Cover of an Abstract Complex .A Foata, D. C. .I 254 .T SMALGOL-61 .W Prior to and during the 1961 Western Joint Computer Conference, several people in the Joint Users Groups had expressed interest in defining a "smalgol" language. This is to be an ALGOL language for use with compilers on relatively small size computers. A preliminary report resulted. At the ACM National Conference four months later, after considering several counter proposals, a final version was agreed upon by a subcommittee. The recommendations of the Subcommittee for a standard subset of ALGOL 60 for use on small computers is presented here. .A Bachelork, G. A. Dempster, J. R. H. Knuth, D. E. Speroni, J. .I 255 .T Augmentation (Algorithm 68) .A Breed, L. M. .I 256 .T A Set of Test Matrices (Algorithm 52) .A Dubay, G. H. .I 257 .T Invert (Algorithm 42) .A Knapp, A. W. Shaman, P. .I 258 .T Composition Generator (Algorithm 72) .A Hellerman, O. Ogden, S. .I 259 .T Permutation (Algorithm 71) .A Coveyou, R. R. Sullivan, J. G. .I 260 .T Interpolation By Aitken (Algorithm 70) .A Mifsud, C. J. .I 261 .T Tape Splitting .A Moore, D. P. .I 262 .T MAP .A Moore, C. L. Ruwe, M. L. .I 263 .T Library Loading with Alternate Routine Selection .A Moore, D. P. .I 264 .T A Generalized Polyphase Merge Algorithm .A Reynolds, S. W. .I 265 .T Low Level Language Subroutines for Use Within Fortran .W This paper describes some subroutines, coded in symbolic languages and for use within Fortran coded programs, to deal with "special arithmetic" (e.g. multi-precision arithmetic), symbol manipulation, bit manipulation and expanded character set input-output, and visual display. .A Barnett, M. P. .I 266 .T Fitting Spheres by the Method of Least Squares .A Robinson, S. M. .I 267 .T Some Proposals for Improving the Efficiency of ALGOL 60 .A Wilkes, M. V. .I 268 .T Stochastic Evaluation of a Static Storage Allocation .A Cohen, L. J. .I 269 .T Core Allocation Based on Probability .A Riskin, B. N. .I 270 .T Techniques for Storage Allocation Algorithms .A Kelley Jr., J. E. .I 271 .T A Semi-Automatic Storage Allocation System at Loading Time .A Heising, W. P. Larner, R. A. .I 272 .T A Storage Allocation Scheme for ALGOL 60 .W A storage allocation scheme for a machine with a 2048 instruction core store and a magnetic drum is described. The use of the drum for storing program blocks and/or data must be directed by the programmer through auxiliary information in the ALGOL program. The administrative routines controlling the storage at run time are described in full. A detailed example is given. .A Jensen, J. Mondrup, P. Naur, P. .I 273 .T Experience in Automatic Storage Allocation .A Collins Jr., G. O. .I 274 .T Dynamic Storage Allocation in the Atlas Computer, Including an Automatic Use of a Backing Store .A Fotheringham, J. .I 275 .T Dynamic Storage Allocation for an Information Retrieval System .A Sams, B. H. .I 276 .T Program Organization and Record Keeping for Dynamic Storage Allocation .W The material presented in this paper is part of the design plan of the core allocation portion of the ASCII-MATIC Programming System. Project ASCII-MATIC is concerned with the application of computer techniques to the activities of certain headquarters military intelligence operations of the U.S. Army. .A Holt, A. W. .I 277 .T Problems of Storage Allocation in a Multiprocessor Multiprogrammed System .A Maher, R. J. .I 278 .T A General Formulation of storage Allocation .W 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 underwhich 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. .A Roberts Jr., A. E. .I 279 .T The Case for Dynamic storage Allocation .A Sams, B. H. .I 280 .T A Preplanned Approach to a Storage Allocating Compiler .A O'Neil, R. W. .I 281 .T Putting a Hex on e^x .W Recent notes on approximate natural antilogy have not considered indirect formulations for describing e^x. In this note we produce a particular family of very fast, high precision and eminently practical exponential evaluation formulas derived from one such formulation. .A Feurzeig, W. .I 282 .T Optimum Tape-Writing Procedures .W Consider a magnetic tape system with a read check after writing. Where an error occurs in writing a record, a programmed error routine may either bypass some or all of the area on tape or try to rewrite the record on the same area. This paper evaluates these two procedures on the basis of expected loss of computer time and develops a decision rule for selecting the optimum procedure. The rule depends critically on the number of times the tape being written will be used in the future. In the case where the optimum procedure is to bypass an area, a second decision-the size of the area to be bypassed-is necessary. A formula is developed to determine the optimum area to be bypassed for each procedure. .A Hutchinson, K. .I 283 .T Inversion of a Complex Matrix .A Tornheim, L. .I 284 .T Manipulation of Algebraic Expressions .W An algorithm for algebraically manipulating expressions of the form SUM{CiPi, i=1,...,n}; has been developed in conjunction with the development of programs for systems analysis problems. This algorithm enablesus to derive over-all system transfer functions from algebraically described block diagrams of any linear continuous multi-loop feedback system. The machine representation of the derived expression, is, by virtue of the algorithm, in a form which simplifies the task of compiling. The algorithm was developed for a particular purpose in connection with system analysis studies. However, its application as a mathematical device extends far beyond the confines of the original problem. .A Rom, A. R. M. .I 285 .T Solution of Tridiagonal Matrices .A Wenrick, R. C. Houghton, A. V. .I 286 .T An Iterative Method for Inversion of Power Series .A Bramhall, J. N. .I 287 .T The Generalized Important Event Technique .A Shapiro, N. Vreenegoor, H. .I 288 .T A Syntactical Chart of ALGOL 60 .A Taylor, W. Turner, L. Waychoff, R. .I 289 .T Critical Path Scheduling (Algorithm 40) .A Alexander, N. P. .I 290 .T Chain Tracing (Algorithm 69) .A Mayoh, B. H. .I 291 .T Use of MOBOL in PreparingRetrieval Programs .A Hoffman, J. Opler, A. .I 292 .T An Information Retrieval Language for Legal Studies .A Kehl, W. B. Horty, J. F. Bacon, C. R. T. Mitchell, D. S. .I 293 .T The Applied Mathematics Laboratory of the David W. Taylor Model Basin .A Richstone, M. .I 294 .T An Imaginary Number System .A Knuth, D. .I 295 .T Rational Approximations for the Error Function and for Similar Functions .A Clendenin, W. W. .I 296 .T A Note on Multiple Precision Arithmetic .A Cox, A. G. Luther, H. A. .I 297 .T A Note on Fitting Great Circles by Least Squares .A Marcus, C. F. .I 298 .T A 48-Bit Pseudo-Random Number Generator .W 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 Kuehn, H. G. .I 299 .T A Generalized Polyphase Merge Algorithm .A Reynolds, S. W. .I 300 .T COBOL: A Sample Problem .W A simplified Merchandise Control problem has been chosen for presenting COBOL to users and potential users of computing systems. A mythical department store, "E. Language Bros., Inc.", is programming in the COBOL language one of the many runs on its computer. .A Mackinson, T. N. .I 301 .T A Set of Test Matrices (Algorithm 52) .A Gilbert, H. E. .I 302 .T Augmentation (Algorithm 68) .A Rice, H. G. .I 303 .T Some Basic Terminology Connected With Mechanical Languages and Their Processors .W 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 Gorn, S. .I 304 .T Nth Roots of a Complex Number (Algorithm 53) .A Nestor Jr., C. W. .I 305 .T CRAM (Algorithm 67) .A Caffrey, J. .I 306 .T INVRS (Algorithm 66) .A Caffery, J. .I 307 .T FIND (Algorithm 65) .A Hoare, C. A. R. .I 308 .T QUICKSORT (Algorithm 64) .A Hoare, C. A. R. .I 309 .T PARTITION (Algorithm 63) .A Hoare, C. A. R. .I 310 .T A Set of Associate Legendre Polynomials of the Second Kind (Algorithm 62) .A Herndon, J. R. .I 311 .T Procedures for Range Arithmetic (Algorithm 61) .A Gibb, A. .I 312 .T A Further Note on Approximating e^x .A Olivier, D. .I 313 .T An Iterative Method for Inversion of Power Series .A Bramhall, J. N. .I 314 .T A Divisionless Method of Integer Conversion .A Clarkson, W. K. Prince, B. M. .I 315 .T Solution of Tridiagonal Matrices .A Wenrick, R. C. .I 316 .T An Algorithm for Equivalence Declarations .A Arden, B. W. Galler, A. Graham, R. M. .I 317 .T On The Approximation of Curves by Line Segments Using Dynamic Programming .A Bellman, R. .I 318 .T Combat Vehicle Firing Stability (Active Suspension) .A Fischer, C. M. .I 319 .T On a Class of Iteration Formulas and Some Historical Notes .W The class of iteration formulas obtainable by rational approximations of "Euler's formula" is derived with the corresponding error estimates. Some historical notes on iterative procedures are followed by a derivation of Euler's formula with the associated error estimate in a new notation which simplifies the error estimate and suggests generalizations. The final section considers the Pade approximants to the "Euler polynomial" and shows how a number of known formulas may be derived from this unified approach. There is a short discussion of the "best" formula. .A Traub, J. F. .I 320 .T Logic-Structure Tables .W 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. .A Cantrell, H. N. King, J. King, F. E. H. .I 321 .T ALGOL 60 Confidential .W 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. .A Knuth, D. E. Merner, J. N. .I 322 .T Operational Compatibility of Systems-CONVENTIONS .W The General Standards Committee of the SHARE organization has devoted considerable effort to the problem of operating a computer efficiently in view of the growing number of programming systems available. Each of these programming systems has been coded to utilize a fixed set of hardware components without recognizing the fact that others may be occupying a storage medium required by the first. These incompatibilities are currently resolved by manually setting up the computer for each system as required. The following set of conventions is being considered to minimize computer set-up time. They are of sufficiently broad interest that we feel other computer users should be aware of them. -George F. Ryckman, Chairman .A Bright, H. S. .I 323 .T The State of Digital Computer Technology in Europe .A Blachman, N. M. .I 324 .T Romberg Integration (Algorithm 60) .A Bauer, F. L. .I 325 .T Numerical Solution of the Polynomial Equation (Algorithm 30) .A Alexander, W. J. .I 326 .T MATHSORT (Algorithm 23) .A Ranshaw, R. W. .I 327 .T Zeros of a Real Polynomial by Resultant Procedure (Algorithm 59) .A Bareiss, E. H. Fisherkeller, M. A. .I 328 .T Matrix Inversion (ALgorithm 58) .A Cohen, D. .I 329 .T Automatic Abstracting and Indexing Survey and Recommendations .W In preparation for the widespread use of automatic scanners which will read documents and transmit their contents to other machines for analysis, this report presents a new concept in automatic analysis: the relative-frequency approach to measuring the significance of words, word groups, and sentences. The relative-frequency approach is discussed in detail, as is its application to problems of automatic indexing and automatic abstracting. Included in the report is a summary of automatic analysis studies published as of the date of writing. Conclusions are that point toward more sophisticated mathematical and linguistic techniques for the solution of problems of automatic analysis. .A Edmundson, H. P. Wyllys, R. E. .I 330 .T A Method for Evaluating the Area of the Normal Function .A Baker, F. B. .I 331 .T Successive Approximations and Computer Storage Problems in Ordinary Differential Equations .A Bellman, R. .I 332 .T An Indirect Chaining Method for Addressing on Secondary Keys .W 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. .A Johnson, L. R. .I 333 .T Design of an Improved* Transmission/Data Processing Code .A Bemer, R. W. Smith Jr., H. J. Williams Jr., F. A. .I 334 .T Division and Square Root in the Quater-Imaginary Number System .A Nadler, M. .I 335 .T Some Numerical Experiments Using Newton's Method for Nonlinear Parabolic and EllipticBoundary-Value Problems .W Using a generalization of Newton's method, a nonlinear parabolic equation of the form U(t)-U(xx)=g(U) and a nonlinear elliptic equation U(xx)+U(yy)=exp(U) are solved numerically Comparison of these results with results obtained using the Picard iteration procedure show that in many cases the quisi linearization method offers substantial advantages in both time and accuracy. .A Bellman, R. Juncosa, M. L. Kalaba, R. .I 336 .T A Practical Technique for the Determination of the Optimum Relaxation Factor of the Successive Over-Relaxation Method .A Kulsrud, H. E. .I 337 .T Further Survey of Punched Card Codes .A Ross, H. M. .I 338 .T GROUT II (Algorithm 43) .A Thacher Jr., H.C. .I 339 .T Real Exponential Integral (Algorithm 20) .A Alexander, W. J. Thacher Jr., H. C. .I 340 .T Legendre Polynomial (Algorithm 13) .A Herndon, J. .I 341 .T Chebyschev Polynomial (Algorithm 10) .A Herndon, J. .I 342 .T Solution of Polynomial Equation by Barstow-Hitchcock (Algorithm 3) .A Herndon, J. .I 343 .T On Frequently Occurring Errors in ALGOL 60 Programs (Algorithm 25) .A Herndon, J. .I 344 .T Ber or Bei Function (Algorithm 57) .A Herndon, J. R. .I 345 .T Complete Elliptic Integral of the Second Kind (Algorithm 56) .A Herndon, J. R. .I 346 .T Complete Elliptic Integral of the First Kind (Algorithm 55) .A Herndon, J. R. .I 347 .T Gamma Function for Range 1 to 2 (Algorithm 54) .A Herndon, J. R. .I 348 .T Nth Roots of a Complex Number (Algorithm 53) .A Herndon, J. R. .I 349 .T A Set of Test Matrices .A Herndon, J. R. .I 350 .T Adjust Inverse of a Matrix When an Element is Perturbed (Algorithm 51) .A Herndon, J. R. .I 351 .T Inverse of a Finite Segment of the Hilbert Matrix (Algorithm 50) .A Herndon, J. R. .I 352 .T Spherical Neumant Function (Algorithm 49) .A Herndon, J. R. .I 353 .T Logarithm of A Complex Number (Algorithm 48) .A Herndon, J. R. .I 354 .T Associated Legendre Functions of the First Kind for Real or Imaginary Arguments (Algorithm 47) .A Herndon, J. R. .I 355 .T Exponential of a Complex Number (Algorithm 46) .A Herndon, J. R. .I 356 .T INTEREST (Algorithm 45) .A Ingerman, P. Z. .I 357 .T Bessel Functions Computed Recursively (Algorithm 44) .A Wojcicki, M. E. .I 358 .T Crout with Pivoting II (Algorithm 43) .A Thacher Jr., H. C. .I 359 .T INVERT (Algorithm 42) .A Wood, T. C. .I 360 .T Evaluation of Determinant (Algorithm 41) .A Solomon, J. G. .I 361 .T Programmed Error Correction on a Decimal Computer .A Weinberg, G. M. .I 362 .T Table Look-At Techniques .A Sherman, P. M. .I 363 .T On Approximating Transcendental Numbers by Continued Fractions .A Karst, E. .I 364 .T On the Compilation of Subscripted Variables .A Nather, R. E. .I 365 .T Bessel Functions of Integral Order and Complex Argument .A Gray, M. C. .I 366 .T Eigenvalues of a Symmetric 3 x 3 Matrix .A Smith, O. K. .I 367 .T Topological Ordering of a List of Randomly-Numbered Elements of a Network .W A network of directed line segments free of circular elements is assumed. The lines are identified by their terminal nodes and the nodes are assumed to be numbered by a non-topological system. Given a list of these lines in numeric order, a simple technique can be used to create at high speed a list in topological order. .A Lasser, D. J. .I 368 .T Real Zeros of an Arbitrary Function (Algorithm 25) .A Collinge, R. M. .I 369 .T Crout with Pivoting (Algorithm 16) .A Thacher Jr., H. C. .I 370 .T Bisection Routine (Algorithm 4) .A Rader, P. J. .I 371 .T Remarks on Algorithms 2 and 3, Algorithm 15 and Algorithms 25 and 26 .A Wilkinson, J. H. .I 372 .T Critical Path Scheduling (Algorithm 40) .A Leavenworth, B. .I 373 .T Correlation Coefficients with Matrix Multiplication (Algorithm 39) .A Sassouni, P. .I 374 .T Telescope2 (Algorithm 38) .A Brons, K. A. .I 375 .T Telescope1 (Algorithm 37) .A Brons, K. A. .I 376 .T Tchebycheff (Algorithm 36) .A Gianni, A. J. .I 377 .T SIEVE (Algorithm 35) .A Wood, T. C. .I 378 .T A Generalized Technique for Symbol Manipulation and Numerical Calculation .A Ross, D. T. .I 379 .T Bitwise Operations .A Strachey, C. .I 380 .T Comparison of Iterative Methods for the Calculation of nth Roots .W 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 macrocompiler which estimates machine running time is used to compare the running time of the three methods for a variety of input data. .A Traub, J. F. .I 381 .T An Alternate Form of the "UNCOL Diagram" .A Bratman, H. .I 382 .T Statistical Programs at the University of North Carolina .A Bush, N. .I 383 .T On Finding Minimum Routes in a Network With Turn Penalties .A Caldwell, T. .I 384 .T Gamma Function (Algorithm 34) .A Lipp, M. F. .I 385 .T FACTORIAL (Algorithm 33) .A Lipp, M. F. .I 386 .T MULTINT (Algorithm 32) .A Freeman Jr., R. D. .I 387 .T Gamma Function (Algorithm 31) .A Collinge,R. M. .I 388 .T Solution of Polynomial Equations by Bairstow Hitchcock Method (Algorithm 3) .A Vandergraft, J. S. .I 389 .T Real Exponential Integral (Algorithm 20) .A Peavy, S. .I 390 .T Complex Exponential Integral (Algorithm 13) .A Rader, P. J. Thacher Jr., H. C. .I 391 .T The BKS System for the Philco-2000 .A Smith, R. B. .I 392 .T Comment on A Paper on Parallel Processing .A Nekora, M. R. .I 393 .T Two Subroutines for Symbol Manipulation with an Algebraic Compiler .A Carr III, J. W. Hanson, J. W. .I 394 .T Multiple Programming Data Processing .A Ryle, B. L. .I 395 .T Multiple-Precision Division .A Rabinowitz, P. .I 396 .T Automation of Program Debugging .W Automatic Debugging can substantially reduce lead-time between the coding and the effective use of a complex program. It also enforces analysis of debugging criteria, resulting in verifiably accurate programs. The programmer specifies the program to be debugged, memory areas, set of input data, maximum repetition of loops, and checkpoint information for each set of data. The executive debugging program the runs the program to be debugged, performing checking functions and creating a trace record of its own later analysis and location of errors. Applications are quite flexible, and the system can be used alone or in conjunction with other debugging techniques. .A Jacoby, K. Layton, H. .I 397 .T A Card Format for Reference Files in Information Processing .W This paper proposes a card format suitable for a variety of reference files in information processing. An 80-column IBM card is divided into two fields-reference material field (columns 1-67) and identification field (columns 68-80). The format for the reference material is flexible, while the format for the identification is rigid. The reference material includes basically an index, title, source, class, summary and cross reference for each entry. The identification includes basically codes for a matrix of descriptors, an entry number, and the kind, major interest, and source of the reference. The identification also provides a choice to identify material for personal as well as general files. Since this card format is sufficient to identify the material normally associated with reference files for books, articles, programming terms, hardware terms, equipment, machine systems, abbreviations, etc., it is suitable as a standard for card reference files in information processing. .A Grems, M. .I 398 .T The SLANG System .A Sibley, R. A. .I 399 .T Compiling Techniques for Boolean Expressions and Conditional Statements in ALGOL 60 .A Huskey, H. D. Wattenburg, W. H. .I 400 .T Comments on the Implementation of Recursive Procedures and Blocks in ALGOL 60 .A Irons, E. T. Feurzeig, W. .I 401 .T Allocation of Storage for Arrays in ALGOL 60 .A Sattley, K. .I 402 .T Dynamic Declarations .A Ingerman, P. Z. .I 403 .T Thunks -- A Way of Compiling Procedure Statements with Some Comments on Procedure Declarations .A Ingerman, P. Z. .I 404 .T A Syntax Directed Compiler for ALGOL 60 .A Irons, E. T. .I 405 .T An Algorithm for Coding Efficient Arithmetic Operations .W Most existing formula translation schemes yield inefficient coding. A method is described which reduces the number of store and fetch operations, evaluates constant subexpressions during compilation, and recognizes many equivalent subexpressions. .A Floyd, R. W. .I 406 .T The Use of Threaded Lists in Constructing a Combined ALGOL and Machine-Like Assembly Processor .A Evans Jr., A. Perlis, A. J. Van Zoeren, H. .I 407 .T MADCAP: A Scientific Compiler for a Displayed Formula Textbook Language .A Wells, M. B. .I 408 .T The Internal Organization of the MAD Translator .A Arden, B. W. Galler, B. A. Graham, R. M. .I 409 .T CL-1, An Environment for a Compiler .W A flexible, large-scale programming system to facilitate the solution of information processing problems and to provide intercommunication between programs and/or programmers has been developed and realized on the IBM 709/7090 computer. The system is based on a master file concept and has provisions for accepting, storing, and retrieving both descriptions and instances of large and complex data sets, as well as algorithms defined on these data sets. Both data and algorithms may be expressed in a family of command and descriptive languages. The concept of distinct data descriptions and the content and use of such descriptions are discussed in some detail. .A Cheatham Jr., T. E. Collins Jr., G. O. Leonard, G. F. .I 410 .T The CLIP Translator .A Englund, D. Clark, E. .I 411 .T Use of Magnetic Tape for Data Storage in the ORACLE-ALGOL Translator .A Bottenbruch, H. .I 412 .T Recursive Processes and ALGOL Translation .A Gray, A. A. .I 413 .T A Basic Compiler for Arithmetic Expressions .A Huskey, H. D. Wattenburg, W. H. .I 414 .T IBM 1440 Data Processing System Features Five New Units .W The IBM 1440 data processing system, announced recently by the International Business Machines Corporation, not only features the 1311 disk storage drive with interchangeable disk packs but four other newly developed units. .A Wheeling, R. .I 415 .T The Use of Digital Computers in Western Germany .A Schuff, H. K. .I 416 .T Multiple Shooting Method for Two-Point Boundary Value Problems .A Morrison, D. D. Riley, J. D. Zancanaro, J. F. .I 417 .T Legal Implications of Computer Use .W This paper points out a variety of ways computer systems used in business and industry can be involved in legal entanglements and suggests that computer specialists have a responsibility to call for assistance in forestalling or minimizing those entanglements during the planning stage. Techniques are suggested for making legal clearance effective with the least burden on the new technology and for achieving a favorable legal climate for it generally. Computer specialists also are alerted to potential opportunities to interpret to lawyers the technical aspects of computer systems involved in legal situations. .A Freed, R. N. .I 418 .T RANDOM (Algorithm 133) .A Behrenz, P. G. .I 419 .T Magic Square (Algorithm 118) .A Thacher Jr., H. C. .I 420 .T PERM (Algorithm 115) .A Phillips, E. S. .I 421 .T Position of Point Relative to Polygon (Algorithm 112) .A Hacker, R. .I 422 .T COMBINATION (Algorithm 94) .A Grench, R. E. .I 423 .T Matrix Inversion (Algorithm 58) .A Behrenz, P. G. .I 424 .T Gamma Function (Algorithm 31) .A Behrenz, P. G. .I 425 .T Complete Elliptic Integral (Algorithm 149) .A Merner, J. N. .I 426 .T Term of Magic Square (Algorithm 148) .A Collison, D. M. .I 427 .T PSIF (Algorithm 147) .A Amit, D. .I 428 .T Multiple Integration (Algorithm 146) .A McKeeman, W. M. .I 429 .T Adaptive Nimerical Integration by Simpson's Rule (Algorithm 145) .A McKeeman, W. M. .I 430 .T TREESORT2 (Algorithm 144) .A Kaupe Jr.,A. F. .I 431 .T TREESORT1 (Algorithm 143) .A Kaupe Jr., A. F. .I 432 .T Triangular Regression (Algorithm 142) .A Hafley, W. L. Lewis, J. S. .I 433 .T Fixed-World-Length Arrays in Variable-Word-Length Computers .A Sonquist, J. A. .I 434 .T Character Manipulation in 1620 Fortran II .A Poore Jr., J. H. .I 435 .T A Decision Matrix as the Basis for a Simple Data Input Routine .W Currently a great deal of time and effort is being spent on the development of bigger and better compiler languages, multiprogram executive systems, etc. Since the implementation of of new methods and procedures is not instantaneous, but rather occurs by an evolutionary process, we should be concerned also with the problem of maintaining, improving and incorporating new ideas into existing systems. It is with this somewhat neglected area that the author is interested. A method employing a decision matrix is presented for the handling of a standard systems programming problem,that of providing a data input routine. .A Vasilakos, G. J. .I 436 .T Evaluation of Polynomials by Computer .A Knuth, D. E. .I 437 .T Compiling Matrix Operations .A Galler, B. A. Perlis, A. J. .I 438 .T Mechanical Pragmatics: A Time-Motion Study of a Miniature Mechanical Linguistic System .A Gorn, S. .I 439 .T On-Line Digital Computer for Measurement of a Neurological Control System .A Stark, L. Payne, R. Okabe, Y. .I 440 .T Record Linkage .W Special difficulties are encountered in devising reliable systems for searching and updating any large files of documents that must be identified primarily on the basis of names and other personal particulars. The underlying problem is that of making nearly maximum use of items of identifying information that are individually unreliable but that may collectively be of considerable discriminating power. Rules that can be applied generally to name retrieval systems have been developed in a methodological study of the linkage of vital and health records into family groupings for demographic research purposes. These rules are described, and the ways in which information utilization for matching may be optimized are discussed. .A Newcombe, H. B. Kennedy, J. M. .I 441 .T Topological Sorting of Large Networks .W Topological Sorting is a procedure required for many problems involving analysis of networks. An example of one such problem is PERT. The present paper presents a very general method for obtaining topological order. It permits treatment of larger networks than can be handled on present procedures and achieves this with greater efficiency. Although the procedure can be adapted to any machine, it is discussed in terms of the 7090. A PERT network of 30,000 activities can be ordered in less than one hour of machine time. The method was developed as a byproduct of procedures needed by Westinghouse, Baltimore. It has not been programmed and at present there are no plans to implement it. In regard to the techniques described, Westinghouse's present and anticipated needs are completely served by the Lockheed program, which is in current use. .A Kahn, A. B. .I 442 .T Crout with Equilibration and Iteration (Algorithm 135) .A McKeeman, W. M. .I 443 .T Complex Number to a Real Power (Algorithm 106) .A Erwin Jr.,G. W. .I 444 .T Evaluation of Jacobi Symbol (Algorithm 99) .A May, R. W. .I 445 .T COMBINATION (Algorithm 94) .A May, R. W. .I 446 .T Simpson's Integration (Algorithm 84) .A Behrenz, P. G. .I 447 .T Certification of the Calculation of Easter .A Williams, M. R. .I 448 .T Path Matrix (Algorithm 141) .A Ingerman, P. Z. .I 449 .T Matrix Inversion(Algorithm 140) .A Ingerman, P. Z. .I 450 .T Solution of the Diophantine Equation (Algorithm 139) .A Peck, J. E. L. .I 451 .T Nesting of for Statement II (Algorithm 138) .A Dahm, D. M. Wells, M. .I 452 .T Nesting of for Statement I (Algorithm 137) .A Dahm, D. M. Wells, M. .I 453 .T Enlargement of a Group (Algorithm 136) .A Wells, M. .I 454 .T Crout with Equilibration and Iteration (Algorithm 135) .A McKeeman, W. M. .I 455 .T Exponentiation of Series (Algorithm 134) .A Fettis, H. E. .I 456 .T RANDOM (Algorithm 133) .A Behrenz, P. G. .I 457 .T Quantum Mechanical Integrals Over all Slater-Type Integrals .A Browne, J. C. .I 458 .T Coefficient Determination (Algorithm 131) .A Smith, V. H. Allen, M. L. .I 459 .T PERMUTE (Algorithm 130) .A Eaves, Lt. B. C. .I 460 .T MINIFUN (Algorithm 129) .A Whitley, V. W. .I 461 .T Coding of Medical Case History Data for Computer Analysis .A Lipkin, M. Woodbury, M. A. .I 462 .T Computer Pattern Recognition Techniques: Electrocardiographic Diagnosis .W The use of programmed digital computers as general pattern classification and recognition devices is one phase of the current lively interest in artificial intelligence. It is important to choose a class of signals which is, at present, undergoing a good deal of visual inspection by trained people for the purpose of pattern recognition. In this way comparisons between machine and human performance may be obtained. A practical result also serves as additional motivation. Clinical electrocardiograms make up such a class of signals. The approach to the problem presented here centers upon the use of multiple adaptive matched filters that classify normalized signals. The present report fives some of the background for the application of this method. .A Stark,L. Okajima, M. Whipple, G. H. .I 463 .T On Ambiguity in Phrase Structure Languages .A Floyd, R. W. .I 464 .T Syntactic Analysis by Digital Computer .W This paper provides an account of the Shadow language that is used to describe syntax and of a corresponding subroutine that enables a computer to perform syntactic analysis. The input to this subroutine consists of a string to be analyzed and a description of the syntax that is to be used. The syntax is expressed in the Shadow language. The output consists of a trace table that expresses the results of the syntactic analysis in a tabular form. Several versions of the subroutine and some associated programs have been in use now for over three years. The present account of the language and the subroutine contains a summary of material that has been described previously in unpublished reports and also some additional discussion of the work in relation to the more general questions of problem-oriented languages and string transformations. .A Barnett, M. P. Futrelle, R. P. .I 465 .T PERM (Algorithm 115) .A Schrack, G. F. .I 466 .T General Order Arithmetic (Algorithm 93) .A George, R. .I 467 .T Permutation Generator (Algorithm 87) .A Schrack, G. F. Shimrat, M. .I 468 .T Incomplete Elliptic Integrals (Algorithm 73) .A Jefferson, D. K. .I 469 .T Critical Path Scheduling (Algorithm 40) .A Hellberg, L. .I 470 .T Summation of Fourier Series (Algorithm 128) .A Wells, M. .I 471 .T ORTHO (Algorithm 127) .A Walsh, P. J. .I 472 .T Gauss' Method (Algorithm 126) .A Counts, J. W. .I 473 .T WEIGHTCOEFF (Algorithm 125) .A Rutishauser, H. .I 474 .T Input Data Organization in Fortran .A Yarbrough, L.D. .I 475 .T A Test Matrix for Inversion Procedures .A Pei, M. L. .I 476 .T Further Remarks on Sampling a Tape File-II .A Nadler, M. .I 477 .T Further Remarks on Sampling a Tape File-I .A Muller, M. E. .I 478 .T Implementing a Stack .A Baecker, H.D. .I 479 .T A Dispersion Pass Algorithm for the Polyphase Merge .W This paper presents a new manner of dispersing strings for a Polyphase merge. If the number of strings dispersed is between two levels acceptable by Polyphase merge, a more economical technique of reaching the next level for Polyphase merge is shown and proved. .A Mendoza, A. G. .I 480 .T Quick Calculation of Jacobian Elliptic Functions (Corrigendum) .A Salzer, H. E. .I 481 .T A One-Day Look At Computing .A Armerding, G. W. Gruenberger, F. J. Marks, S. L. Parkin, T. R. .I 482 .T TALL-A List Processor for the Philco 200 Computer .A Feldman, J. .I 483 .T On the Nonexistence of a Phrase Structure Grammar for ALGOL 60 .W ALGOL 60 is defined partly by formal mechanisms of phrase structure grammar, partly by informally stated restrictions. It is shown that no formal mechanisms of the type used are sufficient to define ALGOL 60. .A Floyd, R. W. .I 484 .T Hankel Function (Algorithm 124) .A Schaefer, L. J. .I 485 .T Real Error Function, ERF(x) (Algorithm 123) .A Crawford, M. Techo, R. .I 486 .T Tridiagonal Matrix (Algorithm 122) .A Dietzel, G. F. .I 487 .T NORMDEV (Algorithm 121) .A Shafer,D. .I 488 .T A Heuristic for Page Turning In a Multiprogrammed Computer .A Weil, J. W. .I 489 .T Current Status of IPL-V for the Philco 2000 Computer (June 1962) .A Shaffer, S. S. .I 490 .T Programmed Methods for Printer Graphical Output .A Garfinkel, D. .I 491 .T Use of Multiprogramming in the Design of a Low Cost Digital Computer .A Penny, J. P. Pearcey, T. .I 492 .T Analysis of a File Addressing Method .W This paper presents a new file addressing method based on the calculation of an address from the identification of a record. For large recirculating type files, it seems to be more advantageous than customary ones. The probability distribution of the displacement of records from their calculated address, which is one less than the number of probes required to address a record, is computed on the basis of a Markov chain model. For the reader not interested in the mathematics, the introduction and the summary should be sufficient. .A Schay Jr., G. Spruth, W. G. .I 493 .T The Property Classification Method of File Design and Processing .A McGee, W. C. .I 494 .T A Finite Sequentially Compact Process for the Adjoints of Matrices Over Arbitrary Integral Domains .A Luther, H. A. Guseman Jr., L. F. .I 495 .T A Procedure for Inverting Large Symmetric Matrices .W In the least squares method for simultaneous adjustment of several parameters, the coefficients of the normal equations are the elements of a symmetric positive-definite matrix. In order to solve the normal equations and evaluate the precision measures of the resulting parameters, inversion of this matrix of coefficients is required. Many available procedures for matrix inversion do not take advantage of the symmetry. Thus, when programmed for a high-speed computer, all n^2 elements must be stored and manipulated, whereas only (n + 1)/2 of them are independent. In order to allow a computer of given memory capacity to handle a larger matrix, the following procedure for inverting a symmetric matrix has been devised. .A Busing, W. R. Levy, H. S. .I 496 .T A Set of Matrices for Testing Computer Programs .A Brenner, J. L. .I 497 .T Further Remarks on Line Segment Curve-Fitting Using Dynamic Programming .W In a recent paper, Bellman showed how dynamic programming could be used to determine the solution to a problem previously considered by Stone. The problem comprises the determination, given N, of the N points of subdivision of a given interval (a,B) and the corresponding line segments, that give the best least squares fit to a function g(x) in the interval. Bellman confined himself primarily to the analytical derivation, suggesting briefly, however, how the solution of the equation derived for each particular point of subdivision u(i) could be reduced to a discrete search. In this paper, the computational procedure is considered more fully, and the similarities to some of Stone's equations are indicated. It is further shown that an equation for u(i) involving no minimization may be found. In addition, it is shown how Bellman's method may be applied to the curve-fitting problem when the additional constraints are added that the ends of the line segments must be on the curve. .A Gluss, B. .I 498 .T Magic Square (Algorithm 117 & 118) .A Collison, D. M. .I 499 .T Permutation Generator (Algorithm 87) .A Collison, D. M. .I 500 .T PERMUTE (Algorithm 86) .A Collison, D. M. .I 501 .T JACOBI (Algorithm 85) .A Hillmore, J. S. .I 502 .T Simpson's Integration (Algorithm 84) .A George, R. .I 503 .T Rational Roots of Polynomials with Integer Coefficients (Algorithm 78) .A Collison, D. M. .I 504 .T FACTORS (Algorithm 75) .A Hillmore, J. S. .I 505 .T Composition Generator (Algorithm 72) .A Collison, D. M. .I 506 .T PERMUTATION (Algorithm 71) .A Hillmore, J. S. .I 507 .T Partition, Quicksort, Find (Algorithm 63, 64, 65) .A Hillmore, J. S. .I 508 .T Matrix Inversion (Algorithm 58) .A George, R. .I 509 .T Matrix Inversion (Algorithm 58) .A Struble, G. .I 510 .T Ber or Bei Function (Algorithm 57) .A Thacher Jr., H. C. .I 511 .T A Set of Test Matrices (Algorithm 52) .A Hillmore, J. S. .I 512 .T Telescope 1 (Algorithm 37) .A Thacher Jr., H. C. .I 513 .T SIEVE (Algorithm 35) .A Hillmore, J. S. .I 514 .T Binomial Coefficients (Algorithm 19) .A George, R. .I 515 .T Rational Interpolation by Continued Fractions (Algorithm 18) .A Thacher Jr., H. C. .I 516 .T Matrix Inversion II (Algorithm 120) .A George, R. .I 517 .T Evaluation of Pert Network (Algorithm 119) .A Eisenman, B. Shapiro, M. .I 518 .T Magic Square (Odd Order) (Algorithm 118) .A Collison, D. M. .I 519 .T Magic Square (Even Order) (Algorithm 117) .A Collison, D. M. .I 520 .T Complex Division (Algorithm 116) .A Smith, R. L. .I 521 .T PERM (Algorithm 115) .A Trotter, H. F. .I 522 .T Generation of Partitions with Constraints (Algorithm 114) .A Stockmal, F. .I 523 .T TREESORT (Algorithm 113) .A Floyd,R. W. .I 524 .T Position of Point Relative to Polygon (Algorithm 112) .A Shimrat, M. .I 525 .T A Computer Technique for Handling Analysis of Variance .A Howell, J. R. .I 526 .T Character Manipulation in Fortran .A Pyle, I. C. .I 527 .T The Description List of Concepts .W A concept is defined as a class of objects whose members can be distinguished by processing its properties. Property is defined to mean a partition of the set of all objects into disjoint classes. The formal definition of a concept is recursive in nature. A concept is described by a list structure. A one-to-one correspondence is established between the recursive definition of a concept and its description list structure. Like the definition, the description list structure of a concept is also built up from elementary list structures by a recursive process. The list structures obtained this way are compared with the description list structure discussed by the author in a previous publication. .A Banerji, R. B. .I 528 .T FORTRAN for Business Data Processing .A Robbins, D. K. .I 529 .T Regression and Coded Patterns in Data Editing .A Robison, D. E. Aroian, L. A. .I 530 .T A Computer Method for Radiation Treatment Planning .A Siler, W. Laughlin, J. S. .I 531 .T Person-Matching by Electronic Methods .W Record linkage in the updating of files is accomplished in many establishments through the use of a preassigned number, such as payroll number, customer number, or social security number. In vital and health records, however, a unique number is generally not preassigned to an individual for purposes of reporting services received to the health department. In order to determine whether different physician reports refer to the same individual, name and other identification must be compared. This is a laborious operation which is subject to various errors because of name misspellings, changes of name upon marriage, and other problems. We are interested in the maintenance of a psychiatric case register in Maryland, where many of the reports from over a hundred psychiatric agencies refer to the same patient. These records must be linked in order to provide unduplicated counts of individuals under care and longitudinal records of psychiatric history. An earlier paper [1] describes our general procedures for register maintenance by use of a digital computer (Honeywell 800). Here we present in more detail our initial procedures for the person-matching process in order to elicit comments and suggestions from persons who have had experience in matching. .A Phillips Jr., W. Bahn, A. K. Miyasaki, M. .I 532 .T On the Computation of Rational Approximations to Continuous Functions .A Fraser, W. HArt, J. F. .I 533 .T Digital Synthesis of Correlated Stationary Noise .W In this note we propose a method of generating stationary noise with a prescribed auto-covariance function by digital methods. The need for such a technique often arises in testing the performance of data processing and engineering systems, where inputs corrupted with correlated noise (of a known form) are required. The technique is quite simple and produces strict-sense stationary noise which agrees approximately with R(t), the prescribed auto-covariance function (acf), over an interval [-T(0), T(0)]. The method consists of approximating the spectral density by a periodic process with spectral lines, and then synthesizing the periodic noise with random phases and appropriate amplitudes. In order to simplify discussion of the statistical properties of the noise generated, the technique is first presented in terms of exact harmonic analysis. In practice, discrete harmonic analysis as presented in the third section is used. .A Peabody, P. R. Adorno, D. S. .I 534 .T Quick Calculation of Jacobian Elliptic Functions .A Salzer, H. E. .I 535 .T Triangular Walk Pattern for the Down-hill Method of Solving a Transcendental Equation .A Onoe, M. .I 536 .T Nonlinear Regression and the Solution of Simultaneous Equations .W If one has a set of observables (Z1,...,Zm) which are bound in a relation with certain parameters (A1,...,An) by an equation S(Z1,...;A1,...)=0, one frequently has the problem of determining a set of values of the Ai which minimizes the sum of squares of differences between observed and calculated values of a distinguished observable, say Zm. If the solution of the above equation for Zm, Zm=N(Z1,...;A1,...) gives rise to a function N which is nonlinear in the Ai, then one may rely on a version of Gaussian regression [1,2] for an iteration scheme that converges to a minimizing set of values. It is shown here that this same minimization technique may be used for the solution of simultaneous (not necessarily linear) equations. .A Baer, R. M. .I 537 .T A Machine Program for Theorem-Proving .W The program of a proof procedure is discussed in connection with trial runs and possible improvements. .A Davis, M. Logemann, G. Loveland, D. .I 538 .T Quantum Mechanical Integrals of Slater-Type Orbitals (Algorithm 110) .A Kruglyak, Y. A. Whitman, D. R. .I 539 .T Definite Exponential Integrals B (Algorithm 109) .A Kruglyak, Y. A. Whitman, D. R. .I 540 .T Definite Exponential Integrals A (Algorithm 108) .A Kruglyak, Y. A. Whitman, D. R. .I 541 .T Simpson's Integration (Algorithm 84) .A Relph, A. P. .I 542 .T FACTORS (Algorithm 75) .A Relph, A. P. .I 543 .T Interpolation by Aitken (Algorithm 70) .A Relph, A. P. .I 544 .T Ber or Bei Function (Algorithm 57) .A Relph, A. P. .I 545 .T Adjust Inverse of a Matrix when an Element is Perturbed (Algorithm 51) .A George, R. .I 546 .T Logarithm of a Complex Number (Algorithm 48) .A Johnson, M. L. Sangren, W. .I 547 .T Gamma Function (Algorithm 34) .A Johnson, M. L. Sangren, W. .I 548 .T Molecular-Orbital Calculation of Molecular Interactions .A Kruglyak, Y. A. Whitman, D. R. .I 549 .T Quantum Mechanical Integrals of Slater-Type Orbitals .A Kruglyak, Y. A. Whitman, D. R. .I 550 .T Definite Exponential Integrals B (Algorithm 109) .A Kruglyak, Y. A. Whitman, D. R. .I 551 .T Definite Exponential Integrals A (Algorithm 108) .A Kruglyak, Y. A. Whitman, D. R. .I 552 .T Gauss's Method (Algorithm 107) .A Counts, J. W. .I 553 .T Complex Number to a Real Power (Algorithm 106) .A Johnson, M. L. Sangren, W. .I 554 .T Newton Maehly, (Algorithm 105) .A Bauer, F. L. Stoer, J. .I 555 .T Reduction to Jacobi (Algorithm 104) .A Rutishausr, H. .I 556 .T On Translation of Boolean Expressions .A Bottenbirruch, H. H Grau, A. A. .I 557 .T Simulation of Computer Timing Device .I 558 .T A Modified Inversion Procedure for Product Form of the Inverse Linear Programming Codes .W This paper describes a new algorithm for the selection of the pivot row in matrix inversion when using the product form of the inverse. This algorithm has been developed for linear programming codes; however, it would be valuable for the inversion of any non-dense matrix. The procedures described in this paper have been thoroughly tested and have been in operation on the Esso Research and Engineering IBM 7090 computer for nine months. Substantial computer cost savings have been realized because of this procedure. .A Larsen, L. J. .I 559 .T Solution of Eigenvalue Problems With Approximately Known Eigenvectors .A Appel, K. .I 560 .T Communication Between Independently Translated Blocks .A Wegner, P. .I 561 .T Analytic Differentiation By Computer .A Hanson, J. W. Caviness, J. S. Joseph, C. .I 562 .T AVINT (Algorithm 77) .A Whittier, V. E. .I 563 .T Sorting Procedures (Algorithm 76) .A Randell, B. .I 564 .T CRAM (Algorithm 67) .A Relph, A. P. .I 565 .T INVRS (Algorithm 66) .A Caffrey, J. .I 566 .T Matrix Inversion (Algorithm 58) .A Conger, R. A. .I 567 .T Logarithm of a Complex Number (Algorithm 48) .A Relph, A. P. .I 568 .T Exponential of a Complex Number (Algorithm 46) .A Relph, A. P. .I 569 .T Binomial Coefficients (Algorithm 19) .A Steck, B. .I 570 .T Simpson's Rule Integrator (Algorithm 103) .A Kuncir, G. F. .I 571 .T Permutation in Lexicographical Order (Algorithm 102) .A Schrack, G. F. Shimrat, M. .I 572 .T Add Item to Chain-Linked List (Algorithm 100) .A Kiviat, P. J. .I 573 .T Remove Item From Chain-Linked List (Algorithm 101) .A Kiviat, P. J. .I 574 .T Evaluation of Jacobi Symbol (Algorithm 99) .A Garland, S. J. Knapp, A. W. .I 575 .T Evaluation of Definite Complex Line Integrals (Algorithm 98) .A Pfaltz, J. L. .I 576 .T Shortest Path (Algorithm 97) .A Floyd, R. W. .I 577 .T ANCESTOR (Algorithm 96) .A Floyd, R. W. .I 578 .T Generation of Partitions in Part-Count Form (Algorithm 95) .A Stockmal, F. .I 579 .T COMBINATION (Algorithm 94) .A Kurtzberg, J. .I 580 .T General Order Arithmetic (Algorithm 93) .A Perstein, M. H. .I 581 .T A Note on Sampling a Tape-File .A Jones, T. G. .I 582 .T One Lost Bit .A Oster, C. A. .I 583 .T A Redundancy Check for ALGOL Programs .A Thacher Jr., H. C. .I 584 .T Report on the Algorithmic Language FORTRAN II .A Rabinowitz, I. N. .I 585 .T Initial Experience With an Operating Multiprogramming System .W The Lewis Research Center has been using various forms and degrees of program simultaneity in the operation of its modified Sperry-Rand Univac Scientific Model 1103 computer during the last five years. This simultaneity has evolved from an initial achievement of self-searching input and output to the automatic time sharing of independently coded problems. Several important machine and program system modifications were necessary to accomplish this evolution. Several additional modifications, although not required, were added to facilitate ease of coding and operation. All modifications had to proceed at a relatively temperate pace to insure that the basic data-reduction work load of the computing center was completed on schedule. Some educationally valuable mistakes were made, and their suggested cures often pointed the way to useful future improvements or emphasized some of the basic principles of a multiprogramming system. The material that follows is a description of the evolution of the programming and hardware system which has developed into the present multiprogramming system at Lewis research Center. .A Landis, N. Manos, A. Turner, L. R. .I 586 .T Simultaneous System of Equations and Matrix Inversion Routine (Algorithm 92) .A Roek, D. J. .I 587 .T Romberg Integration (Algorithm 60) .A Buchner, K. H. .I 588 .T Chebyshev Curve-Fit (Algorithm 91) .A Newhouse, A. .I 589 .T Evaluation of the Fresnel Cosine Integral (Algorithm 90) .A Cundiff, J. L. .I 590 .T Evaluation of the Fresnel Sine Integral (Algorithm 89) .A Cundiff, J. L. .I 591 .T Evaluation of Asymptotic Expression for the Fresnel Sine and Cosine Integrals (Algorithm 88) .A Cundiff, J. L. .I 592 .T COBOL Batching Problems .A Mullen, J. W. .I 593 .T An Introduction to a Machine-Independent Data Division .A Mullin, J. P. .I 594 .T An Advanced Input-Output System for a COBOL Compiler .A Bouman, C. A. .I 595 .T Guides to Teaching COBOL .W The teaching of COBOL can be divided into three main subject areas. They are the syntax of COBOL, the use of such syntax in solving any given problem, and programming concepts. It is generally accepted that some knowledge of the hardware and computer logic must be possessed by the programmer. The teaching problem arises in determining how thoroughly a student must know the hardware and logic for that computer for which he will write COBOL programs. Unfortunately, historical data concerning students' programming proficiency is almost non-existent and, at best, difficult to measure. How then might we approach solving this problem? .A Greene, I. .I 596 .T Floating-Point Arithmetic in COBOL .W In this paper the basic operations of floating-point arithmetic are examined and COBOL procedures for carrying these out are given, along with specification of working storage. The paper concludes with an example in which these procedures are used. .A Kesner, O. .I 597 .T Modular Data Processing Systems Written in COBOL .A Emery, J. C. .I 598 .T The COBOL Librarian - A Key to Object Program Efficiency .W Many answers to the question "How may a COBOL Compiler be forced into the generation of an efficient object program?" The purpose of this article is to present one possible answer: the creation and full utilization of a well-constructed COBOL Library. .A Hicks, W. .I 599 .T A Report Writer For COBOL .A Donally, W. L. .I 600 .T Syntactical Charts of COBOL 61 .A Berman, R. Sharp, J. Sturges, L. .I 601 .T Interim Report on Bureau of Ships COBOL Evaluation Program .A Siegel, M. Smith, A. E. .I 602 .T COBOL and Compatibility .A Lippitt, A. .I 603 .T Basic Elements of COBOL 61 .A Sammet, J. E. .I 604 .T Why COBOL? .A Cunningham, J. F. .I 605 .T Computer Simulation Of City Traffic .W In simulating traffic flow on city streets, the National Bureau of Standards has used data processing techniques to tabulate and make motion pictures of vehicle movements in the model. Each vehicle is assigned a digital identification giving points of entry and exit, type of vehicle, desired speed, and actual speed, in proportions simulating field data. Changes in the model can be made to observe their consequences and to determine the ability of a real street to carry loads expected in the future. .I 606 .T A Method for Eliminating Ambiguity Due to Signal Coincidence in Digital Design .A Kaiser, C. J. .I 607 .T The Calculation of Easter... .A Knuth, D. .I 608 .T Permutation (Algorithm 71) .A Peck, J. E. L. Schrack, G. F. .I 609 .T Permutation (Algorithm 71) .A Brown, P. J. .I 610 .T SIEVE (Algorithm 35) .A Brown, P. J. .I 611 .T Permutation Generator (Algorithm 87) .A Howell, J. R. .I 612 .T Permute (Algorithm 86) .A Peck, J. E. L. Schrack, G. F. .I 613 .T JACOBI (Algorithm 85) .A Evans, T. G. .I 614 .T Simpson's Integration (Algorithm 84) .A Hennion, P. E. .I 615 .T Addressing Multidimensional Arrays .W A useful method of representing a function of n variables is to consider the function to assume its values at selected points in n-dimensional space. Although this picture is of value to the analyst, the elements of an n-dimensional array must exist in conventional storage as a linear array or vector. The means of performing the transformation of a set of indices locating on array element in n-space to the location (address) of the element in its storage vector is the subject of this paper. It is noted that the index address transformation is computationally identical to the conversion of a number from a fixed to a mixed radix number system. Several ways of implementing the transformation are described. .A Hellerman, H. .I 616 .T An Information Algebra - Phase I Report-Language Structure Group of the CODASYL Development Committee .W This report represents the results of the first phase of the work of the Language Structure Group. The goal of this work is to arrive at a proper structure for a machine-independent problem-defining language, at the systems level of data processing. The report is based, for the most part, on a mathematical model called "An Information Algebra" developed primarily by R. Bosak. It is hoped that this report will be read (a) with avid interest by programming language designers and implementors, and all those interested in developing a theoretical approach to data processing; (b) with interest and understanding by professional programmers and systems analysts; and (c) with appreciation by the businessman-analyst-manager. The authors have not attempted an exhaustive discourse in this report. Rather, they have tried to present a philosophy to the professional people who are vitally concerned with providing a working language for the systems analyst's use. They trust that the ideas in this report will stimulate others to think along similar lines. Questions and comments will be welcomed, and can be addressed to any of the members of the Language Structure Group: Robert Bosak, System Development Corporation; Richard F. Clippinger, Honeywell EDP Division; Carey Dobbs, Remington Rand Univac Division; Roy Goldfinger (Chairman), IBM Corporation; Renee B. Jasper, Navy Management Office; William Keating, National Cash Register; George Kendrick, General Electric Company; Jean E. Sammet, IBM Corporation. .I 617 .T POSEIDON .W Any computer that forms part of a control system-whether completely automatic or partly human-must work at the same speed as the control system. It must perform its calculations or data processing fast enough for the results to be available at the required instants in the action of the control system. This known as working in "real time." .A Wheeling, R. F. .I 618 .T Computers- The Key to Total Systems Control: An Industrial Viewpoint .W Man-Man-machine processes are characterized in five main types, and the markets for each type are shown for 1950 and 1960 and estimated for 1970. .A Carlson, W. M. .I 619 .T Retrieval of Misspelled Names in an Airlines Passenger Record System .W This paper discusses the limited problem of recognition and retrieval of a given misspelled name from among a roster of several hundred names, such as the reservation inventory for a given flight of a large jet airliner. A program has been developed and operated on the Telefile (a stored-program core and drum memory solid-state computer) which will retrieve passengers' records successfully, despite significant misspellings either at original entry time or at retrieval time. The procedure involves an automatic scoring technique which matches the names in a condensed form. Only those few names most closely resembling the requested name, with their phone numbers annexed, are presented for the agents final manual selecton. The program has successfully isolated and retrieved names which were subjected to a number of unusual (as well as usual) misspellings. .A Davidson, L. .I 620 .T RATFACT (Algorithm 78) .A Halstead, M. H. .I 621 .T Romberg Integration (Algorithm 60) .A Thacher Jr., H. C. .I 622 .T Optimal Classification of Objects (Algorithm 83) .A Mayoh, B. H. .I 623 .T Economising a Sequence 2 (Algorithm 82) .A Mayoh, B. H. .I 624 .T Economising a Sequence 1 (Algorithm 81) .A Mayoh, B. H. .I 625 .T Reciprocal Gamma Function of Real Argument (Algorithm 80) .A Holsten, W. .I 626 .T A Method of Representation, Storage and Retrieval of 13 Random Codes in a 4-Digit Number or 16 Random Codes in a 5-Digit Number .A Foster, M. B. .I 627 .T Knotted List Structures .A Weizenbaum, J. .I 628 .T On a Floating-Point Number Representation For Use with Algorithmic Languages .A Grau, A. A. .I 629 .T On a Wired-In Binary-to-Decimal Conversion Scheme .A Lynch, W. C. .I 630 .T An Evaluation of Autocode Readability .W Of the many requirements of an autocode, the pair of requirements "easy to read" and "easy to write" are not often compatible. This paper argues that readability can be added automatically in the translation process so that the programmer can enjoy the utmost economy of expression, while for management a full and valid COBOL version is printed to give all the advantages of readability and compatibility. .A Ellis, P. V. .I 631 .T Automatic-Programming-Language Translation Through Syntactical Analysis* .A Ledley, R.S. Wilson, J. B. .I 632 .T Vectorcardiographic Diagnosis With The Aid of ALGOL .A Forsythe, G. E. Von Der Groeben, J. Toole, J. G. .I 633 .T Simulation and Analysis of Biochemical Systems (III. Analysis and Pattern Recognition) .A Garfinkel, D. Polk, W. Higgins, J. J. Ochser, R. T. .I 634 .T Manipulation of Trees in Information Retrieval* .A Salton, G. .I 635 .T A Note on Multiplying Boolean Matrices .A Baker, J. J. .I 636 .T Tape Splitting in an Iterative Program .A Weisert, C. .I 637 .T A NELIAC-Generated 7090-1401 Compiler .W NELIAC systems for several different machines have been generated using the original NELIAC system developed at the Naval Electronics Laboratory, San Diego, in 1958. A basic "bootstrap" process was used to generate all but the first, i.e. the systems were described in the NELIAC language and generated by an existing NELIAC compiler. This experience has shown there is no inherent difficulty in "building compilers with compilers"; indeed, it pointed out many advantages in using a POL for constructing programming systems. This report presents the results of a project completed in May, 1961 in which the NELIAC system was used to generate a compiler for the IBM 1401. The 1401 compiler, which runs on the 7090 and produces 1401 programs, was described in the NELIAC language and generated with 7090 NELIAC system. The reduction in programming time and the improvement in documentation of the system were very significant. .A Watt, J. B. Wattenburg, W. H. .I 638 .T SURGE: A Recoding of the COBOL Merchandise Control Algorithm .A Longo, L. F. .I 639 .T Difference Expression Coefficients (Algorithm 79) .A Giammo, T. P. .I 640 .T Rational Roots of Polynomials with Integer Coefficients (Algorithm 78) .A Perry, C. .I 641 .T Interpolation, Differentiation, and Integration (Algorithm 77) .A Hennion, P. E. .I 642 .T An Introduction to ALGOL .A Schwarz, H. R. .I 643 .T Simulation and Analysis of Biochemcial Systems (II. Solution of Differential Equations) .A Larson, R. Sellers, P. Meyer, R. .I 644 .T A String Language for Symbol Manipulation Based on ALGOL 60 .W An artificial computer programming language is proposed for describing the manipulation of strings of characters and symbols. The concept of strings, introduced in the ALGOL 60 report, is extended by adding: (1) the declaration of strings, substrings, and string arrays with explicit lengths; (2) the ability to concatenate and shift strings; and (3) the ranking of symbols for comparing stings in Boolean relations. A primer or informal description of the language is followed by examples, a description of experiments with the language on an IBM 704 computer, and a formal description which, taken with the ALGOL 60 Report, defines the proposed string language. .A Wegstein, J. H. Youden, W. W. .I 645 .T INVRS (Algorithm 66) .A Randell, B. Broyden, C. G. .I 646 .T Inverse of a Finite Segment of the Hilbert Matrix (Algorithm 50) .A Randell, B. .I 647 .T Numerical Solution of the Polynomial Equation (Algorithm 30) .A Cohen, K. J. .I 648 .T Sorting Procedures (Algorithm 76) .A Flores, I. .I 649 .T FACTORS (Algorithm 75) .A Peck, J. E. L. .I 650 .T Curve Fitting with Constraints (Algorithm 74) .A Peck, J. E. L. .I 651 .T A Survey of Languages and Systems for Information Retrieval .A Grems, M. .I 652 .T Use of Semantic Structure in Information Systems .A Sable, J. D. .I 653 .T Translation of Retrieval Requests Couched in a "Semiformal" English-Like Language* .A Cheatham Jr., T. E. Warshall, S. .I 654 .T Language Problems Posed by Heavily Structured Data .A Barnes, R. F. .I 655 .T COMIT as an IR Language .W Many of the features that make COMIT a good all around symbol manipulation language also render it well suited to various types of information retrieval programs. Presented here is a general discussion of this unique and different programming language and an examination of some of its applications. .A Yngve, V. H. .I 656 .T An Information System With The Ability To Extract Intelligence From Data .A Wang, T. L. .I 657 .T Information Structures for Processing and Retrieving .A Colilla, R. A. Sams, B. H. .I 658 .T Discussion-The Pros and Cons of a Special IR Language .A Sammet, J. E. Ohlman, H. Bohnest, H. G. .I 659 .T Reversion of Series (Algorithm 193) .A Thacher Jr., H. C. .I 660 .T More Test Matrices for Determinants and Inverses (Pracnique) .A Englar, T. S. .I 661 .T Indexing and the Lambda-Notation .W Some methods of indexing sequentially stored elements of sparse multi-dimensional arrays are described in the scheme A notation. .A Barnett, M. P. .I 662 .T Shuttle Sort (Algorithm 175) .A Juelich, O. C. .I 663 .T Determinant (Algorithm 159) .A Lapidus, A. .I 664 .T Assignment (Algorithm 27) .A Witty, R. D. .I 665 .T Gauss-Seidel (Algorithm 220) .A Shantz, P. W. .I 666 .T Topological Ordering for Pert Networks (Algorithm 219) .A Kase, R. H. .I 667 .T Kutta Merson (Algorithm 218) .A Lukehart, P. M. .I 668 .T Minimum Excess Cost Curve (Algorithm 217) .A Briggs, W. A. .I 669 .T A Specification of JOVIAL .A Shaw, C. J. .I 670 .T Some Legal Implications of the Use of Computers in the Banking Business .W The introduction of computers in to the banking business has a wide variety of legal implications that merit careful attention at this very early stage. The industry is highly regulated by government and, hence, is subject to many statutes and regulations. It also is affected by important common law rules established by courts. The legal ramifications involve not only the mechanization itself, but also the very significant, economically attractive phenomenon of off premises processing. It is essential to identify and provide for many legal aspects right now, before systems and practices crystallize, in order to avoid the later impact of unanticipated physical complications and expense. The legal aspects of computerization in the banking business are especially diverse. In some states, there might be the basic question whether banks are authorized by law to invest in the new facilities, either directly or through cooperatives. More challenging are questions relating to off-premises processors, particularly with respect to the obligation not to disclose information concerning a bank's customers, the adequacy of fidelity bond coverage, the extent of liability for improper refusal to pay a check, and susceptibility to regulation by government agencies. Also pertinent is the propriety of data processing by banks for nonbank entities and particularly of the rendering of that service without charge for bank depositors. .A Freed, R. N. .I 671 .T TELEFILE-A Case Study of an On-Line Savings Bank Application .W The development of an on-line computer system for a savings bank institution is traced from the early conceptual needs of the bank to the consummation of design by The Teleregister Corporation. Both bank and equipment criteria are specified which led to the development of the Telefile System of The Teleregister Corporation. Operation of the on-line and off-line programs are described and statistics are cited for reliability and performance of the system. Benefits to the bank are discussed from the banker's point of view; an indication of future trends in the on-line savings bank field is also discussed. .A Sanders, M. .I 672 .T Recent Developments Affecting ADP in Tax Administration .A Leibowitz, G. J. .I 673 .T Account Classification at Automating Banks .A Eckert, J. B. .I 674 .T Application of IBM 1620 EDP Methods to the Calculation of the Formation Constants of Complex Irons .A Andrews, A. C. Hassler, J. DeCou, F. .I 675 .T Coding Clinical Laboratory Data For Automatic Storage and Retrieval .W A series of clinical laboratory codes have been developed to accept and store urin analysis, blood chemistry, and hematology test results for automatic data processing. The codes, although constructed as part of a computerized hospital simulation, have been able to handle the results of every laboratory test that they have encountered. The unique feature of these codes is that they can accept conventionally recorded qualitative as well as quantitative test results. Consequently, clinical test results need not be arbitrarily stratified, standardized, or altered in any way to be coded. This paper describes how the codes were developed and presents a listing of the urin analysis codes. Five criteria used in developing the codes are outlined and the problem of multiple-synonymous terminology is discussed. A solution to the problem is described. Flexible, computer-produced, composite laboratory reports are also discussed, along with reproduction of such a report. The paper concludes that even though many problems remain unsolved, the next ten years could witness the emergence of a practical automated information system in the laboratory. .A Gross, L. D. .I 676 .T On the Computation of a Certain Type of IncompleteBeta Functions .A Tang, I. C. .I 677 .T Length of Strings for a Merge Sort .W Detailed statistics are given on the length of maximal sorted strings which result form the first (internal sort) phase of a merge sort onto tapes. It is shown that the strings produced by an alternating method (i.e. one which produces ascending and descending strings alternately) tend to be only three-fourths as long as those in a method which produces only ascending strings, contrary to statements which have appeared previously in the literature. A slight modification of the read-backward polyphase merge algorithm is therefore suggested. .A Knuth, D. E. .I 678 .T Optimizing Bit-time Computer Simulation .W A major component of a bit-time computer simulation program is the Boolean compiler. The compiler accepts the Boolean functions representing the simulated computer's digital circuits, and generates corresponding sets of machine instructions which are subsequently executed on the "host" computer. Techniques are discussed for increasing the sophistication of the Boolean compiler so as to optimize bit-time computer simulation. The techniques are applicable to any general-purpose computer. .A Katz,J. H. .I 679 .T Recent Improvements in MADCAP .W MADCAP is a programming language admitting subscripts, superscripts and certain forms of displayed formulas. The basic implementation of this language was described in a previous paper [MADCAP: A scientific compiler for a displayed formula textbook language, Comm. ACM 4 (Jan. 61), 31-36]. This paper discusses recent improvements in the language in three areas: complex display, logical control, and subprogramming. In the area of complex display, the most prominent improvements are a notation for integration and for the binomial coefficients. In the area of logical control the chief new feature is a notation for variably nested looping. The discussion of subprogramming is focused on MADCAP's notation for and use of "procedures." .A Wells, M. B. .I 680 .T An Error-Correcting Parse Algorithm .A Irons, E. T. .I 681 .T Flexible Abbreviation of Words in a Computer Language .A Lomis, R. G. Rubin, J. .I 682 .T Recursive programming in FORTRAN II .A Ayers, J. A. .I 683 .T A Serial Technique to Determine Minimum Paths .A Weimer, D. L. .I 684 .T Interpolation, Differentiation, and Integration (Algorithm 77) .A Hennion, P. E. .I 685 .T Euler Summation (Algorithm 8) .A Thacher Jr., H. C. .I 686 .T Smooth (Algorithm 216) .A George, R. .I 687 .T Shanks (Algorithm 215) .A Thacher Jr., H. C. .I 688 .T q-Bessel Functions In(t)(Algorithm 214) .A Simoes Pereira, J. M. S. .I 689 .T Report of a Visit to Discuss Common Programming Languages in Czechoslovakia and Poland, 1963 .A Gosden, J. A. Merner, J. N. Gay, R. E. Jones, J. L. Christopher, J. S. .I 690 .T USA Participation in an International Standard glossary on Information Processing .A Traub, J. F. .I 691 .T A Description of the APT Language .W The APT (Automatically Programmed Tools) language for numerical control programming is described using the metalinguistic notation introduced in the ALGOL 60 report. Examples of APT usage are included. Presented also are an historical summary of the development of APT and a statement concerning its present status. .A Brown, S. A. Drayton, C. E. Mittman, B. .I 692 .T On the Inverse of a Test Matrix .A Stockmal, F. J. .I 693 .T An Extension of Fibonaccian Search To Several Variables .W A technique which uses Fibonaccian search concepts has been developed to solve optimization problems involving unimodal functions of several variables. The technique has not been proven to be optimal in the sense that the one-dimensional Fibonaccian search is. However, it is valuable for certain kinds of calculations. .A Krolak, P. Cooper, L. .I 694 .T A Comparison of Disks and Tapes .W The principal characteristics of current magnetic disks and tape units are summarized and compared. Some of the characteristics of disk files are illustrated in a sorting example and compared to a tapesort. The conclusion is presented that disk files are competitive to tapes in some important applications. .A Hess, H. .I 695 .T Use of the Disk File on Stretch .W The paper begins by briefly describing the Stretch (IBM 7030) computer with special emphasis given to the organization and operation of its input-output equipment. Physical characteristics of the two-disk system (4,194,304 72-bit words, 8 usec-per-word transmission rate, etc.) are noted. Timing limitations due to arm motion and disk rotation are discussed. Applications of disk usage are discussed separately for problem programs and for systems programs such as compilers and the supervisory program. Approximately 260,000 words of disk storage are reserved for the storage of systems programs and the subroutine library. Problem programs, however, are not currently filed on the disk. Certain programming techniques are discussed for transmitting words between disk and core storage with minimum delaying and interruption of the arithmetic unit. Dumps on disk are considered for both recovery from computer malfunction and for mathematical or physical developments during the calculation. Some comments are made regarding the reliability, economics, utility and weaknesses or limitations of the disk system. Several possible future applications are noted which appear to have disk connotations. .A Carlson, B. G. Voorhes, E. A. .I 696 .T An Automatic Data Acquisition and Inquiry System Using Disk Files .W Lockheed Missiles and Space Company has installed a large-scale Automatic Data Acquisition (ADA) system which ties together the Company's manufacturing facilities located in Van Nuys and Sunnyvale, California. The system includes over 200 remote Input Stations which collect and transmit Company operating data to a central Data Processing Center. Two RCA 301 EDP Systems are used to record and control the flow of data transmitted to the Data Processing Center. A large capacity RCA 366 Data Disc File is used to store information required to provide up-to-date information in response to inquiries received from remotely located Inquiry Stations. In addition to storage of data on the disk files, the system automatically records all incoming and outgoing data on magnetic tape to be used as input to the Company's conventional off-line business data processing applications. .A Edwards, J. D. .I 697 .T A Numerical Method for the Determination of Moving Field Isodose Curves for Treatment Planning in Radiotherapy .A Dalrymple, G. V. Perez-Tamayo, R. .I 698 .T DATA-DIAL: Two-Way Communication with Computers From Ordinary dial Telephones .W An operating system is described which allows users to call up a remotely located computer from ordinary dial telephones. No special hardware or connections are required at the users' telephones. Input to the computer is through the telephone dial;output from the computer is in spoken form. Results of a test with telephones in the Boston area are reported. .A Marill, T. Edwards, D. Feurzeig, W. .I 699 .T A Contour-Map Program for X-Ray Crystallography .W A FORTRAN program is described for use with the IBM 7090 system and an X, Y-plotter to produce a contour map. A matrix of points evenly spaced in each dimension is contoured. Scale factors along the axes may be different and the axes need not be perpendicular. .A Dayhoff, M. O. .I 700 .T Hermite Interpolation (Algorithm 210) .A Dwyer, T. A. .I 701 .T Shuttle Sort (Algorithm 175) .A Schubert, G. R. .I 702 .T Assign (Algorithm 173) .A Filsak, Z. Vrchovecka, L. .I 703 .T Assign (Algorithm 173) .A Scowen, R. S. .I 704 .T Combinatorial of M Things Taken One At A Time Two At A Time, Up To N At A Time (Algorithm 161) .A Collins, D. H. .I 705 .T Combinatorial Of M Things Taken N At A Time (Algorithm 160) .A Blakely, R. E. .I 706 .T Fourier Series Approximation (Algorithm 157) .A Schubert, G. R. .I 707 .T Erf(x) (Algorithm 123) .A Ibbetson, D. .I 708 .T Evaluation of the Fresnel Integrals (Algorithm 88, 89, 90) .A Gray, M. D. .I 709 .T Assignment (Algorithm 27) .A Newhouse, A. .I 710 .T Fresnel Integrals (Algorithm 213) .A Gray, M. D. .I 711 .T Frequency Distribution (Algorithm 212) .A Gray, M. D. .I 712 .T Hermite Interpolation (Algorithm 211) .A Schubert, G. R. .I 713 .T Lagrangian Interpolation (Algorithm 210) .A Schubert, G. R. .I 714 .T Gauss (Algorithm 209) .A Ibbetson, D. .I 715 .T Discrete Convolution (Algorithm 208) .A Foreman Jr., W. T. .I 716 .T Stringsort (Algorithm 207) .A Boothroyd, J. .I 717 .T Partitioning Algorithms for Finite Sets .W The partitions of a set with n elements are represented by certain n-tuples of positive integers. Algorithm are described which generate without repetitions the n-tuples corresponding to: (1) all partitions of the given set, (2) all partitions of the given set into m or fewer sets (1 <= m <= n), and (3) all partitions of the given set into exactly m sets (1 <= m <= n). .A Hutchinson, G. .I 718 .T An Experiment in Automatic Verification of Programs .W How effective is a compiler at replacing explicit verification, and what is the cost of this technique? .A Weinberg, G. M. Gressett, G. L. .I 719 .T Variable Width Stacks .W Character addressable, variable field computers permit ready establishment and manipulation of variable width stacks. Single machine commands may push variable field items down into such stacks or pop them up. The availability of a variety of field delimiters allows the machine to push down or pop up more than one variable width item with one command. Since these stacking operations can be made the basis of compiler decoding algorithms the proper use of machines of this class for compilation has advantages over machines with fixed-length words. .A Rotenberg, N. Opler, A. .I 720 .T Format-Free Input in FORTRAN .A Bailey, M. J. Barnett, M. P. Futrelle, R. P. .I 721 .T Report on Proposed American Standard Flowchart Symbols for Information Processing .W This paper presents the essential contents of the Proposed American Standard Flowchart Symbols for Information Processing. This is the first proposed standard prepared by Subcommittee X3.6 on Problem Description and Analysis of the American Standards Association (ASA). .A Rossheim, R. J. .I 722 .T ALCOR Group Representation of ALGOL Symbols .I 723 .T ECMA Subset of ALGOL 60 .I 724 .T A Profile of the Programmer .W Synopsis: 549 members of the ACM participated in a study concerned primarily with the attitudes of programmers toward their careers and jobs. A very high percentage of programmers have apparently entered their careers by accident; it has proven a happy choice for most and they expect to remain in the field during the next five years. Their principal job satisfactions relate to the nature of their work, and mostfind their jobs offer high level of professional interest and good working conditions. Salary and advancement prospects, however,are not as satisfactory. More than half report a positive attitude toward programmers and programming on the part of their organizations. Turnover among themselves is attributed primarily to poor management-salary is seen as the principal motivating factor in turnover among other programmers. Nature of the work offered and salary are principal determinants in accepting a new job. Programmers are less mobile than expected. Programmers tend to see their colleagues in a favorable light, on the whole. Personalities seem to vary with function, systems programmers differing from applications programmers. Four principal problems for programming in the immediate future are listed by participants: languages, personnel, various specific applications and techniques, and building programming as a profession. .I 725 .T Group Participation Computer Demonstration .A McCormick, E. M. .I 726 .T A General Program for the Analysis of Square and Rectangular Lattice Designs .W This paper describes a general-purpose program that will handle those incomplete block designs known as square and rectangular lattices. Flow diagrams are given so that the method of calculation may be programmed for any digital computer. .A Smillie, K. W. .I 727 .T On the Approximate Solution of Delta(u)=F(u) .W Three-dimensional Dirichlet problems for Delta(u)=F(u), Fu >= 0, are treated numerically by an exceptionally fast, exceptionally accurate numerical method. Programming details, numerous examples and mathematical theory are supplied.Extension of the method in a natural way to n-dimensional problems is indicated by means of a 4-dimensional example. .A Greenspan, D. Yohe, M. .I 728 .T Computer-Drawn Flowcharts* .W To meet the need for improved documentation of written computer programs, a simple system for effective communication is presented, which has shown great promise. The programmer describes his program in a simple format, and the computer prepares flow charts and other cross-referenced listings from this input. The description can be kept up-to-date easily, and the final output clearly explains the original program. The system has also proved to be a valuable debugging and coding aid. .A Knuth, D. E. .I 729 .T A Generalization of ALGOL .A Wirth, N. .I 730 .T MIRFAG: A Compiler Based on Standard Mathematical Notation And Plain English .W A pilot version of the compiler MIRFAG, now in operation, is described. The chief features of the system, which is intended for the solution of scientific problems, are the presentation of mathematical formulas entirely in standard textbook notation. The use of plain English for organizational instructions, automatic error diagnosis indicating the actual location of the error in the uncompiled program, and an attempt to minimize that fragmentation of the original problem statement which is a normal feature of programming systems. .A Gawlik, H. J. .I 731 .T Symmetric List Processor .W A list processing system in which each list cell contains both a forward and a backward link as well as a datum is described. This system is intended for imbeding in higher level languages capable of calling functions and subroutines coded in machine language. The presentation is in the form of FORTRAN programs depending on only a limited set of FORTRAN programs depending on only a limited set of "primitive" machine language subroutines which are also defined. Finally, a set of field, particularly character, manipulation primitives are given to round out the system. .A Weizenbaum, J. .I 732 .T Monte Carlo Inverse (Algorithm 166) .A Rodman,R. D. .I 733 .T Newton Interpolation with Forward Divided Differences (Algorithm 169) .A Thacher Jr., H. C. .I 734 .T Newton Interpolation with Backward Divided Differences (Algorithm 168) .A Thacher Jr., H. C. .I 735 .T Calculation of Confluent Divided Differences (Algorithm 167) .A Thacher Jr., H. C. .I 736 .T Modified Hankel Functions (Algorithm 163) .A Thacher Jr.,H. C. .I 737 .T Exponentiation of Series (Algorithm 158) .A Lawrence, J. D. .I 738 .T Fourier Series Approximation (Algorithm 157) .A George, R. .I 739 .T MINIFUN (Algorithm 129) .A Wasscher, E. J. .I 740 .T INTEREST (Algorithm 45) .A Wright, C. B. .I 741 .T Evaluation of Determinant (Algorithm 41) .A Freed, B. H. .I 742 .T Evaluation of Determinant (Algorithm 41) .A Freed, B. H. .I 743 .T ARCCOSIN (Algorithm 206) .A Konda, M. .I 744 .T ATIVE (Algorithm 205) .A Haubrich, J. G. A. .I 745 .T STEEP2 (Algorithm 204) .A Wasscher, E. J. .I 746 .T STEEP1 (Algorithm 203) .A Wasscher, E. J. .I 747 .T Generation of Permutations in Lexicographical Order (Algorithm 202) .A Shen, M. K. .I 748 .T A Semi-Iterative Process for Evaluating Arctangents .A Chu, W. H. Saathoff, D. R. .I 749 .T Note onStochastic Matrices .A Dumey, A. I. .I 750 .T PEI Matrix Eigenvectors .A Newbery, A. C. R. .I 751 .T A Note on a Set of Test Matrices for Inversion .A Rodman, R. D. .I 752 .T Closing Out a Print Tape .A Moore, D. P. .I 753 .T A Procedure for Converting Logic Table Conditions into an Efficient Sequence of Test Instructions .A Egler, J. F. .I 754 .T Ye Indiscreet Monitor .A Blatt, J. M. .I 755 .T An Exponential Method of Numerical Integration of Ordinary Differential Equations .W A formula for numerical integration is prepared, which involves an exponential term. This formula is compared to two standard integration methods, and it is shown that for a large class of differential equations, the exponential formula has superior stability properties for large step sizes. Thus this formula may be used with a large step size to decrease the total computing time for a solution significantly, particularly in those engineering problems where high accuracy is not needed. .A Pope, D. A. .I 756 .T A Computer Program for Editing the News .A Danielson, W. A. Briggs, B. .I 757 .T Simulation of a Traffic Network .A Katz, J. H. .I 758 .T Skeletal Structure of PERT and CPA Computer Programs .W An introduction to the inner mechanics of PERT and CPA computer programs is provided. The major components of these programs as well as their purposes and interrelationships are outlined. .A Kahn, A. B. .I 759 .T Continued Operation Notation for Symbol Manipulation and Array Processing .W A brief account is given of a notational device that is very useful in the formal representation of syntaxes, string relationships and string transformation procedures and also of computing procedures that deal with arrays of functions of many variables. The device consists of the use of certain "continued operation" or "collective" symbols that are analogous to the summation symbol (Sigma) and continued multiplication symbol (Pi) of conventional mathematics. .A Barnett, M. P. .I 760 .T Dialects of FORTRAN .A Pyle, I. C. .I 761 .T A Note on the Dangling Else in ALGOL 60 .W Some revisions of ALGOL 60 are proposed, which not only eliminate certain ambiguous statements but also add some convenience to the language. A discussion of the background of the problem and a sketch of a proof that the ambiguities have been removed is included. .A Kaupe Jr., A. F. .I 762 .T Some Remarks on the Syntax of Symbolic Programming Languages .A DiForino, A. C. .I 763 .T A Syntax Controlled Generator of Formal Language Processors .A Eickel, J. Bauer, F. L. Paul, M. Samelson, K. .I 764 .T Reduction of a Matrix Containing Polynomial Elements (Algorithm 170) .A Hennion, P. E. .I 765 .T Orthogonal Polynomial Least Squares Surface Fit (Algorithm 164) .A Bitterli, C. V. .I 766 .T XY-move Plotting (Algorithm 162) .A Fletcher, W. E. .I 767 .T Certification of Algorithm 161 Combinatorial of M Things Taken One at a Time, Two at a Time, Up to N at a Time [M. L. Wolfson and H. V. Wright, Comm. ACM, Apr. 1963] .A Thoro, D. .I 768 .T Certification of Algorithm 160 Combinatorial of M Things Taken N at a Time [M. L. Wolfson and H. V. Wright, Comm. ACM, Apr. 1963] .A Thoro, D. .I 769 .T Algebra of Sets (Algorithm 156) .A Bosworth, K. M. .I 770 .T Combination in Any Order (Algorithm 155) .A Bosworth, K. M. .I 771 .T Combination in Lexicographical Order (Algorithm 154) .A Bosworth, K. M. .I 772 .T GOMORY (Algorithm 153) .A Lefkowitz, B. D'Esopo, D. A. .I 773 .T Matrix Inversion (Algorithm 140) .A George, R. .I 774 .T Jacobi (Algorithm 85) .A Naur, P. .I 775 .T Interpolation, Differentiation, and Integration (Algorithm 77) .A Hennion, P. E. .I 776 .T Partition, Quicksort, and Find (Algorithm 62, 64, & 65) .A Randell, B. Russell, L. J. .I 777 .T A Set of Test Matrices (Algorithm 52) .A Naur, P. .I 778 .T Associated Legendre Functions of the First Kind for Real or Imaginary Arguments (Algorithm 47) .A George, R. .I 779 .T CROUT II (Algorithm 43) .A Domingo, C. Rodriguez-Gil, F. .I 780 .T Algorithm 42 INVERT, Alg.107 Gauss's Method, Alg.120 Inversion II, and gjr .A Naur, P. .I 781 .T Telescope 2 (Algorithm 38) .A Bridges, J. F. .I 782 .T Telescope 1 (Algorithm 37) .A Bridges, J. F. .I 783 .T Shellsort (Algorithm 201) .A Boothroyd, J. .I 784 .T Normal Random (Algorithm 200) .A George, R. .I 785 .T Conversions Between Calendar Date And Julian day Number (Algorithm 199) .A Tantzen, R. G. .I 786 .T Adaptive Integration and Multiple Integration (Algorithm 198) .A McKeeman, W. M. .I 787 .T Matrix Division (Algorithm 197) .A Wells, M. .I 788 .T Muller's Method for Finding Roots of an Arbitrary Function (Algorithm 196) .A Roman, R. D. .I 789 .T Bandsolve (Algorithm 195) .A Thurnau, D. H. .I 790 .T Zersol (Algorithm 194) .A Domingo, C. .I 791 .T Character Manipulation in 7090 Fortran .A Smith, D. D. .I 792 .T Multiple-Precision Binary-To-Decimal Integer Conversion Using Only Addition And Subtraction .A Keyes, D. F. Moore, D. P. .I 793 .T Mapped List Structures .A Baecker, H. D. .I 794 .T A List-Type Storage Technique for Alphameric Information .W A method which is economic in terms of space and time is proposed for the storage and manipulation of character strings of arbitrary length in a fixed word-length computer. The method is illustrated in an application to Algol-type identifiers in an Algol-like block structure. .A Bowlden, H. J. .I 795 .T Debugging Systems at the Source Language Level .A Ferguson, H. E. Berner, E. .I 796 .T SABRAG, A Time-Sharing Low-Cost Computer .W The serial SABRAC computer designed and built in the Scientific Department of the Israel defense Ministry has a 5000-location magnetic drum, main store. To avoid a need to resort to optimum programming techniques and to increase its overall efficiency the computer has also been given a 224-word ferrite core store from which the program is obeyed. Transfers between the core and drum stores and to and from the twin paper-tape input and output channels are all available autonomously (concurrently, time-shared). Multiplication and division orders are also autonomous, so that the machine may be executing up to three orders simultaneously. All functions naturally are interlocked. A number of other advanced orders and facilities are also incorporated.In particular, an "Execute" order permits a temporary jump for up to four orders and a second modifier register permits double modification in general and relative addressing of subroutines in particular. Thus the overall effective speed of the machine is muchhigher than its basic specification would lead one to expect and its design indicates one way in which the concepts of time sharing may be incorporated in "low-cost" computers. .A Lehman, M. Netter, Z. Eshed, R. .I 797 .T American Standard Code for Information Interchange .I 798 .T A Catalogue Entry Retrieval System .A Scheff, B. H. .I 799 .T Design of a Separable Transition-Diagram Compiler* .W A COBOL compiler design is presented which is compact enough to permit rapid, one-pass compilation of a large subset of COBOL on a moderately large computer. Versions of the same compiler for smaller machines require only two working tapes plus a compiler tape. The methods given are largely applicable to the construction of ALGOL compilers. .A Conway, M. E. .I 800 .T The Linking Segment Subprogram Language and Linking Loader .A McCarthy, J. Corbato, F. J. Daggett, M. M. .I 801 .T Least Squares Solution with Constraints (Algorithm 177) .A Synge, M. J. .I 802 .T SYMINV2 (Algorithm 150) .A Rutishauser, H. .I 803 .T Syminv2 (Algorithm 150) .A Evans Jr., A. .I 804 .T Exponentiation of Series (Algorithms 134) .A Thacher Jr., H. C. .I 805 .T Newton Maehly (Algorithm 105) .A Kondo, J. .I 806 .T Remark on Certification of Matrix Inversion Procedures .A Moler, C. .I 807 .T Reversion of Series (Algorithm 193) .A Fettis, H. E. .I 808 .T Confluent Hypergeometric (Algorithm 192) .A Relph, A. P. .I 809 .T Hypergeometric (Algorithm 191) .A Relph, A. P. .I 810 .T Complex Power (Algorithm 190) .A Relph, A. P. .I 811 .T Smoothing 2 (Algorithm 189) .A Rodriguez Gil, F. .I 812 .T Smoothing 1 (Algorithm 188) .A Rodriguez-Gil, F. .I 813 .T Differences and Derivatives (Algorithm 187) .A Vande Riet, R. P. .I 814 .T Complex Arithmetic (Algorithm 186) .A Vande Riet, R. P. .I 815 .T Normal Probability for Curve Fitting (Algorithm 185) .A Colker, A. .I 816 .T Erlang Probability for Curve Fitting (Algorithm 184) .A Colker, A. .I 817 .T Nexcom (Algorithm 152) .A Hopley, J. .I 818 .T Realizing Boolean Connectives on The IBM 1620 .A Hellerman, H. Senzig, D. N. .I 819 .T Polynomial Evaluation Revised .A Eisman, S. H. .I 820 .T Checking for Loops in Networks .A Gordon, R. M. .I 821 .T Further Remarks on Sampling a Tape File-III .A Juelich, O. C. .I 822 .T Real-Time Programming Specifications .W Problems in the implementation of large real-time applications are treated, and suggested guidelines for both program and file specifications are developed. The problems delineated also occur in systems programming. .A Head, R. V. .I 823 .T A Syntactic Description of BC NELLIAC .A Huskey, H. D. Love, R. Wirth, N. .I 824 .T DESCRIPTRAN-Automated Descriptive Geometry* .W Descriptive geometry consists of procedures originally designed to solve 3-space geometry problems by graphical constructions and measurement instead of by computation. However, in addition to this it unifies and simplifies the approach to many such problems. When one can call subroutines that compute new coordinates that correspond to those obtainable from the graphical constructions, there is the three-way advantage of the approach of descriptive geometry, the accuracy of computation and the speed of the digital computer. DESCRIPTRAN makes it possible to program many problems in 3-space with a few statements; it consists of 15 subroutines analogous to the procedures of descriptive geometry. .A Kliphardt, R. A. .I 825 .T PIP: A Photo-Interpretive Program for the Analysis of Spark-Chamber Data* .W An operating computer program that processes photographically recorded data is described. The input to the program consists of spark-chamber photographs on which tracks of high-energy particles are recorded. The program automatically scans, measures and performs the preliminary interpretation of these photographs. In continuous operation a processing rate of 5,000 photographic frames per hour is achieved. .A Rudloe, H. Deutsch, M. Marill, T. .I 826 .T Remarks on Fortran Subroutines for Time Series Analysis .A Bennett, C. M. .I 827 .T Disk File Sorting .W Sorting techniques using an IBM 1401 with a random access storage device are evaluated. .A Schick, T. .I 828 .T Incompressible flow Network Calculations .W A general method for the calculation of flows and pressures in fluid flow networks is presented. The method is applicable to computer use. .A Cantrell, H. N. .I 829 .T The External Language KLIPA For the URAL-2 Digital computer .A Greniewski, M, Turski, W. .I 830 .T CORC-The Cornell Computing Language .A Conway, R. W. Maxwell, W. L. .I 831 .T Real Error Function, ERF (Algorithm 123) .A Thacher Jr., H. C. .I 832 .T Curve Fitting with Constraints (Algorithm 74) .A Isoda, K. .I 833 .T Reduction of a Symmetric Bandmatrix to Triple Diagonal Form .A Schwartz, H. R. .I 834 .T Nonrecursive Adaptive Integration (Algorithm 182) .A McKeeman, W. M. Tesler, L. .I 835 .T Complementary Error Function-Large X (Algorithm 181) .A Thacher Jr., H. C. .I 836 .T Error Function-Large X (Algorithm 180) .A Thacher Jr., H. C. .I 837 .T Incomplete Beta Ratio (Algorithm 179) .A Ludwig, O. G. .I 838 .T Direct Search (Algorithm 178) .A Kaupe Jr., A. F. .I 839 .T Least Squares Solution with Constraints (Algorithm 177) .A Synge, M. J. .I 840 .T Least Squares Surface Fit (Algorithm 176) .A Arthurs, T. D. .I 841 .T Shuttle Sort (Algorithm 175) .A Shaw, C. J. Trimble, T. N. .I 842 .T A Posteriori Bounds on a Zero of a Polynomial (Algorithm 174) .A Gibb, A. .I 843 .T Assign (Algorithm 173) .A Hajek, O. .I 844 .T 1410 Fortran Edit Feature .A Fedako,J. E. .I 845 .T Another Test Matrix for Determinants and Inverses .A Caffrey, J. .I 846 .T Self-Inverse Conversion Table .A Sanborn, T. G. .I 847 .T A Penny-Matching Program .W The logic of a penny-matching program written for the CSX-1 is described. .A Wall, E. Brown, R. M. .I 848 .T A Note on Range Transformations for Square Root and Logarithm .W There was the germ of an idea in two previous papers [1,2] which no one seems to have picked up in almost five years. For certain functions it seems desirable to transform the argument to a short range symmetric about 10.1 will give examples of this usage for the square root and logarithm function for both binary and decimal machines. .A Bemer, R. W. .I 849 .T Use of Tree Structures for Processing Files .W In data processing problems, files are frequently used which must both be searched and altered. Binary search techniques are efficient for searching large files, but the associated file organization is not readily adapted to the file alterations. Conversely, a chained file allocation permits efficient alteration but cannot be searched efficiently. A file organized into a tree-like structure is discussed, and it is shown that such a file may both be searched and altered with times proportional to slog(s)N, where N is the number of file items and s is a parameter of the tree. It is also shown that optimizing the value of s leads to a search time which is only 25 per cent slower than the binary search. The tree organization employs two data chains and may be considered to be a compromise between the organizations for the binary search and the chained file. The relation of the tree organization to multidimensional indexing and to the trie structure is also discussed. .A Sussenguth Jr., E. H. .I 850 .T Conversion, Reconversion and Comparison Techniques In Variable-Length Sorting .W The logic is described for converting highly variable input records into a format that can be easily and efficiently processed by a sorting program. The internal record formats are discussed in relation to (1) their conversion from input formats, (2) their reconversion to output formats, and (3) comparison techniques between internal formats. .A Waks, D. J. .I 851 .T Design and Characteristics of a Variable-Length Record Sort Using New Fixed-Length Record Sorting Techniques .W This paper describes the application of several new techniques for sorting fixed-length records to the problems of variable-length record sorting. The techniques have been implemented on a Sylvania 9400 computer system with 32,000 fixed-length words of memory. Specifically, the techniques sequence variable-length records of unrestricted size, produce long initial strings of data, merge strings of data at the power of T-1, where T is the number of work tapes in a system, and do not restrict the volume of input data. .A Goetz, M. A. .I 852 .T A Method of Comparing the Time Requirements of Sorting Methods .A Hall, M. H. .I 853 .T The COBOL Sort Verb .A Paterson, J. B. .I 854 .T Some Characteristics of Sorting in Computing Systems Using Random Access Storage Devices .W The substantial differences in characteristics of random access storage and tape devices dictate that concepts and objectives of computer program design be considered from the viewpoint of the external file medium used. This is particularly true in the case of sorting. In a tape-oriented system, the major sorting problem is that of minimizing merge time despite the limited orders of merge possible. In contrast, sorting in a random access-oriented system encourages the selection of the optimum order of merge from many possible orders. The latter problem is discussed in this paper, along with criteria developed for determining the optimum order of merge according to the various properties of random access storage devices. Attention is also given to the problem of key sorting versus record sorting and the possibly serious disadvantage of key sorting on a random access system. .A Hubbard, G. U. .I 855 .T Organization and Structure of Dataon Disk File Memory Systems for Efficient Sorting and Other Data Processing Programs .W An approach to the organization and structure of data on Bryant Disc File Memory Systems for sorting and performing other data processing functions is presented. The following areas are covered: characteristics of Bryant Disc File Systems on the Bendix G-20 and RCA 301; two proposed "chaining" structures for data; and functions of a Disk File Executive Routine. The concepts for sorting and performing file maintenance processing using the proposed structure and executive routine are discussed. Additionally, it is shown that sorting can be accomplished without the use of disk storage work areas. .A Goetz, M. A. .I 856 .T Sorting with Large Volume, Random Access, Drum Storage .W An approach to sorting records is described using random access drum memory. The Sort program described is designed to be a generalized, self-generating sort, applicable to a variety of record statements. This description is divided into three parts. The first part presents the operating environment; the second defines the general solution; the third part describes the internal sort-merge technique. .A Falkin, J. Savastano Jr., S. .I 857 .T Sorting Nonredundant Files-Techniques Used in the FACT Compiler .W Some typical file structures, including some called "non-redundant," are examined,and the methods used in FACT to sort such files are discussed. .A Glore, J. B. .I 858 .T A Tape File Merge Pattern Generator .W A routine is presented which specifies the sequence of merge cycles to effect the merging of sorted tape files. The routine is designed to minimize elapsed computer time by varying the power of the merge cycles, so as to use all the available tape drives, with its characteristic of assigning one drive to a single-reel file and two drives to each multiple-reel file. .A Cooke, W. S. .I 859 .T Computer Planned Collates .A French, N.C. .I 860 .T A Comparison Between the Polyphase and Oscillating Sort Techniques .W A comparison between the Oscillating and Polyphase Sort techniques is developed for computer systems having from four to ten tape drives. The basis for the comparison is the total reading and writing required for various number of input strings and tape drives for the two techniques. .A Goetz, M. A. Toth, G. S. .I 861 .T Read-Backward Polyphase Sorting .W Read-backward Polyphase sorting provides more efficient use of the tapes available to a sort than most other sorting techniques. Backward Polyphase produces a continuous merging process from n-1 tapes where n is the total number of tapes being used in the sorting process. Any of the available presorting techniques may be used in conjunction with the Polyphase merge sort provided that the presort has the capability of producing both ascending and descending strings and distributing the strings on the various tapes as required by the Polyphase Merge. .A Gilstad, R. L. .I 862 .T String Distribution for the Polyphase Sort .A Malcolm Jr., W. D. .I 863 .T Multiphase Sorting .A Manker, H. H. .I 864 .T An Empirical Study of Minimal Storage Sorting .A Hibbard, T. N. .I 865 .T Internal and Tape Sorting Using the Replacement-Selection Technique .W A general technique for sequencing unsorted records is presented. The technique is shown to be applicable for the first stage of a generalized sort program (the formation of initial strings) as well as for sorting records within a memory storage (an internal sort). It is shown that given N records in memory storage, records are sequenced using 1+log2 N tests per record, that initial string lengths will average 2N for random input records, and that reading, writing and processing can be accomplished simultaneously if the computer permits such overlap. .A Goetz, M. A. .I 866 .T Sorting on Computers .A Gotlieb, C. C. .I 867 .T Least Squares Fitting of Planes to Surfaces Using Dynamic Programming .W Dynamic programming has recently been used by Stone, by Bellman and by Gluss to determine the closet fit of broken line segments to a curve in an interval under the constraint that the number of segments is fixed. In the present paper successive models are developed to extend the method to the fitting of broken plane segments to surfaces z=g(x,y) defined over certain types of subareas of the (x,y)-space. The first model considers a rectangular area, with the constraint that the plane segments are defined over a grid in the (x,y)-space. It is then shown how this model may be incorporated into an algorithm that provides successive approximations to optimal fits for any type of closed area. Finally, applications are briefly described. .A Gluss, B. .I 868 .T A Suggested Method of Making Fuller Use of Strings in ALGOL 60 .A Shoffner, M. G. Brown, P. J. .I 869 .T Term of Magic Square (Algorithm 148) .A Thoro, D. .I 870 .T Term of Magic Square (Algorithm 148) .A Barnecut, J. N. R. .I 871 .T PSIF (Algorithm 147) .A Thacher Jr., H. C. .I 872 .T Adaptive Numerical Integration by Simpson's Rule (Algorithm 145) .A McKeeman, W. M. .I 873 .T Random (Algorithm 133) .A Poore Jr., J. H. .I 874 .T Chebyshev Curvefit (Algorithm 91) .A Hale, R. P. .I 875 .T Incomplete Elliptic Integrals (Algorithm 73) .A van De Riet, R. P. .I 876 .T Complete Elliptic Integral (Algorithm 149) .A Thacher, H. C. .I 877 .T Complete Elliptic Integral of the First Kind (Algorithm 55) .A Thacher Jr., H. C. .I 878 .T Reduction of a Matrix Containing Polynomial Elements (Algorithm 170) .A Hennion, P. E. .I 879 .T Newton Interpolation with Forward Divided Differences (Algorithm 169) .A Kahan, W. Farkas, I. .I 880 .T Newton Interpolation with Backward Divided Differences .A Kahan, W. Farkas, I. .I 881 .T Calculation of Confluent Divided Differences (Algorithm 167) .A Kahan, W. Farkas, I. .I 882 .T Monte Carlo (Algorithm 166) .A Rodman, R. D. .I 883 .T Complete Elliptic Integrals (Algorithm 165) .A Thacher Jr., H. C. .I 884 .T Orthogonal Polynomial Least Squares Surface Fit (Algorithm 164) .A Clark, R. E. Kubik, R. N. Phillips, L. P. .I 885 .T Modified Hankel Function (Algorithm 163) .A Fettis, H. E. .I 886 .T XY-move Plotting (Algorithm 162) .A Stockton, F. G. .I 887 .T Combinatorial of M Things Taken One at a Time, Two at a Time, Up to N at a Time (Algorithm 161) .A Wright, H. V. Wolfson, M. L. .I 888 .T Algorithm 160 Combinatorial of M Things Taken N at A Time .A Wolfson, M. L. Wright, H. V. .I 889 .T Official Actions and Responses to ALGOL As a Programming Language .I 890 .T Selected Definitions .W A selection of the definitions prepared by the ACM Standards Committee's Subcommittee on Programming Terminology is presented for review by the ACM membership. .A Fritz, W. B. .I 891 .T Everyman's Information Retrieval System .W The information retrieval problem whose solution is presented here was posed by a technical library with limited bubget and personnel. The solution, however, is quite general and is applicable to many different types of retrieval problems. Further,the method of solution makes it possible for many groups who have previously dismissed an information retrieval program as expensive and difficult (from a programming stand-point) to reconsider their position, for the present solution makes it possible to install an information retrieval program in less than three months, and with relatively little equipment. .A Whitley, V. W. .I 892 .T RECOL-A Retrieval Command Language .W An interrogation scheme is described for the retrieval and manipulation of data file records. The language of the interrogation scheme allows for selecting file records with the are of logical condition statements, defining record classes, associating file records, editing printed output, and summarizing the results of the above operations. Some examples of a typical file application and the more significant features of a particular machine implementation are given. .A Climenson, W. D. .I 893 .T Significance Arithmetic on a Digital Computer .W The 7090 at NYU has been modified to include a "Significance Mode" of operation which is intended to facilitate the identification of significant bits in the results of floating-point arithmetic operations. The manner in which floating-point arithmetic is handled in this mode is discussed. Several numerical experiments using this mode are described and comparisons are made with the ordinary "normalized mode." Examples include power series evaluation, linear equations solution, determinant evaluation and matrix inversion. .A Goldstein, M. .I 894 .T An Iterative Factorization Technique for Polynomials .W An iterative technique is displayed whereby factors of arbitrary degree can be found for polynomials in one variable. Convergence is shown to occur always if a certain Jacobian does not vanish and if the initial approximation to a factor is near enough to an actual factor. The process is simply programmed, and preliminary results indicate it to be well adapted to use with digital computers. For factors of degree two, the technique is similar to that of Bairstow, the present method being somewhat simpler. .A Luther, H. A. .I 895 .T A Computational Extension of the Variate Difference Method .W Presented here is a computational extension of the variate difference method as developed by G. Tintner [1]. .A Scheinok, P. A. .I 896 .T Characteristic Values and Vectors of Defective Matrices .A Thompson, G. T. .I 897 .T Note on the Proof of the Non-existence of a Phrase Structure Grammar for ALGOL 60 .A Brown, P. J. .I 898 .T Random (Algorithm 133) .A Laughlin, D. L. .I 899 .T Magic Square (Algorithm 117 & 118) .A Bosworth, K. M. .I 900 .T Ancestor (Algorithm 79) .A Thacher Jr., H. C. .I 901 .T Difference Expression Coefficients (Algorithm 79) .A Clark, E. S. .I 902 .T Determinant (Algorithm 159) .A Digby, D. W. .I 903 .T Exponentiation of Series (Algorithm 134 ) .A Fettis, H. E. .I 904 .T Fourier Series Approximation (Algorithm 157) .A Mifsud, C. J. .I 905 .T Algebra of Sets (Algorithm 156) .A Mifsud, C. J. .I 906 .T Combination in any Order (Algorithm 155) .A Mifsud, C. J. .I 907 .T Combination in Lexicographical Order (Algorithm 154) .A Mifsud, C. J. .I 908 .T Test Matrix for Inversion .A LaSor, W. S. .I 909 .T Arithmetizing Declarations (Corrigendum) .A Conway, M. E. Speroni, J. .I 910 .T Selective Instruction Trap for the 7090 .A Mayer, R. J. .I 911 .T A Variant Method of File Searching .A McIlroy, M. D. .I 912 .T Addressing an Array Yi in k-Dimensions by Fortran for Analysis of Variance .A Garber, M. J. .I 913 .T Neliac .A Halstead, M. H. .I 914 .T Jovial and Its Documentation .A Shaw, C. J. .I 915 .T Documentation of IPL-V .A Newell, A. .I 916 .T FORTRAN .A Heising, W. P. .I 917 .T COMIT .A Yngve, V. H. .I 918 .T COBOL .A Cunningham, J. F. .I 919 .T Documentation Problems: ALGOL 60 .A Naur, P. .I 920 .T Toward Better Documentation of Programming Languages .A Yngve, V. H. Sammet, J. E. .I 921 .T Incomplete Elliptic Integrals (Algorithm 73) .A Meyer, N. A. .I 922 .T Multint (Algorithm 32) .A Thacher Jr., H. C. .I 923 .T Gomory (Algorithm 153) .A Bauer, F. L. .I 924 .T Nexcom (Algorithm 152) .A Hopley, J. .I 925 .T Location of a Vector in a Lexicographically Ordered ListAlgorithm 151) .A Walter, H. F. .I 926 .T Syminv2 (Algorithm 150) .A Rutishauser, H. .I 927 .T Linear Programming Applied to Ultraviolet Absorption Spectroscopy .A White, W. C. Shapiro, B. Pratt, A. W. .I 928 .T Character Manipulation in FORTRAN .A Lewis, T. S. .I 929 .T Glossary Construction .A Grems, M. .I 930 .T Decimal-to-Binary Conversion of Short Fields .A Yarbrough, L. D. .I 931 .T Systematic Mistake Analysis of Digital Computer Programs .A Miller, J. C. Maloney, C. J. .I 932 .T Matrix Inversion by Gauss-Jordan Inversion II (Algorithm 120) .A Naur, P. .I 933 .T Magic Squares (Algorithm 117 & 118) .A Naur, P. .I 934 .T Gauss's Method (Algorithm 107) .A Naur, P. .I 935 .T Calculating Primes by Means of GPS (Algorithm) .A Naur, P. .I 936 .T A Set of Test Matrices (Algorithm 52) .A Naur, P. .I 937 .T Inverse of a Finite Segment of the Hilbert Matrix (Algorithm 50) .A Naur, P. .I 938 .T Invert (Algorithm 42) .A Naur, P. .I 939 .T Gamma Function (Algorithm 31) .A Behrenz, P. G. .I 940 .T Generating Discrete Random Variables in a Computer .W This note is concerned with details of how to instruct a computer to choose one from many things with assigned probabilities. The method uses a uniform variable to direct the computer to a memory location; if this is done by a sequence of appropriately chosen conditional probabilities, efficient use of memory space and quite fast programs will result. .A Marsaglia, G. .I 941 .T A Recursive Program for the General n-Dimensional Integral .W A general program is outlined for n-dimensional integration with variable limits. The program is of a recursive nature and uses Simpson's rule combined with repeated bisection to attain the required accuracy. It was developed in the Ferranti Mercury Autocode Scheme. .A Cadwell, J. H. .I 942 .T FORTRAN Subroutines for Time Series Analysis .W The authors have recently been concerned in a time-series study that constituted a fairly typical piece of applied statistical research, involving extensive computations on a moderately large quantity of data. Wehave found that the many different numerical processes that were required could be built up almost completely from a small number of basic operations, and a set of FORTRAN subroutines has been written to perform these. The main purpose of this note is to describe these subroutines, but since the question of general statistical programs is topical [1], we include some general remarks. .A Healy, M. J. R. Bogert, B. P. .I 943 .T Terms Frequently Combined in Problem Description .A Grems, M. .I 944 .T Storage and Search Properties of a Tree-Organized Memory System .W A memory with list properties [1] may be used to construct numeric, alphabetic or alphanumeric trees. Such trees have information storage and retrieval properties applicable to problems involving large quantities of data or to problems where the quantity, word length and distribution of stored information is not known a priori, or changes rapidly during the processing. The purpose of this paper is to examine the storage and search properties of a tree-organized storage system assuming that a memory possessing certain list properties is available. Of prime interest is the application where a symbol table, dictionary or similar file is to be stored and searched. .A Scidmore, A. K. Weinberg, B. L. .I 945 .T Arithmetizing Declarations: An Application to COBOL .A Conway, M. E. Speroni, J. .I 946 .T Suggestions on ALGOL 60 (ROME) Issues - A Report by the American Standards Association Subcommittee X3.4.2 .A Utman, R. E. .I 947 .T Supplement to the ALGOL 60 Report .A Woodger, M. .I 948 .T Note on the Use of Procedures .A Healy, M. J. R. .I 949 .T Integer and Signed Constants in ALGOL .W A few remarks are given on the relations between syntax and semantics in the programming languages. The aim is to point out that, if it is true that the grammar of a context-free language should be conceived not only as a strings-generating device but also as a method for expressing a meaning, then the grammar of ALGOL is open to some criticism. .A Petrone, L. Vandoni, C. E. .I 950 .T Parallel Methods for Integrating Ordinary Differential Equations .W This paper is dedicated to the proposition that, in order to take full advantage for real-time computations of highly parallel computers as can be expected to be available in the near future, much of numerical analysis will have to be recast in a more "parallel" form. By this is meant that serial algorithms ought to be replaced by algorithm which consist of several subtasks which can be computed without knowledge of the results of the other subtasks. As an example, a method is proposed for "parallelizing" the numerical integration of an ordinary differential equation, which process, by all standard methods, is entirely serial. .A Nievergelt, J. .I 951 .T Rational Chebyshev Approximations to the Bessel Function Integrals Kis(x) .W The second Remes algorithm is used to approximate the integrals Kis by rational functions. The related coefficients for the approximations of Ki1, Ki2, Ki3 are given for different precisions. .A Gargantini, I. Pomentale, T. .I 952 .T Another use of FORTRAN II Chaining .A Drath, D. G. .I 953 .T Scanning Text with a 1401 .A Baker, J. J. .I 954 .T A Note on the Calculation of Probabilities in an F-Distribution .A Smillie, K. W. Anstey, T. H. .I 955 .T A Class of Matrices to Test Inversion Procedures .A Cline, R. E. .I 956 .T A Family of Test Matrices .A Newbery, A. C. R. .I 957 .T Method for Partial Rewriting of Magnetic Tape .A Miller, J. A. .I 958 .T A Case of too Much Precision .A Synge, M. J. .I 959 .T Mark Sense and Port-A-Punch Programming Inputs .A Lubbert, W. F. .I 960 .T Curve Fitting with Format Fortran .A Garber, M. J. .I 961 .T Limited Bit Manipulation Using FORTRAN II .W Techniques are developed for manipulating bits using only FORTRAN II. These techniques allow individual bits to be tested, certain fields to be shifted, and numbers coded in BCD to be converted to Binary. .A Oster, C. A. .I 962 .T Double-Precision Squares Root for The CDC-3600 .W In January of 1960, the late Hans J. Maehly completed a summary of approximations to the elementary functions for the CDC-1604 computer. The approximations and techniques suggested by Maehly are equally applicable to the second large computer in the CDC line, the 3600. Unlike the 1604, however, the 3600 has built-in double-precision floating-point arithmetic. The present work, largely inspired by the successes of Maehly and his associates, concerns the extension of one of Maehly's ideas to a double-precision subroutine for the 3600. .A Cody, W. J. .I 963 .T Relative Effects of Central Processor and Input-Output Speeds Upon Throughput on the Large Computer .W Presented in this paper is a technique for determining the relative effects of the internal speed of the computer and the speed of the input-output units upon the overall speed of the system. Equations are derived which permit the determination of these effects from hardware usage measurements. .A White, P. .I 964 .T Mechanization of Tedious Algebra-the e Coefficients of Theoretical Chemistry .W A table of formulas for certain integrals involving Legendre functions has been constructed mechanically by a program which performed algebraic operations. The formulas are all rational algebraic expressions in a single variable and were constructed by a recurrence procedure. They are of interest in molecular quantum chemistry. Trivial coding techniques were used to write the relevant programs in FORTRAN. The results were photo composed on a Photon S-560 system, that was controlled by tapes which were punched directly from the computer output, so avoiding manual keyboarding, transcription errors and keyboarded correction. .A Wactlar, H. D. Barnett, M. P. .I 965 .T Greatest Common Divisor (Algorithm 237 [A1]) .A Bray, T. A. .I 966 .T Evaluation of Determinant (Algorithm 224 [F3]) .A Hasselblad, V. Rulifson, J. .I 967 .T Complementary Error Function (Algorithm 181 [S15]) .A Clausen, I. Hansson,L. .I 968 .T Radical-Inverse Quasi-Random Point Sequence (Algorithm 247 [G5]) .A Halton, J. H. Smith, G. B. .I 969 .T Graycode (Algorithm 246 [Z]) .A Boothroyd, J. .I 970 .T Treesort 3 (Algorithm [M1]) .A Floyd, R. W. .I 971 .T Time Sharing in a Traffic Control Program .W The Toronto traffic signal control system consists of a variety of logically distinct computer programs, all competing for machine time. To satisfy these demands, a time-sharing program has been written whose purpose is to execute, in the order of a predefined priority, the various subprograms within the real-time system. In this paper the more interesting aspects of the time-sharing program are outlined. .A Green, L. E. S. .I 972 .T An Executive System Implemented as a Finite-State Automaton .W The 473L command and control system used by the Air Force permits many operators to access large data files through the use of a computer. The man-machine interface is satisfied by several communication consoles from which operators may enter queries and view replies. A data link permits remote stations to send messages, status reports and inventories directly to the computer. The information received over the on-line data link is used to update the data files which are stored on disk. The 473L programming system is divided into an Executive Control Program and five components with different processing priorities. These priorities permit the system to be most sensitive to the console inputs and permit the operators at all the consoles to time share the central processor. The Executive Control Program provides for the orderly transitions of control among the programming system components. The major emphasis of the paper is on the technique of using the definition of a finite-state automaton for organizing the Executive Control Program. .A Heistand, R. E. .I 973 .T Estimation of Heart Parameters Using Skin Potential Measurements .W A fundamental problem of vector cardiography is the estimation of the state of the heart on the basis of skin potential measurements. A mathematical model relating ventricular dipoles to surface potentials is sketched. Then it is shown that the inverse problem-that of determining electrical heart parameters on the basis of skin potential measurements-may be viewed as a nonlinear multipoint boundary value problem. A feasible solution, employing quasilinearization and high-speed digital computers, is given. .A Bellman, R. Collier, C. Kagiwada, H. Kalaba, R. Selvester, R. .I 974 .T A Technique for Reading Gapless Tapes Makes Electrocardiograph Analysis Feasible on the IBM 7090 .W To study arrhythmias and higher frequency components of the electrocardiogram, long series of patient heart cycles must be examined before valid comparison of different heart beats can be made. A technique is presented for the automatic analysis of long series heart cycles via a digital computer. .A Maher, A. S. .I 975 .T The New Program of Work for the International Standard Vocabulary in Computers and Information Processing .A Traub, J. F. .I 976 .T Fresnel Integrals (Algorithm 213 [S20]) .A Gray, M. .I 977 .T Conversions Between Calendar Date and Julian Day Number (Algorithm 199 [Z]) .A Oppenheim, D. K. .I 978 .T Fresnel Integrals (Algorithm 244 [S20]) .A Lotsch, H. .I 979 .T Logarithm of a Complex Number (Algorithm 243 [B3]) .A Collens, D. S. .I 980 .T Multiple-Precision Arithmetic and the Exact Calculation of the 3-j, 6-j and 9-j Symbols .W Described in this paper is a system of general-purpose multiple-precision fixed-point routines and their use in subroutines which calculate exactly the quantum-mechanical 3-j, 6-j and 9-j symbols of large arguments. .A Maer, R. M. Redlich, M. G. .I 981 .T Rounding Problems in Commercial Data Processing .W A common requirement in commercial data processing is that the sum of a set of numbers, rounded in a generally understood manner, be equal to the sum of the numbers rounded individually. Four rounding procedures are described to accomplish this. The particular procedure that is appropriate depends upon whether the numbers being accumulated can vary in sign, whether their sum can vary in sign, and whether the last number being summed can be recognized as such prior to its rounding. .A Kelley, T. B. .I 982 .T An Inductive Approach to Language Translation .W The possibility of natural language translation by means of fixed operations on example translations is considered. The conception of sentence translation which motivates the work is informally presented, and the measurement of physical similarity in pairs of strings is discussed, a notion which plays a central role in the proposed type of translator. Experimental evidence is presented in support of the premise upon which this conception is based. .A Faulk, R. D. .I 983 .T Take-up reels for One-Inch Perforated Tape for Information Interchange (Proposed American Standard) .I 984 .T Report on Input-Output Procedures for ALGOL 60 (IFIP) .I 985 .T Report on SUBSET ALGOL 60 (IFIP) .I 986 .T Proposed Amendment to Proposed American Standard on Specification for General-Purpose Paper Cards for Information Processing .I 987 .T FORTRAN vs. Basic FORTRAN (A Programming Language for Information Processing on Automatic Data Processing Systems) .I 988 .T History and Summary of FORTRAN Standardization Development for the ASA .A Heising, W. P. .I 989 .T A Method of Syntax Specification .A Iverson, K. E. .I 990 .T Constraint-Type Statements in Programming Languages .W A proposal is made for including in a programming language statements which imply relations between variables but which are not explicit assignment statements. The compiler sets up a Newtonian iteration making use for the purpose of a routine for formal differentiation. .A Wilkes, M. V. .I 991 .T Gamma Function with Controller Accuracy (Algorithm 225 [S14]) .A Bray, T. A. .I 992 .T Gamma Function (Algorithm 221 [S14]) .A McCombs, V. K. .I 993 .T Kutta Merson (Algorithm 218 [D2]) .A Priebe, K. B. .I 994 .T Stringsort (Algorithm 207 [M1]) .A Blair, C. R. .I 995 .T Steep1 (Algorithm 203 [E4]) .A Wallack, P. .I 996 .T Permutations of a Set with Repetitions (Algorithm 242 [G6]) .A Sag, T. W. .I 997 .T Patent Protection of Computer Programs .A Jacobs, M. C. .I 998 .T Computer Programs are Patentable .A Hamlin, K. B. .I 999 .T Joint Inventorship of Computers .A Hauptman, G. A. .I 1000 .T Computer Patent Disclosures .A Kates, J. P. .I 1001 .T Copyright Aspects of Computer Usage .W This paper is concerned with the question of what constitutes infringement of a copyright on a book or other nondramatic literary work when the work is fed into a computer and is indexed, analyzed, partially reprinted, or otherwise utilized by the computer to produce eye-readable output. The question of copyrightability of programs and infringement of copyrights on programs is also discussed. The paper is directed primarily to a discussion of the present law. Some aspects of the proposed new copyright law are also included. General recommendations are made with respect to the proposed revision of the copyright law. .A Lawlor, R. C. .I 1002 .T A Rapid Method for Digital Filtering .W Since much of the computer time spent in time-series analysis is used for multiplications, a minimum multiplication method was devised for digital filtering, with the expectation that it would be useful in the on line, real-time analysis of biological data. The filters are constructed from a succession of readily analyzable components in a manner that facilitates cascading. The repertoire of frequency response curves includes relatively good low-pass and band-pass designs. Programs are available for implementing both the synthesis of these filters, and their application on computers whose assemblers allow the definition of recursive macros. .A Whittlesey, J. R. B. .I 1003 .T A Computer Analysis Method For Thermal Diffusion in Biochemical Systems .W In the thermal detection of rapid biochemical reactions it is necessary to correct the temperature data for transient heat conduction losses in a cylindrical calorimeter. To handle the complexities arising from varying thermal-relaxation times of concentric insulating layers, a computer program was developed which gives the temperature distribution of the system as a function of radius and time. This distribution is corrected at each step by a subroutine which calculates the instantaneous chemical state of there action, as well as the heat produced by this reaction. The program is based on a direct statement of Fourier's law of heat conduction and the chemical rate equation to provide a "bookkeeping law" to follow the reactants and the flow of heat packets, in such a way that the computer continually stores the heat distribution. A computer analysis method is here regarded as one in which the physical laws of a process are used explicitly in the program. Usually this results in by passing much of the mathematical procedures conventionally used. The program was tested against some known exact solutions of the heat equation and gave identical results, and compared well with experimental data of a known biochemical reaction. The construction of computer programs based on the direct statement of the physical laws is a principle of general applicability which has been applied to several other physical phenomena. .A Davids, N. Berger, R. L. .I 1004 .T Arctangent (Algorithm [B1]) .A Mills, K. W. .I 1005 .T Coordinates on an Ellipsoid (Algorithm 240 [Z]) .A Dorrer, E. .I 1006 .T A Storage Allocation and Reference Structure .W A method is proposed and discussed which allows a subscripted-variable capability (in the FORTRAN sense) to be added to AUTOCODER-Type assembly systems. .A Fitzwater, D. R. .I 1007 .T Extension of Existing Compilers By Sophisticated Use of Macros .W A description is presented of an application in which macros and string concatenation were employed to add a new facility to BELFAP. .A Benett, R. K. Neumann, H. D. .I 1008 .T Scheduling Meetings with a Computer .W Computer scheduling of papers as it was developed for the 1960 meeting of the Federation of American Societies for Experimental Biology (FASEB) is described. The FASEB meeting is the largest scientific meeting held in the United States each year. The technique developed for FASEB can be applied to schedule any meeting with parallel sessions. .A Schultz, C. K. Brooks, A. Schwartz, P. .I 1009 .T Solution of Combinatorial Problems Using Generating Functions on a Variable-Field Computer .W The utility of generating functions in solving combinatorial problems is discussed. Particular implementation results are presented and evaluated. .A Weinberg, G. M. .I 1010 .T A Multiuser Computation Facility for Education and Research .W Present-day computing facilities are limited in their value for scientific research by inability to interact strongly with users. The full power of a research computing instrument should be available at many terminals that give each user the ability to generate, correct and operate any procedure he wishes, either simple or complex. Implementation is described for a small-scale multiuser computer system that permits several users to work independently with the machine, and to obtain satisfactory response using typewriter communication. .A Dennis, J. B. .I 1011 .T Logarithm of a Complex Number (Algorithm 48 [B3]) .A Collens, D. S. .I 1012 .T Formal Parsing Systems .W Automatic syntactic analysis has recently become important for both natural language data processing and syntax-directed compilers. A formal parsing system G = (V,u,T,R) consists of two finite disjoint vocabularies, V and T, a many-many map, u, from V onto T, and a recursive set R of strings in T called syntactic sentence classes. Every program for automatic syntactic analysis determines a formal parsing system. A directed production analyzer (I,T,X,p) is a nondeterministic pushdown-store machine with internal vocabulary I, input vocabulary T, and all productions of p in the form: (Z,a) -> aY1 ... Ym where Z, Yi are elements of the set I and a is an element of the set T. Every context-free language can be analyzed by a directed production analyzer. The Kuno-Oettinger multiple-path syntactic analyzer for English is a concrete example of a directed production analyzer and of a working parsing algorithm. The connection between structures assigned by the analyzer and those of a conventional phrase structure grammar is examined in this paper. .A Greibach, S. A. .I 1013 .T Final Examination Scheduling .W A method for scheduling final examinations to yield a minimal number of student conflicts is described. The "minimization" is achieved by repetitively evaluating a nonlinear set of equations. Imbeded in the process is a random or Monte Carlo selection of assignments. As in such heuristic techniques, the solution may not be optimum and many solutions may be found which yield locally minimal results. Computer programs are described and empirical results given. .A Broder, S. .I 1014 .T Machine Controls for Analysis of Variance .W A major problem in using the analysis of variance, as the number of factors increases, is the exponential rise in the number of interactions. Even though the experimenter may not be interested in these interactions it is impossible to ignore them in most experimental designs because of the problem of getting error terms. It is natural therefore to look to the computer to handle the bulk of work involved in computing the interactions. A program device to get the computer to do this is described. .A Weldon, R. J. .I 1015 .T Near-Minimax Polynomial Approximations and Partitioning of Intervals .W A method of near-minimax polynomial approximation is described. As a by-product, this method provides a formula for an estimate of the maximum error associated with a given degree of approximation. Using this formula, a partitioning algorithm is obtained for dividing a basic interval into subintervals for which approximations of equal degree give equal maximum error. .A Fraser, W. Hart, J. F. .I 1016 .T Interchangcable Perforated Tape Variable Block Formats for Positioning and Straight Cut (RS-273) and Contouring and Contouring/Positioning (RS-274) Numerically Controlled Machine Tools (Proposed American Standards) .I 1017 .T Comments on Bit-Sequencing of the ASCII in Serial-by-Bit Data Transmission .A Bemer, R. W. Booth, J. .I 1018 .T Gauss (Algorithm 209 [S15]) .A Pike, M. C. .I 1019 .T XY move Plotting (Algorithm 162 [J6]) .A Cavin, D. K. .I 1020 .T Free Field Read (Algorithm 239 [I5]) .A McKeeman, W. M. .I 1021 .T Conjugate Gradient Method (Algorithm 238 [F4]) .A Reeves, C. M. .I 1022 .T Greatest Common Divisor (Algorithm 237 [A1]) .A Peck, J. E. L. .I 1023 .T Bessel Functions of the First Kind (Algorithm 236 [S17]) .A Gautschi, W. .I 1024 .T A Note on the Formation of Free List .A Waite, W. M. .I 1025 .T A Method of Syntax-Checking ALGOL 60 .W A syntax checker was designed based on the syntax of ALGOL as described in the ALGOL 60 Report [Communications of the ACM, May, 1960]. Since the definition of the elements of the language is recursive it seemed most desirable to design the syntax checker as a set of mutually recursive processors tied together by subroutines which perform certain bookkeeping functions. Because of the recursive nature of the language and of the syntax checker the problem of recovery after an error required much attention. A method was devised which permits most programs to be checked completely despite errors. .A Lietzke, M. P. .I 1026 .T Divide-and-Correct Methods for Multiple Precision Division .W A division problem is defined and notation to relate it to the problem of multiple precision operation in a digital computer is introduced. A basic divide-and-correct method for multiple precision division is formulated and its known properties briefly reviewed. Of particular interest is the fact that the method produces at each step a set of precisely three estimates for the desired result, one of which is exact. .A Stein, M. L. .I 1027 .T An Alternate Checksum Method .A Newhall, N. S. .I 1028 .T Investigation of a New Analytical Method for Numerical Derivative Evaluation .W A recently proposed analytical approach to numerical derivative evaluation is discussed. The technique is shown to be both accurate and easy to apply, though certain indicated modifications are required. Its use should greatly facilitate the writing and debugging of programs requiring derivatives of highly complex functions. .A Wilkins, R. D. .I 1029 .T A Simple Automatic Derivative Evaluation Program .W A procedure for automatic evaluation of total/partial derivatives of arbitrary algebraic functions is presented. The technique permits computation of numerical values of derivatives without developing analytical expressions for the derivatives. The key to the method is the decomposition of the given function, by introduction of intermediate variables, into a series of elementary functional steps. A library of elementary function subroutines is provided for the automatic evaluation and differentiation of these new variables. The final step in this process produces the desired function's derivative. The main feature of this approach is its simplicity. It can be used as a quick-reaction tool where the derivation of analytical derivatives is laborious and also as a debugging tool for programs which contain derivatives. .A Wengert, R. E. .I 1030 .T Techniques for the Simulation of Computer Logic .W The simulation of a digital computer is an integral part of most computer design automation systems. The evaluation of the Boolean functions which characterize the computer being simulated constitutes one major portion of a simulation system. Four general procedural classes for evaluating these functions are defined. Toward greatly increased efficiency of a simulation system, methods are presented for simultaneously evaluating many functions for one set of values of the variables,and for evaluating simultaneously one function for many sets of values for the variables. .A Breuer,M. A. .I 1031 .T A Note on Starting the Newton-Raphson Method .W Determination of a suitable initial estimate for a root of an equation f(x) = 0 by means of computing the roots of a sequence of related equations is described. .A Beyer, W. A. .I 1032 .T Theoretical Considerations in Information Retrieval Systems .W Information storage and retrieval systems are composed of three major components: (a) identification of information and tagging it for effective retrieval, (b) searching strategy, how to enter the file to circumvent the scanning of nonrelevant material, and (c) file organization to make access to information efficient. For identification of information the paper suggests that a metalanguage (recently discussed in a paper by Goffman, Verhoeff and Belzer) associated with an object language be used. For searching strategy, a linear model for an evaluation function of relevancy is developed which rewards the system for retrieving relevant documents and not retrieving the nonrelevant, and penalizes the system for the escaped relevant documents and false drops. The inadequacies of a linear model are indicated. Two approaches to file organization are discussed. One is self-organization of the file based on its history and past performance, and the second is a self-generating subset of the file with a high probability of being relevant. .A Belzer, J. Goffman, W. .I 1033 .T Experimental Personalized Array Translator System .W A system designed for intimate man-machine interaction in a general-purpose problem-solving environment is experimentally operational. The system utilizers an array-oriented symbolic source language containing powerful statement types. These include numeric, Boolean, relational and selection operators on operands which can be entire arrays. The system also permits simple specification of test and argument arrays in single statements. The completely symbolic operating system includes display and entry of program and data. Sequence control is aided by an interrupt switch which allows the user to interact with the program during execution. In addition to normal stored program sequencing, the system provides trace options and the ability to enter any statement for immediate execution. Present implementation of the system is with an interpretive translator on an IBM 1620 computer. .A Hellerman, H. .I 1034 .T Autosate .W An automated data system analysis technique is described. The technique is designed to alleviate some of the principal problems that beset current analysis-large data workloads, long span of time between project inception and system operational date, the lack of explicit directions for conducting data system analysis and using the results, and the lack of a technique to control data system changes throughout its lifetime. The analysis is geared to determining workload, relationships and storage characteristics of documents in the information network automatically. .A Gatto, O. T. .I 1035 .T Characteristics of the FORTRAN CEP Language .W The FORTRAN CEP languages differs from FORTRAN II mainly because: (1) it extends the variety of the modes for real quantities; (2) it allows suitable mixtures, in an input/output list or in an expression, of quantities that occur under different modes; (3) it makes it possible to address a greater number of input/output equipment; and (4) it removes the restrictions on the complexity of the list of quantities to be transmitted between the magnetic core memory and the drum or the magnetic tape units. .A Mancino. O. G. .I 1036 .T Remark on Further Generalization of ALGOL .A Garwick, J. V. .I 1037 .T Reduction of a Matrix Containing Polynomial Elements (Algorithm 170 [F3]) .A Priebe, K. B. .I 1038 .T Crout with Equilibration and Iteration (Algorithm 135 [F4]) .A McKeeman, W. M. .I 1039 .T Summation of Fourier Series (Algorithm 128 [C6]) .A Thacher Jr., H. C. .I 1040 .T Romberg Integration(Algorithm 60 [D1]) .A Thacher Jr., H. C. .I 1041 .T Random Permutation (Algorithm 235 [G6]) .A Durstenfeld, R. .I 1042 .T Poisson-Charlier Polynomials (Algorithm 234 [S23]) .A Simoes Pereira, J. M. S. .I 1043 .T Talk-A High-Level Source Language Debugging Technique With Real-Time Data Extraction .W TALK, meaning Take A Look, is a debugging technique which aids substantially in debugging complex real-time programming systems by interrupting the users program at desired points to extract previously specified data. The extracted data is later edited, listing the associated data with its high-level source language identification. .A verSteeg, R. L. .I 1044 .T An Automatic Loader for Subroutine Nests .W A method for automatic loading of library subroutines, which can be adapted to operate in conjunction with any conventional two-pass assembler is described. The method is specifically designed to cope with a nested library structure. .A Kanner, H. .I 1045 .T Programming Analysis of Variance by Sequences of Operators and Isomorphic Mappings .W A special operator calculus developed by Hartley in 1956 together with a new mapping scheme has been found to be efficient in programming analysis of variance for multifactor experiments. The operator calculus and the mapping scheme are described in detail. .A Peng, K. C. .I 1046 .T A Compiler-Building System Developed by Brooker and Morris .W In a number of articles published during the past two years, R. A. Brooker and D. Morris (joined by J.S. Rohl in their most recent paper have presented a very interesting programming system that they have developed for the Ferranti Atlas computer. The present paper describes some of the major features of their system. it expands on some points that the original authors cover briefly, and treats only very lightly some topics to which they devote considerable space. The purpose of this paper is purely expository. Except in some very small details, and in some comments, it does not intentionally depart from or add to the material published in the listed references. .A Rosen, S. .I 1047 .T Generation of Test Matrices by Similarity Transformations .W A method for obtaining test matrices with a prescribed distribution of characteristic roots is given. The process consists of using particularly simple similarity transformations to generate full matrices from canonical forms. The matrices generated also have known characteristic vectors, inverses and determinants. .A Ortega, J. M. .I 1048 .T Approximate Solution of Axially Symmetric Problems .W A variety of physical problems in such diverse fields as electrostatic field theory, heat and ideal fluid flow, and stress concentration theory reduce, under the assumption of axial symmetry, to the study of an elliptic partial differential equation. Dirichlet-type problems associated with this equation are studied on regions whose boundaries include a nondegenerate portion of the x-axis and exceedingly accurate numerical methods are given for approximating solutions. .A Greenspan, D. .I 1049 .T Numerical Solution of Nonlinear Two-Point Boundary Problems by Finite Difference Methods .W Solution of nonlinear two-point boundary-value problems is often an extremely difficult task. Quite apart from questions of reality and uniqueness, there is no established numerical technique for this problem. At present, shooting techniques are the easiest method of attacking these problems. When these fail, the more difficult method of finite differences can often be used to obtain a solution. This paper gives examples and discusses the finite difference method for non-linear two-point boundary-value problems. .A Holt, J. F. .I 1050 .T A Parts Breakdown Technique Using List Structures .W List structured parts breakdown is proposed and discussed. Implementation facts are presented on operating program using these techniques. .A Brian, W. J. .I 1051 .T Multiword List Items .W The list concept as originally proposed by Newell, Simon and Shaw specified single computer words as elements of a list. This report describes the use of two or more consecutive words as one element. Such use results in a considerable saving in both the space required to hold a given amount of data, and in the execution time required to perform a given process on the data. Following a brief description of standard list structures with single-word items, the multiword items are introduced. Then variable-length items are described, along with the corresponding space-utilization problems. Finally, several examples are given to illustrate the use of multiword lists. This paper attempts to draw together various recent papers which have applied some of these concepts in different ways, and indicate how they relate to the more general problems. .A Comfort, W. T. .I 1052 .T Reducing Truncation Errors by Programming .W In accumulating a sum such as in a numerical integration with a large number of intervals, the sum itself becomes much larger than the individual addends. This may produce a less accurate sum as the number of intervals is increased. Separate variables can be established as accumulators to hold partial sums within various distinct intervals. Thus, the extensive successive truncations are eliminated. .A Wolfe, J. M. .I 1053 .T Design and Implementation of a General-Purpose Input Routine .W A general-purpose input routine is discussed and advocated for FORTRAN. The philosophy of such programs is examined and exemplified. .A Hassitt, A. .I 1054 .T Gauss-Seidel (Algorithm 220 ) .A Batson, A. P. .I 1055 .T q-Bessel Functions In(t) (Algorithm 214) .A Simoes Pereira, J. M. S. .I 1056 .T Shellsort (Algorithm 201) .A Batty, M. A. .I 1057 .T Critical Path Scheduling (Algorithm 40) .A Hoffman, I. A. .I 1058 .T Simpson's Rule for Multiple Integration (Algorithm 233) .A Olynyk, F. .I 1059 .T Heapsort (Algorithm 232) .A Williams, J. W. J. .I 1060 .T Matrix Inversion (Algorithm 231) .A Boothroyd, J. .I 1061 .T Matrix Permutation (Algorithm 230) .A Boothroyd, J. .I 1062 .T Symbol Manipulation in FORTRAN-SASP I Subroutines .W A set of subroutines for use in FORTRAN are described whose purpose is to synthesize output strings from (i) input strings which have been analyzed by the SHADOW general syntactic analysis subroutine reported earlier, and/or (ii) packed BCD strings formed in any way. Function-type subroutines are included for intermediate manipulations, which are performed on the strings which are stored in an abbreviated internal representation. The automatic way in which an internal representation for each newly created substring is stored sequentially in a block of common storage, and the manner in which a storage block is dynamically allocated for that purpose, are discussed. .A Bailey, M. J. Barnett, M. P. Burleson, P. B. .I 1063 .T One-Inch Perforated Paper Tape for Information Interchange (Proposed American Standard) .I 1064 .T Perforated Tape Code for Information Interchange (Proposed American Standard) .I 1065 .T Bit Sequencing of the American Standard Code for Information Interchange (ASCII) in Serial-by-Bit Data Transmission (Proposed American Standard) .I 1066 .T Growing Applications of Linear Programming .W Use of linear programming models has grown so extensively in recent years that the whole concept for organizing a computer code has undergone a radical change. It no longer is adequate merely to reduce a mathematical algorithm (i.e. the simplex method) to a computer code. An advanced code must cope with such a variety of situations that the respective computer subprograms must be organized into an integrated system. Emphasis in this paper is devoted to the underlying principles upon which future linear programming systems must be based. These viewpoints are influenced by the new demands that applications within the petroleum industry are placing on such systems. Some of the components of such a system are: translation of problem statement in terms of basic data to linear programming matrix coefficients, data transmission for direct computer entry, data file at the computer center, data processing and editing prior to solving the simplex algorithm, an efficient and reliable code for solving the above-mentioned algorithm, and flexible means for summarizing the results. .A Aronofsky, J. S. .I 1067 .T Picture Generation With a Standard Line Printer .W A method is described for producing gray-toned pictures on a line printer by utilizing the different degrees of blackness of standard print characters. Gray scales with 17, 32 and 64 levels have been devised. Scanned images of blood cells are used to display the technique. .A Perry, B. Mendelsohn, M. L. .I 1068 .T A FORTRAN II Load-Time-Saver .A Ackermann, A. F. .I 1069 .T A Method for Comparing the Internal Operating Speeds of Computers .A Raichelson, E. Collins, G. .I 1070 .T Expand, A System for Input Card Replication .A Warrington, J. A. Norris, J. H. .I 1071 .T Computer-Usage Accounting for Generalized Time-Sharing Systems .W The current development of general time-sharing systems requires a revision of accounting procedures for computer usage. Since time-sharing system users operate concurrently, it is necessary to be more precise as to the amount of computer time and storage space that a user actually utilizes. The various cost factors which should be considered for computer usage accounting in generalized time-sharing systems are discussed. .A Rosenberg, A. M. .I 1072 .T An Improved Equivalence Algorithm .W An algorithm for assigning storage on the basis of EQUIVALENCE, DIMENSION and COMMON declarations is presented. The algorithm is based on a tree structure, and has reduced computation time by 40 percent over a previously published algorithm by identifying all equivalence classes with one scan of the EQUIVALENCE declarations. The method is applicable in any problem in which it is necessary to identify equivalence classes, given the element pairs defining the equivalence relation. .A Galler, B. A. Fisher, M. J. .I 1073 .T A Fast Procedure for Generating Exponential Random Variables .W A very fast method for generating exponential random variables in a digital computer is outlined. .A MacLaren, M. D. Marsaglia, G. Bray, T. A. .I 1074 .T Shanks (Algorithm 215) .A Schumaker, L. .I 1075 .T Shuttlesort (Algorithm 175) .A Juelich, O. C. .I 1076 .T Multiple Integration (Algorithm 146) .A Wirth, N. .I 1077 .T Chebyshev Curve Fit (Algorithm 91) .A Naur, P. .I 1078 .T Elementary Functions by Continued Fractions (Algorithm 229) .A Morelock, J. C. .I 1079 .T Q-Bessel Functions (Algorithm 228) .A Simoes Pereira, J. M. S. .I 1080 .T Chebyshev Polynomial Coefficients (Algorithm 227) .A Cyvin, S. J. .I 1081 .T Normal Distribution Function (Algorithm 226) .A Cyvin, S. J. .I 1082 .T Gamma Function with Controlled Accuracy (Algorithm 225) .A Cyvin, S. J. Cyvin, B. N. .I 1083 .T An Experiment in a User-Oriented Computer System .W A version of a software-hardware system for the purpose of facilitating the programming and analysis of well-formulated problems is described. A modified Flexowriter is used to generate computer-acceptable input when equations or computable requests are typed in much the same manner as they would appear in conventional mathematical texts. The typing and language rules are quite flexible and unrestrictive. While the compiler part is efficient, the system as a whole has much broader aspects as a tool for the study of problem solving and self-teaching systems. .A Klerer, M. May, J. .I 1084 .T On Declaring Arbitrarily Coded Alphabets .W The inability of existing programming languages to handle character strings from more than one or two alphabets is mentioned and a scheme for declaring additional alphabets is proposed. The scheme provides for: many-to-one encodings, right or left justification, collating sequences different from numeric sequence, variations in character size (number of bits.) from alphabet to alphabet, and arbitrary source-language character representation. .A Shaw, C. J. .I 1085 .T Specification for General-Purpose Paper Cards for Information Processing (Proposed American Standard) .I 1086 .T A Proposal for Input-Output Conventions in ALGOL 60-A Report of the Subcommittee on ALGOL of the ACM Programming Language Committee .I 1087 .T Problems in Automatic Abstracting .W A variety of problems concerning the design and operation of an automatic abstracting system are discussed. The purpose is to a general view of several major problem areas. No attempt is made to discuss details or to indicate preferences among alternative solutions. .A Edmundson, H. P. .I 1088 .T Menu Planning by Computer .W A computer code has been developed which plans menus by finding minimum cost combinations of menu items such that the daily dietary, gastronomic and production requirements can be satisfied for a sequence of days. A fast, special integer programming algorithm is described which approximates the theoretical solution to the problem. If necessary, any menu can be changed on-line and then post-optimized. Up to 30 percent saving on food cost is possible. A FORTRAN program for the IBM 1410 is available on request. A considerable amount of data processing must precede the implementation of the system. .A Balistfy, J. L. .I 1089 .T Designing a Computer Center .A Denison, A. Popov, G. .I 1090 .T Incomplete Beta Function Ratios (Algorithm 222) .A Gautschi, W. .I 1091 .T Hypergeometric and Confluent Hypergeometric (Algorithm 191 & 192) .A Thacher Jr., H. C. .I 1092 .T Nonrecursive Adaptive Integration (Algorithm 182) .A Butler, H. S. .I 1093 .T Evaluation of Determinant (Algorithm 224) .A Rotenberg, L. J. .I 1094 .T Prime Twins (Algorithm 223) .A Shimrat, M. .I 1095 .T Decimal Tables of Binary Coded Tables .A Griebrok, M. .I 1096 .T On Avoiding Matrix Reversals Between 7090 FORTRAN II and 7090 FORTRAN IV .A Stevens, D. Benson, B. .I 1097 .T An Algorithm for Converting Integers from Base A to Base B .W A little known, simple algorithm for integer conversion between number systems is presented and proved. .A Gladwin, H. T. .I 1098 .T A Comparison of List-Processing Computer Languages (Including a Detailed Comparison of COMIT, IPL-V, LISP 1.5, and SLIP) .W A detailed comparison is presented of COMIT, IPL-V, LISP 1.5 and SLIP - four well-known computer programming languages which, among them, exhibit all the principal characteristics of existing list-processing languages. Important common features of list-processing languages are reviewed: forms of data structures which are manipulated, necessity for dynamic allocation of storage, use of pushdown stores, and use of recursive operations. Principal differences between the four languages under consideration are detailed: representations of data, both by the programmer and within the machine; methods for storage allocation; programming formalisms and special processes available, including arithmetic facilities; and usability in terms of availability, documentation, learning aids and debugging facilities. A rough comparison shows that all the languages discussed have approximately the same speed. Finally, the authors give some heuristics to aid in the selection of one of these languages for use in particular problem applications, concluding that no one of the languages considered is distinctly superior in all possible list-processing applications. .A Bobrow, D. G. Raphael, B. .I 1099 .T Professional Computer Work for the Blind .W Developments in computer technology have opened new professional opportunities for the intelligent blind. Since there are few if any occupations in which the blind can participate without serious disadvantage, the opportunities offered them to gain entrance into various occupations through computer use including that of programmer, is important for future rehabilitation planning. Also of immediate interest is the fact that the blind may be especially suited for programming work. Because of intense training in and constant experience with locating objects in the unseen environment and also because of superbly trained memory, the blind brings to the work of programming skills which the sighted has had little need to acquire. These qualifications should result in fewer debugging problems and make the blind a valuable addition to any systems group. Before the blind could become a serious professional, a number of aids and techniques had to be developed that can mediate between machines and programmer. This paper describes the techniques and aids which were designed by the staff of the Medical Computing Center of the University of Cincinnati College of Medicine. .A Sterling, T. D. Lichstein, M. Scarpino, F. Stuebing, D. .I 1100 .T Status of Computer Sciences Curricula in Colleges and Universities .A Atchison, W. F. Hamblen, J. W. .I 1101 .T The Place of Logical Design and Switching Theory In The Computer Curriculum .A Muller, D. E. .I 1102 .T Mechanical Languages: A Course Specification .A Gorn, S. .I 1103 .T Logic for the Computer Sciences .A Korfhage, R. R. .I 1104 .T An Undergraduate Curriculum in Numerical Analysis .A Forsythe, G. E. .I 1105 .T On Introducing Digital Computing .A Arden, B. W. .I 1106 .T Programming of Digital Computers .A Perlis, A. J. .I 1107 .T Computers and Education .A Keenan, T. A. .I 1108 .T Digital Data Processor for Tracking the Partially Illuminated Moon* .W A study of lunar tracking techniques and fabrication of a breadboard to assess the feasibility of the best technique selected was conducted to define a tracking system for observation of the sight line to the center of a partially illuminated moon. The data processing portion of the system is presented in detail and then described in general are the operation of the tracker head assembly for data readout, the operation of the entire system and the effect data processing considerations have on the design of the tracker system. The system basically consists of an optical sensor, digital computer and tracker drive mechanism. The three system units, connected in cascade, comprise the control loop. For this application, an optical telescope with a radial mechanical scanning mechanism was used that read out lunar sight line measurement information. This information is sequentially read into a special purpose digital computer that extracts the measurements and computes the error signals that drive the tracker to the appropriate attitude. .A Wilcox, H. J. .I 1109 .T Conversion of a Power to a Series of Chebyshev Polynomials* .W Even slowly convergent power series can be rearranged as series in Chebyshev polynomials if appropriate sequence transformations are used in evaluating the coefficients. The method is illustrated by computing the coefficients for the expansion of the logarithm and dilogarithm. .A Thacher Jr., H. C. .I 1110 .T A Fourier Series Method for the Numerical Solution of a Class of Parabolic Partial Differential Equations* .W A Fourier series method is described which, when applied to a certain class of parabolic partial differential equations, reduces the problem to a system of ordinary differential equations. An application is given for which the method shows a considerable advantage over conventional finite difference methods. .A Forrington, C. V. D. .I 1111 .T A Class of Iterative Techniques For the Factorization of Polynomials* .W A method of iteration is developed in terms of a function of somewhat arbitrary character. Sufficient conditions are given for convergence of the process, yielding factors of arbitrary degree for polynomials in one variable. Both Lin's method and Newton's method occur as special cases. .A Luther, H. A. .I 1112 .T A Technique for Computer Detection and Correction of Spelling Errors* .W The method described assumes that a word which cannot be found in a dictionary has at most one error, which might be a wrong, missing or extra letter or a single transposition. The unidentified input word is compared to the dictionary again, testing each time to see if the words match-assuming one of these errors occurred. During a test run on garbled text, correct identifications were made for over 95 percent of these error types. .A Damerau, F. J. .I 1113 .T Computer-Made Perspective Movies as a Scientific and Communication Tool* .W It is easy to program the basic transformation required for a perspective drawing. This fact plus the advent of high speed microfilm printers such as the General Dynamics Electronics S-C 4020 makes possible perspective movies as the direct output from a computer. The programming of such a movie is briefly described for studying the angular motions of a satellite containing an attitude control system. In the movie, a domino-shaped box represents the satellite and a sphere with circles of latitude and longitude represents the earth. The cost was approximately three to eight minutes of IBM 7090 time per one minute of movie. .A Zajac, E. E. .I 1114 .T Generating a Canonical Prefix Encoding* .W Computer programs for generating a minimum-redundancy exhaustive prefix encoding are described. One program generates a Huffman frequency tree, another determines the structure functions of an encoding, and a third program assigns codes. .A Schwartz, E. S. Kallick, B. .I 1115 .T Randomized Binary Searching With Tree Structure .W A more efficient method of using tree structures is proposed, which utilizers both plus and minus branches in the search path. Very significant gains result when the search key includes alphabetic characters. .A Clampett Jr., H. A. .I 1116 .T Tests on a Computer Method for Constructing School Timetables* .W A previously proposed computer method for constructing timetables, based on an iteration involving Boolean matrices, is described. In limited tests the method has successfully produced timetables on every trial. References are given which relate the timetable problem to theorems on matrices of zeros and ones, and to theorems on bipartite graphs. Some problems of applying the method to constructing timetables in real situations are noted. .A Csima, J. Gotlieb, C. C. .I 1117 .T Polyphase Sorting With Overlapped Rewind* .W A variation of the polyphase merge technique of sorting is described which permits one tape at a time to be rewound while the merge is continued on the remaining tapes. The result is the overlapping of a major portion of the rewind time. The technique should be considered whenever a sort is written to operate on five or more tapes that cannot be read backwards. The savings of the overlap method appear to increase as the number of available tapes is increased. .A McAlester, R. L. .I 1118 .T FORTRAN Subroutines for Time Series Data Reduction* .A MacGowan, R. A. .I 1119 .T An Open Letter to X3.4.3 (FORTRAN Standards -- American Association) .I 1120 .T "ALCOR Group Representations of ALGOL Symbols," Comm. ACM 6 (1963), 597-599. (Corrigenda) .I 1121 .T Comments on "A Continued Operation Notation"* .W This note is intended to clarify and correct several points in a recent paper describing some notations for symbol manipulation by M.P. Barnett [Comm. ACM 6(August, 1963)]. .A Barnett, M. P. Gerard, J. M. Sambles, A. W. .I 1122 .T A Note on Some Compiling Algorithms .W Two compiling generators for arithmetic expressions are discussed: one presently in use in an experimental compiler, and an improvement suggested by K. Speierman of Burroughs. .A Anderson, J. P. .I 1123 .T Gauss (Algorithm 209) .A Gladfelter, G. W. .I 1124 .T Matrix Division (Algorithm 197) .A Wells, M. .I 1125 .T Syminv2 (Algorithm 150) .A Naur, P. .I 1126 .T ERF (Algorithm 123) .A Barton, S. P. Wagner, J. F. .I 1127 .T Tridiagonal Matrix (Algorithm 122) .A Naur, P. .I 1128 .T Evaluation of Determinant (Algorithm 41) .A Rotenberg, L. J. .I 1129 .T Incomplete Beta Function Ratios (Algorithm 222) .A Gautschi, W. .I 1130 .T Gamma Function (Althm 221) .A Gautschi, W. .I 1131 .T On Context and Ambiguity in Parsing* .A Ross, D. T. .I 1132 .T An Extension to ALGOL for Manipulating Formulae* .A Perlis, A. J. Iturriaga, R. .I 1133 .T A Programming Package for Some General Modes of Arithmetic* .A Brooker, R. A. .I 1134 .T Some Effects of the 6600 Computer on Language Structures* .W The problem of compiling efficient 6600 codes prompted the development of an intermediate language reflecting the structure of the machine, that is more easily manipulated in improving object program efficiency. The subject of this paper is the intermediate language and methods of manipulating it. Compilations of a series of arithmetic statements are discussed. It is assumed that all functions and exponentials have been removed from these statements, and replaced by simple variables. For purposes of simplicity the treatment of subscripts is ignored. A simplified 6600 structure is presented to illustrate the compiling method. Several assumptions are made for purposes of simplification, although there are cases in which the assumptions are violated in the actual machine. .A Allard, R. W. Wolf, K. A. Zemlin, R. A. .I 1135 .T A General Business-Oriented Language Based on Decision Expressions* .W The structure of a digital compute programming language which covers a wide class of business and file processing applications is presented. Such a structure, based on identifying and incorporating into a compiler the aspects common to all processes of such class, permits writing extremely compact programs, even for comparatively complex applications, in terms of tables of control expressions which express only information characteristic of the particular application. Furthermore,local changes of a process (e.g. changes affecting only one of the output files involved) can be effected by local modifications in the program (e.g. modification of only one entry of the tables). This structure also allows for inexpensive preparation of loading-speed compilers which translate the source programs into efficient machine codes. The approach adopted here departs from conventional mechanical language design philosophies. It stresses the structural analysis of the class of processes to be represented in the languages, as opposed to emphasizing formal (i.e., contents-independent) syntactical definitions. It relies exclusively on nonprocedural representation of process as sets (tables) of relations between data and results (there are no control statements such as GO TO, etc.), instead of using procedure descriptions (which are one-to-one translations of flowcharts). Here an invariant pattern of procedure is identified as characteristic of the class of all batch file processes. This new philosophy has the potential to overcome well-known deficiencies of other business-oriented languages and fully meets the requirements set by CODASYL for such languages, including machine-independence. .A Lombardi, L. A. .I 1136 .T Beginnings of a Theory of Information Handling* .A Steel Jr., T. B. .I 1137 .T A Format Language* .A Perlis, A. J. .I 1138 .T Formalism in Programming Languages* .A Iverson, K. E. .I 1139 .T FORTRAN IV as a Syntax Language* .A Leavenworth, B. M. .I 1140 .T "Structural Connections" in Formal Language* .A Irons, E. T. .I 1141 .T Bounded Context Syntactic Analysis .A Floyd, R. W. .I 1142 .T An Extension of ALGOL-Like Languages .A Rose, G. F. .I 1143 .T Analysis of Decay-Type Data* .W A comparative study has been made of a variety of numerical techniques for fitting experimental data of the decay type by forms involving the sums of exponentials. Statistical errors of the fitted parameters are also calculated. These methods have been applied to artificially-generated sets of data as well as to the results of experiments with radioactive tracers on both human and animal subjects. Results show that the values of the fitted parameters are very sensitive to variations in the fitting procedure. Therefore great care very sensitive to variations in the fitting procedure. Therefore great care must be exercised in identifying such values with physical constants. Although the values of functions derived from these fitted parameters which can definitely be associated with physical entities are generally more stable under variations in the fitting techniques, error bounds can be so large that no great confidence can be placed even in them. It would therefore appear best to select a uniform technique both for running the experiments and for analyzing the data, and then to consider as significant only relative results between one subject and the next. .A Worsley, B. H. .I 1144 .T Digital Computer Determination of Alpha Source Activity .W A technique is described for determining the activity and homogeneity of an alpha source. It is believed that the technique, using a digital computer, has many uses and applications in the field of nuclear physics. The technique involves computer manipulation of the digital image of the nuclear source. Experimental details are given. .A Robbins, D. Taylor, W. E. .I 1145 .T GIT-A Heuristic Program for Testing Pairs of Directed Line Graphs for Isomorphism* .W Given a pair of directed line graphs, the problem of ascertaining whether or not they are isomorphic is one for which no efficient algorithmic solution is known. Since a straightforward enumerative algorithm might require 40 years of running time on a very high speed computer in order to compare two 15-node graphs, a more sophisticated approach seems called for. The situation is similar to that prevailing in areas such as game-playing and theorem-proving, where practical algorithms are unknown (for the interesting cases), but where various practical though only partially successful techniques are available. Git-Graph Isomorphism Tester-incorporates a variety of processes that attempt to narrow down the search for an isomorphism, or to demonstrate that none exists. No one scheme is relied upon exclusively for a solution, and the program is designed to avoid excessive computation along fruitless lines. GIT has been written in the COMIT language and successfully tested on the IBM 7090. .A Unger, S. H. .I 1146 .T An Efficient Composite Formula for Multidimensional Quadrature .W A (2s+1)-point second-degree quadrature formula for integration over an s-dimensional hyper-rectangle is presented. All but one of the points lie on the surface with weights of opposite sign attached to points on opposite faces. When a large volume is subdivided into congruent rectangular subdivisions, only one point is required in each interior subdivision to achieve second-degree accuracy. .A Thacher Jr., H. C. .I 1147 .T On the Numerical Solution of Boundary Value Problems for Linear Ordinary Differential Equations* .W A numerical method is presented for the solution of boundary value problems involving linear ordinary differential equations. The method described is noniterative and makes use of any one-step numerical integration scheme to reduce the problem from one of boundary values to one of initial values. Comments are made concerning some numerical results of applying the method to a specific problem. In addition an extension of the algorithm described to more general problems is discussed. .A Day, J. T. Collins II, G. W. .I 1148 .T An Example in "Significant-Digit" Arithmetic* .W Different methods of handling the summing process for the geometric series are shown to give results indicating widely differing significances when carried out in a machine incorporating "significant-digit" arithmetic. .A Miller, R. H. .I 1149 .T GARGOYLE , A Language for Compiler Writing* .A Garwick, J. V. .I 1150 .T A Fortran Post-Mortem Procedure .A Kahan, W. Leppik, J. J. .I 1151 .T A Note on Multiplying Boolean Matrices II .A Comstock, D. R. .I 1152 .T Floating-Point Arithmetic with 84-Bit Numbers .W A classic and straightforward technique is presented which is not limited to the size or type of number representation used or multiple precision arithmetic. .A Gregory, R. T. Raney, J. L. .I 1153 .T A Fast Procedure for Generating Normal Random Variables* .W A technique for generating normally distributed random numbers is described. It is faster than those currently in general use and is readily applicable to both binary and decimal computers. .A Marsaglia, G. MacLaren, M. D. Bray, T. A. .I 1154 .T Multi-Tape and Infinite-State Automata -- A Survey .W A survey of machines which are more powerful than finite automata and less powerful than general Turing machines is presented. It is felt that the machines in this category are as closely related to digital computers as either the finite automata or the unrestricted Turing machines. Intermediate machines can be created by adjoining on infinite-state memory to a finite-state machine and then performing any or all of the following: (1) restrict the manner in which the unbounded portion of the memory can be accessed, (2) bound the number of steps allowed for a computation by some increasing recursive function of the length of the input, (3) restrict the total amount of memory available in the same manner. Examples from all three classes and their properties are discussed. .A Fischer, P. C. .I 1155 .T Experiments with a Deductive Question-Answering Program .W As an investigation in artificial intelligence, computer experiments on deductive question-answering were run with a LISP program called DEDUCOM, an acronym for DEDUctive COMmunicator. When given 68 facts, DEDUCOM answered 10 questions answerable from the facts. A fact tells DEDUCOM either some specific information or a method of answering a general kind of question. Some conclusions drawn in the article are: (1) DEDUCOM can answer a wide variety of questions. (2) A human can increase the deductive power of DEDUCOM by telling it more facts. (3) DEDUCOM can write very simple programs (it is hoped that this ability is the forerunner of an ability to self-program, which is a way to learn). (4)DEDUCOM's search procedure at present has two bad defects: some questions answerable from the given facts cannot be answered and some other answerable questions can be answered only if the relevant facts are given in the "right" order. (6) At present, DEDUCOM's method of making logical deductions in predicate calculus has two bad defects: some facts have to be changed to logically equivalent ones before being given to DEDUCOM, and some redundant facts have to be given to DEDUCOM. .A Slagle, J. R. .I 1156 .T Hankel Function (Algorithm 124 [S17]) .A Reilly, G. A. .I 1157 .T Procedure for the Normal Distribution Functions (Algorithm 272 [S15]) .A MacLaren, M. D. .I 1158 .T Program Structures for Parallel Processing .W Constructs for organizing and explicating parallel program segments are discussed as extensions to ALGOL 60. The constructs serve as meta-commands and are motivated by equipment having multiprocessing capability. .A Anderson, J. P. .I 1159 .T Machine Independence: Its Technology and Economics .W A survey is offered of techniques for transferring programs, and especially compilers, from one computer to another. Of the methods examined, the "bootstrap" technique is singled out for detailed discussion, with emphasis on its economics. The considerations that determine the applicability of bootstrapping in any specific case are discussed, and an attempt is made to assign appropriate qualitative weights to them. Finally, reasons are given for believing that the machine-independence problem is being substantially diminished by current trends in computer design, and that it is this process of convergence in hardware design rather than any foreseeable software developments that will lead to its satisfactory resolution. .A Halpern, M. I. .I 1160 .T CAT: A 7090-3600 Computer-Aided Translation .W A semi-automatic translation system has been implemented which converts 7090 FAP language programs into 3600 assembly language. The input to the system is a FAP program deck which has been specially prepared for translation by the user. The output consists of the translated COMPASS language program together with a comprehensive diagnostic listing which the user must analyze in order to verify any questionable areas of the translation. The translation processor consists of three distinct phases: an assembly of the FAP program, a comprehensive analysis of the assembled code with particular regard to the actions of instructions upon other instructions and upon data, and finally the output pass which generates the COMPASS program in the form of macro instructions. .A Wilson, D. M. Moss, D. J. .I 1161 .T 1401 Compatibility Feature on the IBM System/360 Model 30 .W The "second generation" of stored-program computers, of which IBM 1400 series was a part, brought EDP into the mass market for the first time on a large scale. As this era unfolded, rapid changes in technology led to rapid obsolescence of data processing equipment. Program written for a particular system required tedious conversion as incompatible new machines came into use. The IBM System/360 has been designed with the conversion problem specifically in mind. One of the conversion aids available on the Model 30 is the 1401 compatibility feature. This feature, in conjunction with other aids, permits a smooth and inexpensive transition to optimum use of the new system. .A McCormack, M. A. Schansman, T. T. Womack, K. K. .I 1162 .T An Assembly Language for Reprogramming .W Complete reprogramming of compiler language programs is seldom necessary. It is assembly language programs which present the greatest difficulty. Assembly languages generally provide a one-for-one translation from a symbolic to a numeric version of a program, that is, from assembly language to machine language. The meta-language presented here can be used to specify the mapping of any language which conforms to a canonical list form into an arbitrary stream of bits. This bit stream may be treated as a machine language program, a character stream, or whatever else the user might desire. Thus, this meta-language can be used to map from one assembly language into another or from the assembly language for one machine into the machine language of another. .A Graham, M. L. Ingerman, P. Z. .I 1163 .T Philco/IBM Translation at Problem-Oriented, Symbolic and Binary Levels .W A translation system has been developed to eliminate most of the effort formerly required to reprogram Philco 2000 series codes for IBM 7094 operation. Experience with this system is limited but highly successful encouraging application of the techniques to other source and object languages. .A Olsen, T. M. .I 1164 .T Emulation of Large Systems .W The conversion problem and a new technique called emulation are discussed. The technique of emulation is developed and includes sections on both the Central Processing Unit (CPU) and the Input/Output unit (I/O). This general treatment is followed by three sections that describe in greater detail the implementation of compatibility features using the emulation techniques for the IBM 7074, 7080 and 7090 systems on IBM System/360. .A Tucker, S. G. .I 1165 .T The Spectra 70/45 Emulator for the RCA 301 .W The RCA 301 Emulator System is supplied with the Spectra 70/45 as a reprogramming aid. It allows an RCA 301 object program to be run on the Spectra 70/45 without necessitating changes in the RCA 301 object code. Execution rates are considerably better than traditional simulation. The Emulator provides an increase in throughput capacity for the 301 user on the Spectra 70/45. The Emulator makes use of both hardware micro-program routines and software routines to accomplish its function. .A Benjamin, R. I. .I 1166 .T A Use of Macros in Translation of Symbolic Assembly Language of One Computer to Another .W A set of macro-operations has been prepared to assist in translating IBM 7090 symbolic assembly language programs to IBM 7040 machine language programs. This set, inserted at the beginning of the 7090 symbolic deck, treats incompatible instruction mnemonics as macro-instructions to produce equivalent 7040 instruction sets. Incompatible instructions are categorized into basic operational classes which can be expressed by a single basic skeleton. Several levels of macro calls are required to supply arguments to the basic skeleton for each particular instruction. Modification at execution time of the address or tag of an incompatible instruction requires incorporation of an address-tag equivalent. I/O is handled by generating calls to I/O simulation subroutines. .A Dellert Jr., G. T. .I 1167 .T On the Translation of Machine Language Programs .W Automatic translation of machine language programs is becoming a highly desirable goal with the advent of new large-scale computers. The pitfalls that make it difficult to achieve completely automatic translations are analyzed, and it is shown that these are primarily of a semantic nature. A semi-automatic procedure for resolving semantic problems is suggested. .A Gaines, R. S. .I 1168 .T Across Machine Lines in COBOL .W The production of a large, file-maintenance-and-retrieval program system written in COBOL is described. The COBOL language was used specifically to enable the system to operate on three IBM computers. .A Fredericks, D. S. Warburtin, C. R. .I 1169 .T An Algorithm for Minimizing Backboard Wiring Functions .W A partially exhaustive algorithm is presented for solving the following problem arising from automatic layout of a computer. Given an ordered set E1, E2,..., EN of N computer components, for each permutation of the elements E1, E2.., EN, there is attached a value of an integer function F. The algorithm finds a local minimum of F by evaluating the set {Delta F} of the increments corresponding to a certain set of exchanges of two elements.Then the exchange corresponding to the least negative increment of {Delta F} is performed. The process is iterated and stopped when the set of the increments is a positive or empty set, which, it is proved, corresponds to a minimum. The procedure is similar to the Downhill Method for finding the minimum of a real function F(P), and can be applied to other placement problems. Experimental results are presented with backboards formed by many elements and different initial placements. .A Pomentale, T. .I 1170 .T Analyzing English Syntax with a Pattern-Learning Parser .W A dependency analysis system based on pattern recognition and learning logic was developed to infer word classes and rules of syntactic combination from experience with text which had been analyzed. The characteristics used to form word classes are the depth in the dependency tree of each word, the direction of its governor and the same features for each of its immediate neighbors. Syntactic rules of combination show the relation of a word to its governor in the depth pattern of the sentence. The system was tested on 400 elementary basic English sentences including 300 used earlier by Knowlton in a different learning parser of all 400 sentences. After experience with 300 sentences it was able to generalize with 77 percent accuracy to the next 100. In accumulative learning trials after the first 200 sentences it averaged a probability of .9 for accurately parsing each new sentence it encountered. It was concluded that the system is adequate for learning to parse the bulk of basic English but that further development is required before conclusions about its application to ordinary English can be stored. The system is operational and available on the ARPA/SDC time-shared computing system. .A McConlogue, K. Simmons, R. F. .I 1171 .T A Comparison of the Primal-Simplex and Primal-Dual Algorithms for Linear Programming .W A statistical comparison of the primal-dual and the more commonly used primal-simplex algorithm for solving linear programming problems has been made under the assumption of starting with a full artificial basis. Under these conditions the primal-dual method shows a statistically significant superiority on randomly generated problems. It has also been found, via a regression analysis, that the relevant parameters in determining the difference in the number of iterations between the algorithms is not only the number of constraints and the number of variables but also the ratio of the latter to the former. .A Mueller, R. K. Cooper, L. .I 1172 .T Conversion of Limited-Entry Decision Tables to Computer Programs .W Decision tables are useful for describing a set of complex decision rules based on given sets of conditions. Algorithms that can efficiently convert the tables into computer programs will extend the usefulness of decision tables to computer users. Two such algorithms, based on work done by M. S. Montalbano, are described and extended here to handle dashes and ELSE-decision rules. The first algorithm minimizes the computer storage space required for the resultant program, the second minimizes computer running time. During the conversion process, both pinpoint any contradictions or redundancies among the rules in a table. .A Pollack, S. L. .I 1173 .T The Performance of a System for Automatic Segmentation of Programs Within an ALGOL Compiler (GIER ALGOL) .W The GIER ALGOL compiler makes use of an automatic system for handling the transfers of program segments from the drum store to the core store at program execution time. The logic of this system is described. The performance of the system is discussed, primarily on the basis of execution times related to two specific programs. This discussion concludes with an assessment of the potential gains of various ways of improving the system. .A Naur, P. .I 1174 .T Inverse Permutation (Algorithm 250 [G6]) .A Medlock, C. W. .I 1175 .T Quickersort (Algorithm 271 [M1]) .A Scowen, R. S. .I 1176 .T Finding Eigenvectors by Gaussian Elimination (Algorithm 270 [F2]) .A Newhouse, A. .I 1177 .T Determinant Evaluation (Algorithm 269 [F3]) .A Pfann, J. .I 1178 .T ALGOL 60 Reference Language Editor (Algorithm 268 [R2]) .A McKeeman, W. M. .I 1179 .T PUFFT-The Purdue University Fast FORTRAN Translator .W A core resident, compile-and-go system designed for the IBM 7090/7094 computer is described. In little more than half of the 32k word core memory PUFFT provides a monitor for job sequencing, a translator for the full FORTRAN IV language, the FORTRAN subroutine library, an input--output system for use at compile time and at execute time, and a rather elaborate diagnostic message writing routine. Batches of small- and medium-sized FORTRAN IV source language programs are processed at very high speeds. Language compatibility has been maintained so that programs may be debugged in the PUFFT system and then recompiled and run in the IBJOB-IBFTC system supplied by the manufacturer. .A Rosen, S. Spurgeon, A. Donnelly, J. K. .I 1180 .T AXLE: An Axiomatic Language for String Transformations .W AXLE is a language designed for data manipulation. Data arranged in a linear form in a workspace is transformed according to a table of axioms, called imperatives. A transformation consists of a matching procedure, which decides where an imperative is applicable, and a replacement procedure that modifies that part of the workspace. Imperatives are applied in accordance with definitions of symbolic terms, presented systematically in an assertion table. The process of definition includes the special case of recursive assertions. Several complete programs of imperatives are given to show a few applications of the language. .A Cohen, I. Wegstein, J. H. .I 1181 .T A Simple Data Transmission System Using the Office Telephone .W A method has evolved for transmitting data of a type originating in many laboratory situation direct to a central computer. The method requires almost no specialized equipment and uses any ordinary telephone on a "callup" basis. Present applications include cardiac-output calculations, radio-activity tracer studies and neurophysiology time-sequence studies of nerve impulses. .A Neilsen, I. R. .I 1182 .T Contextual Correlates of Synonymy .W Experimental corroboration was obtained for the hypothesis that the proportion of words common to the contexts of word A and to the contexts of word B is a function of the degree to which A and B are similar in meaning. The shapes of the functions, however, indicate that similarity of context is reliable as criterion only for detecting pairs of words that are very similar in meaning. .A Rubenstein, H. Goodenough, J. B. .I 1183 .T A Note on the Use of a Digital Computer for Doing Tedious Algebra and Programming .W A special purpose compiler was written with FORTRAN II language and made possible the writing of very long programs by the computer. The procedure is based on a straight-forward use of FORMAT statements for generating machine-written programs. .A Veronis, G. .I 1184 .T A Fast Storage Allocator .W A fast storage bookkeeping method is described which is particularly appropriate for list-structure operations and other situations involving many sizes of blocks that are fixed in size and location. This scheme, used in the LLLLLL or L6 (Bell Telephone Laboratories Low-Level List Language), makes available blocks of computer registers in several different sizes: the smaller blocks are obtained by successively splitting larger ones in half, and the larger blocks are reconstituted if and when their parts are simultaneously free. .A Knowlton, K.C. .I 1185 .T A program to Solve the Pentomino Problem by the Recursive Use of Macros .W A coding technique is described in which certain macro-instructions are given lists as arguments and are thereby used recursively. The discussion covers primarily an example in which the technique is used to solve the pentomino problem-the problem of fitting 12 pentominos without overlapping into a plane area formed of 60 elemental squares. .A Fletcher, J. G. .I 1186 .T Recursive Solution of a Class Of Combinatorial Problems: An Example .W Combinatorial problems requiring the selection of n elements from a set of m elements may be solved by a recursion process analogous to that for computing binomial coefficients. Several specific problems are analyzed, the general technique is exposed, and an ALGOL program is developed for one of the problems. .A Lynch,W. C. .I 1187 .T Note on an ASCII-Octal Code Table (Standards) .A Crosby, W. S. .I 1188 .T An ALGOL-like Computer Design Language .W The idea of constructing a computer design language by making use of an ALGOL-like programming language is presented. A computer designer can benefit from using a design language at a higher level just as a computer user can benefit from a higher level programming language. The purposes and requirements of the design language are enumerated. To achieve most of the purposes a translator is required to translate a design of computer logic into a set of Boolean equations. The design language is presented in terms of vocabulary, statements, sequences and microprogram. Included are examples of identifiers, expressions with both unary and binary operators, declaration statements, transfer statements, terminal statements, exchange statements, if statements, do statements, go to statements, several sequences and a microprogram. .A Chu, Y. .I 1189 .T Random Normal Deviate (Algorithm 267 [G5]) .A Pike, M. C. .I 1190 .T Pseudo-Random Numbers (Algorithm 266 [G5]) .A Pike, M. C. Hill, I. D. .I 1191 .T Find Precedence Functions (Algorithm 265 [L2]) .A Wirth, N. .I 1192 .T Interpolation in a Table (Algorithm 264 [E1]) .A Stafford, J. .I 1193 .T Gomory 1 (Algorithm 263 [H]) .A Langmaack, H. .I 1194 .T Establishment of the ACM Repository and Principles of the IR System Applied to its Operation .W The history of the establishment of the ACM Repository at the Moore School, University of Pennsylvania, is reviewed briefly. Two principles are presented as paramount in the provision of information services: (1) easy accessibility to the information files by users unfamiliar with file organization, and (2) value of service exceeding user costs. These principles serve as guides in mechanizing the ACM Repository. The main features of the information system are direct user access via on-line teletypewriter console, direct user access to all details of the system organization, unrestricted and expandable search vocabulary, user access through many facets of document indexing, and stochastic search through linked index terms and other file relationships. The first contribution to the ACM Repository consisted of 315 documents, relating primarily to early research on compilers. These documents have been cataloged and indexed and the catalog is scheduled to appear in Computing Reviews. The indexing system is described in detail. The Main Catalog is used to describe the documents, and inverted lists are provided by the Repository system for retrieval by concept coordination. .A Rubinoff, M. White Jr., J. F. .I 1195 .T UPLIFTS-University of Pittsburgh Linear File Tandem System .W A series of computer programs has been developed and is now operational for processing the National Aeronautics and Space Administration linear file system on an IBM 1401-7090 combined data processing system. The program are note-worthy in that they create fixed length logical records and fixed length blocks from variable length source data, and format the output for optimization of processing on the IBM 7090 system. The programs are completely self-checking and test for both validity and accuracy of the input materials as provided by the National Aeronautics and Space Administration. .A Canter, J. D. Donaghey, C. E. .I 1196 .T Applications of Differential Equations in General Problem Solving .W A large class of problems leading to digital computer processing can be formulated in terms of the numerical solution of systems of ordinary differential equations. Powerful methods are in existence for the solution of such systems. A good general purpose routine for the solution of such systems furnishes a powerful tool for processing many problems. This is true from the point of view of ease of programming, ease of debugging, and minimization of computer time. A number of examples are discussed in detail. .A Klopfenstein, R. W. .I 1197 .T Finding Zeros of a Polynomial by the Q-D Algorithm .W A method which finds simultaneously all the zeros of a polynomial, developed by H. Rutishauser, has been tested on a number of polynomials with real coefficients. This slowly converging method (the Quotient-Difference (Q-D) algorithm) provides starting values for a Newton or a Bairstow algorithm for more rapid convergence. Necessary and sufficient conditions for the existence of the Q-D scheme are not completely known; however, failure may occur when zeros have equal, or nearly equal magnitudes. Success was achieved, in most of the cases tried, with the failures usually traceable to the equal magnitude difficulty. In some cases, computer roundoff may result in errors which spoil the scheme. Even if the Q-D algorithm does not give all the zeros, it will usually find a majority of them. .A Henrich, P. Watkins, B. O. .I 1198 .T Solution of a Problem in Concurrent Programming Control .W A number of mainly independent sequential-cyclic processes with restricted means of communication with each other can be made in such a way that at any moment one and only one of them is engaged in the "critical section" of its cycle. .A Dijkstra, E. W. .I 1199 .T A Computer Center Simulation Project .W Today's computation centers are based on rapidly changing technologies of hardware and software systems. It is difficult, therefore, to base decisions on experience; in most instances, the benefits of comparable experience for a given problem situation are not available. In this paper, a mathematical model of the Lockheed Central Computer Center is formulated that describes the operation of a computation center in terms of information nets, decision processes, and control functions. Experiments performed with this model, the results of the experiments, and the application of the results are discussed. .A Hutchinson, G. K. .I 1200 .T On Reversible Subroutines and Computers that Run Backwards .W A computer design is describe which permits subroutines to be executed backward as well as forward, either with their instructions unchanged or replaced with conjugate instructions. It is shown that using this concept a number of new subroutine types can be developed with rather unusual properties. Since these properties are analogous to certain matrix operations, a parallel nomenclature is suggested for their classification. .A Reily, E. D. Federighi, F. D. .I 1201 .T Generation of Permutations in Lexico-Graphical Order (Algorithm 202 [G6]) .A Elliott, R. W. .I 1202 .T Normal Random (Algorithm 200 [G5]) .A Pike, M. C. .I 1203 .T Normdey (Algorithm 121 [G5]) .A Pike, M. C. .I 1204 .T Character Structure and Character Parity Sense for Serial-by-Bit Data Communication in the American Standard Code for Information Interchange (Proposed American Standard) .I 1205 .T An Undergraduate Program in Computer Science-Preliminary Recommendations .A A Report from the ACM Curriculum Committee on Computer Science .I 1206 .T The Self-Judgment Method of Curve Fitting .W A computer-oriented method for processing and communicating numerical data is described. The Instrument Reliability Factors (IRF), which exactly define the limits of reliability of each measured item of information, are used to compute the Maximum Permitted Error (MPE) associated with each values of each ordinate. The Self-Judgment Principle (SJP) is used to discard wrong information and to compute mean values of the parameters and their MPE's in terms of the IRF. Data compatibility tests with any number of different equations can be made quickly. Otherwise intractable problems are easily solved, and the design of many experiments is greatly simplified. The computational and mathematical techniques used to reduce bias in the SJP are discussed. Inadequacies in the statistical and graphical methods of curve fitting are noted. .A DeMaine, P. A. D. .I 1207 .T Remarks on Simulation of Boolean Functions .A Dodd, G. G. .I 1208 .T Simulation of Computer Logic by Fortran Arithmetic .A Weingarten, F. W. .I 1209 .T Negative and Zero Subscripts in Fortran II Programming for the IBM 1620 .A Garber, M. S. .I 1210 .T File-Handling Within FORTRAN .W This note describes some FORTRAN subroutines to facilitate handling of tape files. They allow symbolic naming of information files, without violating the casual scientific programmer's idea of simplicity. Some comments on two years use of these subroutines are given. .A Harrison, M. C. .I 1211 .T A Note on Storage of Strings .W A method for storing strings is described which uses blocks of indefinite size, and is therefore completely dynamic. Its relation to similar schemes is discussed. .A Berztiss, A. T. .I 1212 .T Non-linear Extrapolation and Two-Point Boundary Value Problems .W It is suggested that the convergence properties of the usual Picard successive approximation scheme may be improved through use of non-linrar extrapolation techniques. A numerical example is provided. .A Bellman, R. Kagiada, H. Kalba, R. .I 1213 .T Dynamic Format Specifications .W The use and implementation of two new FORTRAN format conversions are discussed. These format types give the FORTRAN programmer control of input/output specifications at execution time. .A Ranelletti, J. E. .I 1214 .T Some Experiments in Algebraic Manipulation by Computer .W A set of subroutines to allow algebraic manipulations on the IBM 7094 computer has been written a List Processor, SLIP. A series of four problems of increasing difficulty were solved using these routines. .A Lapidus, A. Goldstein, M. .I 1215 .T Some Techniques Used in the ALCOR ILLINOIS 7090 .W An ALGOL compiler has been written by the ALCOR group for the IBM 7090. Some little known but significant techniques in compiler writing, together with organizational details of this compiler, are described. Timing estimates and an indication of compiler requirements are also given. .A Gries, D. Paul, M. Wiehle, H. R. .I 1216 .T Symbolic Derivatives Without List Processing, Subroutines, or Recursion .W A routine has been developed which computes and prints out the symbolic derivative of an absolutely continuous elementary function of one or several variables. No use is made of list-processing languages. The chain rule is applied and the result is edited to produce results as elegant and efficient as those obtained by hand computation. A subset may be imbeded in a formula translator to introduce a differentiation operator into an "algebraic" programming language. .A Smith, P. J. .I 1217 .T Map of Partitions into Integers (Algorithm 264 [A1]) .A McKay, J. K. S. .I 1218 .T Partition Generator (Algorithm 263 [A1]) .A McKay, J. K. S. .I 1219 .T Number of Restricted Partitions of N (Algorithm 262 [A1]) .A McKay,J. K. S. .I 1220 .T 9-J Symbols (Algorithm 261 [Z]) .A Gunn, J. H. .I 1221 .T 6-J Symbols (Algorithm 260 [Z]) .A Gunn, J. H. .I 1222 .T Legendre Functions for Arguments Larger Than One (Algorithm 259 [S16]) .A Gautschi, W. .I 1223 .T High Speed Compilation of Efficient Object Code .W A three-pass compiler with the following properties is briefly described: The last two passes scan an intermediate language produced by the preceding pass in essentially the reverse of the order in which it was generated, so that the first pass is the only one which hasto read the bulky problem-oriented input. The double scan, one in either direction, performed by the first two passes, allows the compiler to remove locally constant expressions and recursively calculable expressions from loops and to do the important part of common subexpression recognition. Optimization such as the effective use of index registers, although as important, is not discussed since the object code which would be most efficient is highly machine dependent. The discussion is in terms of a FORTRAN-like language, although the technique is applicable to most algebraic languages. .A Gear, C. W. .I 1224 .T Determining a Computing Center Environment .W An investigation is described in which several generally unavailable parameters descriptive of a computing center environment are obtained. The actual data collection and reduction is described, and the results of one month of this collection are tabulated and summarized. .A Rosin, R. F. .I 1225 .T The Predictive Analyzer and a Path Elimination Technique .W Some of the characteristic features of a predictive analyzer, a system of syntactic analysis now operational at Harvard on and IBM 7094, are delineated. The advantages and disadvantages of the system are discussed in comparison to those of an immediate constituent analyzer, developed at the RAND Corporation with Robinson's English grammar. In addition, a new technique is described for repetitive path elimination for a predictive analyzer, which can now claim efficiency both in processing time and core storage requirement. .A Kuno, S. .I 1226 .T The Organization of Structured Files .W A data file is an integral part of a data processing system. In many systems, the selection of an organization for the data within the file can be critical to the system's operating efficiency. This paper provides the systems designer with an information source which describes ten techniques that may be employed for organizing structured data. The characteristics of the organizations described are application independent, thus providing the designer with a reference which allows him to limit the number of file organizations he must consider for his system. .A Dzubak, B. J. Warburton, C. R. .I 1227 .T Transport (Algorithm 258 [H]) .A Bayer, G. .I 1228 .T Treesort 3 (Algorithm 245 [M1]) .A Abrams, P. S. .I 1229 .T Random Permutation (Algorithm 235 [G6]) .A Pike, M. C. .I 1230 .T Method for Hyphenating at the End of a Printed Line .W A description of a method of hyphenation is presented as a result of application of several general rules. The character sets considered by the routine and the method are briefly outlined. .A Rich, R. P. Stone, A. G. .I 1231 .T Peephole Optimization .W Redundant instructions may be discarded during the final stage of compilation by using a simple optimizing technique called peephole optimization. The method is described and examplesare given. .A McKeeman, W. M. .I 1232 .T Representation of the Standard ECMA 7-Bit Code in Punched Cards (ECMA Standard) .I 1233 .T Conventions for the Use of Symbols in the Preparation of Flowcharts for Information Processing Systems (A Standard Working Paper) .W This paper is intended as an outline of the various conventions which are being considered for the use of flowcharts for information processing systems. The conventions are applied to the use of the symbols appearing in the proposed American Standard Flowchart Symbols and not with the symbols per se. .I 1234 .T The Structure of Yet Another ALGOL Compiler .W A high-speed "top down" method of syntax analysis which completely eliminates "back-up" of the source string has been implemented in a convenient macro-language. A technique of simulation at compile time of the use of a conventional run-time stack enables the generation of code for expressions which minimizes stores, fetches and stack-pointer motion at run time, while properly trating recursion and side effects of procedures. Block structure and recursion are handled without need for interpretive methods at run times. The "context problem" in the transmission to recursive procedures of parameters "called by name" is solved in a manner which permits the handling of the common cases of simple expressions and array identifiers with particular efficiency. .A Kanner, H. Kosinski, P. Robinson, C. L. .I 1235 .T A Stochastic Approach to the Grammatical Coding of English .W A computer program is described which will assign each word in an English text to its form class or part of speech. The program operates at relatively high speed in only a limited storage space. About half of the word-events in a corpus are identified through the use of a small dictionary of function words and frequently occurring lexical words. Some suffix tests and logical-decision rules are employed to code additional words. Finally, the remaining words are assigned to one class or another on the basis of the most probable form classes to occur within the already identified contexts. The conditional probabilities used as a basis for this coding were empirically derived from a separate hand-coded corpus.On preliminary trials, the accuracy of the coder was 91% to 93%, with obvious ways of improving the algorithm being suggested by an analysis of the results. .A Stolz, W. S. Tannenbaum, H. Carstensen, F. V. .I 1236 .T The SMART Automatic Document Retrieval System-An Illustration .W A fully automatic document retrieval system operating on the IBM 7094 is described. The system is characterized by the fact that several hundred different methods are available to analyze documents and search requests. This feature is used in the retrieval process by leaving the exact sequence of operations initially unspecified, and adapting the search strategy to the needs of individual users. The system is used not only to simulate an actual operating environment, but also to test the effectiveness of the various available processing methods. Results obtained so far seem to indicate that some combination of analysis procedures can in general be relied upon to retrieve the wanted information. A typical search request is used as an example in the present report to illustrate systems operations and evaluation procedures. .A Salton, G. Lesk, M. E. .I 1237 .T Conversion of Decision Tables To Computer Programs .W Several translation procedures for the conversion of decision tables to programs are presented and then evaluated in terms of storage requirements, execution time and compile time. The procedures are valuable as hand-coding guides or as algorithms for a compiler. Both limited-entry and extended-entry tables are analyzed. In addition to table analysis, the nature of table-oriented programming languages and features is discussed. It is presumed that the reader is familiar with the nature of decision tables and conventional definitions. .A Press, L. I. .I 1238 .T A Technique for Integrated Reports from a Multi-run System .W The requirements of a requisition accounting system for the San Francisco Overseas Supply Agency (OSA) included exception reporting to OSA itself. The simultaneous satisfaction of the reporting requirement and the accounting requirements posed definite problems in system design, particularly the handling of the reporting function. A practical and satisfactory solution was developed by expanding the basic system with two tailored service runs for report production. These two runs permitted a final system that was easier to debug, easy to maintain, efficient in production and responsive to the changing requirements of OSA. .A Budea, N. Kamena, J. G. Kamena, R. M. .I 1239 .T Graycode (Algorithm 246 [Z]) .A Allen, W. D. .I 1240 .T Transport (Algorithm 258 [H]) .A Bayer, G. .I 1241 .T Havie Integrator (Algorithm 257 [D1]) .A Kubik, R. N. .I 1242 .T Modified Graeffe Method (Algorithm 256 [C2]) .A Grau, A. A. .I 1243 .T Testing the Understanding of the Difference Between Call by Name and Call by Value in ALGOL 60 .A Weil, R. L. .I 1244 .T Bit Manipulation in Fortran Language .A Tobey, G. D. .I 1245 .T A Fortran n-Ary Counter .A Kent, W. .I 1246 .T Deeply Nested Iterations .A Korphage, R. R. .I 1247 .T An Operating Environment for Dynamic-Recursive Computer Programming Systems .W Presented in this paper is a brief nontechnical introduction to OEDIPUS, a computer programming system which can serve as an operating environment for dynamic and/or recursive programs and programming systems. The available services include dynamic allocation of storage for contiguous blocks of arbitrary size, input and output for a hierarchy of data types, a public pushdown list for automatic recursive programming, a rudimentary compiler for subroutine communication and bookkeeping, and debugging aids. .A Brown, W. S. .I 1248 .T On the Automatic Simplification of Computer Programs .W Presented in this paper is the problem of writing a program which would examine any other program and perform such simplifications on it as can be detected from the argument-program's form alone, without having any knowledge of what it is supposed to do. .A Nievergelt, J. .I 1249 .T Recorded Magnetic Tape for Information Interchange (200 CPI, NRZI) (On the Revised Proposed American Standard) .I 1250 .T Graphic Symbols for Problem Definition and Analysis-A Standards Working Paper .I 1251 .T American Standard and IFIP/ICC Vocabularies compared .W The "Proposed American Standard Vocabulary of Information Processing" and the "IFIP/ICC Vocabulary of Terms Used in Information Processing" are analyzed and compared. .A Traub, J. F. .I 1252 .T Symbolic Notations for Statistical Tables and an Approach Towards Automatic System Design .W The preparation of statistical tables is an important function of the data processing systems of some organizations, and a symbolic notation for the description of tables has been shown to be a useful aid to documentation. Such a notation also provides the first step towards making automatic a tedious and time-consuming part of system design and programming in many computer applications. One notation is described and suggestions are made for the implementation of the larger goal. .A Smith, B. W. .I 1253 .T QUIKSCRIPT-A SIMSCRIPT- Like Language for the G-20 .W QUIKSCRIPT is a simulation language based on SIMSCRIPT and programmed entirely in an algebraic language, 20-GATE. The QUIKSCRIPT language, its internal implementation, and major differences between QUIKSCRIPT and SIMSCRIPT are presented. This paper is not a programming guide to the language, but rather an attempt to present its flavor. A brief description of SIMSCRIPT is included, as is a sufficient description of 20-GATE to render this material understandable to the reader familiar with algebraic languages. .A Tonge, F. M. Keller, P. Newell, A. .I 1254 .T The Iteration Element .W A recent addition to the MAD language has made the iteration structure of the MAD THROUGH statement (corresponding to the ALGOL for statement and the FORTRAN DO statement) available within expressions. .A Galler, B. A. Fischer, M. J. .I 1255 .T A Method of Data List Processing With Application to EEG Analysis .W A set of subroutines is discussed, which is designed to aid in the programming of computations on indexed lists of numbers using machine language or a symbolic assembly system. The most commonly performed list operations are outlined, and logically arranged into five groups. As an example, the computation of power spectral density from the autocovariance function is discussed for a class of EEG signals. .A Philpott, C. M. Lago, G. V. .I 1256 .T Dynamic Variable Formatting .A King, D. R. .I 1257 .T DEBUG-An Extension to Current On-Line Debugging Techniques .W A method of on-linr assembly-language debugging which greatly simplifies several of the bookkeeping tasks characteristically associated with that process has been developed and implemented in a program for the UNIVAC M-460 computer at Air Force Cambridge Research Laboratories. With this program, an online user may insert or delete (in symbolic assembly language) any number of lines at any point of his previously assembled program in core, with the remainder of the program being relocated appropriately. .A Evans, T. G. Darley, D. L. .I 1258 .T An Extended Arithmetic Package .W In many fields, for example algebraic number theory, arithmetic must be carried out to a degree of precision which exceeds the normal hardware capacity of most machines. In such cases, an extended arithmetic package provides a comprehensive and easy-to-use way of performing such arithmetic. Such a package was coded for the IBM 7090. In discussing the general problems associated with the design of an extended arithmetic package, specific reference is made to this program. .A Blum, B. I. .I 1259 .T Applications of Binary Numbers In Computer Routines .W A binary number can be thought of as an alternate form of expression for either a set of letters or a decimal number. There are then three equivalent expressions, easily translatable to one another, each having different characteristics. Four examples are given in which the form of an expression is changed to an equivalent expression to save space or gain power. .A Weldon, R. J. Baker, R. L. .I 1260 .T Least-Squares Analysis of Resonance Spectra on Small Computers .W The problem of analyzing data from a Mossbauer effect experiment is discussed. By using the cut step procedure for convergence and by imposing physical constraints on the functional form of the calculation it is possible to make the analysis on a small computer. The analysis has been carried out on an IBM 1410 computer with a 40,000 BCD core memory. .A Marshall, S. W. Nelson, J. A. Wilenzick, R. M. .I 1261 .T Modeling and Simulation of Digital Networks .W The simulation of digital networks on a digital computer provides the engineer with an effective means of analyzing time-quantized logical behavior. The digital network is modeled as a set of time-dependent or time-independent Boolean transformations; each transformation describing the input-output relationship of a model element comprising the network mode. The simplicity of utilizing the FORTRAN IV Programming System as a digital Network Simulator is discussed an illustrated. This simplicity is derived from a common modeling technique applicable to combinational and sequential digital networks and a systematic programming approach. .A Larsen, R. P. Mano, M. M. .I 1262 .T Procedure-Oriented Language Statements to Facilitate Parallel Processing .W Two statements are suggested which allow a programmer writing in a procedure-oriented language to indicate sections of program which are to be executed in parallel. The statements are DO TOGETHER and HOLD. These serve partly as brackets in establishing a range of parallel operation and partly to define each parallel path within this range. DO TOGETHERs may be nested. The statements should be particularly effective for use with computing devices capable of attaining some degree of compute-compute overlap. .A Opler, A. .I 1263 .T Metalanguage and Syntax Specification .W Two metalanguages are described, one sufficient for the table specification of the ALGOL syntax, the other with additional metaoperators adequate and used for the formal table description of Basic FORTRAN. .A Burkhardt, W. H. .I 1264 .T BLNSYS-A 1401 Operating System with Braille Capabilities .W BLNSYS is an operating system designed for a 4K 1401 with common optional features and two attached tape drives. Printed output of this system or of executing programs may be in either English or braille. Even though this system was written for a small machine with minimal peripheral equipment, jobs may be batched, so that card handling and lost processing time is at a minimum. This system will perform any or all of the following users specified functions: assemble SPS source decks, post list, produce condensed or uncondensed object decks, execute user's program, list card input to a program, list punched output, provide a storage dump, execute a program submitted for execution as an uncondensed object deck under debugging trace control, card-to-braille conversion, brailled listings of 7040 IBSYS batch output, and update or duplicate the system tape itself. Input-ouput subroutines are also included in the system. .A Landwehr, J. B. McLaughlin, C. Mueller, H. Lichstein, M. Pollack, S. V. .I 1265 .T On the Relative Efficiencies of Context-Free Grammar Recognizers .W A number of diverse recognition procedures that have been proposed for parsing sentences with respect to a context-free grammar are described in this paper by means of a common device. Each procedure is defined by giving an algorithm for obtaining a nondeterministic Turing Machine recognizer that is equivalent to a given context-free grammar. The formalization of the Turing Machine has been chosen to make possible particularly simple description of the parsing procedures considered. An attempt has been made to compare recognition efficiencies for the procedures defined. For a few simple grammars and sentences a formal comparison has been made. Empirical comparison of the recognition of more realistic programming languages such as LISP and ALGOL has been made by means of a program which simulates the Turing Machine on the Univac M-460 computer. Several algorithms for producing grammars equivalent to a given context-free grammar have been considered, and the increase in recognition efficiency they afford has been empirically investigated. .A Griffiths, T. V. Petrick, S. R. .I 1266 .T Considerations Relating to Purpose of FORTRAN Standardization (Appendixes to ASA FORTRAN Standard) .I 1267 .T Performance of Systems Used for Data Transmission Transfer Rate of Information Bits -An ASA Tutorial Standard .W Information thruput as a characteristic of systems performance is discussed. This discussion includes the pertinent aspects of information transfer, of determination of transfer rate of information bits (TRIB), of residual errors, and of standard measurement conditions. The paper also presents an orderly arrangement of characteristics and parameters that affect information thruput, and some examples on procedures for determining a thruput rate in terms of TRIB. It concludes that a performance characteristic involving information rate can best be expressed as the TRIB in conjunction with the Residual Error Rate. .I 1268 .T Logarithm of a Complex Number (Algorithm 243 [B3]) .A Boothroyd, J. .I 1269 .T Computation of Fourier Coefficients (Algorithm [C6]) .A Teijelo, L. .I 1270 .T On ALGOL Education: Automatic Grading Programs .W Two ALGOL grader programs are presented for the computer evaluation of student ALGOL programs. One is for a beginner's program; it furnishes random data and checks answers. The other provides a searching test of the reliability and efficiency of an integration procedure. There is a statement of the essential properties of a computer system, in order that grader programs can be effectively used. .A Forsythe, G. E. Wirth, N. .I 1271 .T Secondary Key Retrieval Using an IBM 7090-1301 System .W The secondary key retrieval method involves the preparation of secondary storage lists from primary data records. Search requests are satisfied by logical operations on appropriate lists, producing a complete set of addresses of primary records relevant to the request. Experimental results are presented and a comparative analysis is given. .A Davis, D. R. Lin, A. D. .I 1272 .T Expanding the Editing Function In Language Data Processing .W In automatic abstracting, citation indexing, mechanical translation and other such procedures, editing is required whenever the automatic method leaves something to be desired. This paper discusses the economy of editing as a function of the amount of condensation of text in language processing operations, and then contends that editing can be regarded as an opportunity rather than as an unwelcome necessity. "Heavy editing," which goes beyond mere correction and improvement of computer output, is exemplified by the use of a concordance in preparing a survey article or lecture. Other opportunities for heavy editing are described, chief among them being interpretation and expansion of computer output in such processes as factor analysis. Applications are described, such processes as factor analysis. Applications are described, such as the quick, unbiased evaluation of a large volume of incoming mail or telegrams, yielding summary reports not possible for either humans or computers to produce alone. .A Doule, L. B. .I 1273 .T Remark on Romberg Quadrature .W A modified form of Romberg quadrature is described, which is less sensitive to the accumulation of rounding errors than the customary one. .A Krasun, A. M. Prager, W. .I 1274 .T On the Numerical Solution of an N-Point Boundary Value Problem for Linear Ordinary Differential Equations .W A method for the numerical solution of then-point boundary value problem for homogeneous linear ordinary differential equations is developed. The method requires two Runge-Kutta integrations over the interval under consideration and the solution of a linear system of equations with n-1 unknowns. .A Day, J. T. .I 1275 .T Code Structures for Protection and Manipulation of Variable Length Items (Corrigendum) .A Ramamoorthy, C. V. .I 1276 .T Still Another Use for FORTRAN II Chaining .I 1277 .T The Use of Cobol Subroutines in Fortran Main Programs .A Tajiri, K. .I 1278 .T Wengert's Numerical Method for Partial Derivatives, Orbit Determination and Quasilinearization .W In a recent article in the Communications of the ACM, R. Wengert suggested a technique for machine evaluation of the partial derivatives of a function given in analytical form. In solving non-linear boundary-value problems using quasilinearization many partial derivatives must be formed analytically and then evaluated numerically. Wengert's method appears very attractive from the programming viewpoint equations which might not otherwise be undertaken. .A Bellman, R. E. Kagiwada, H. Kalaba, R. E. .I 1279 .T Use of a Conditional Base Number System for Encoding Sequences of Correlated Characters .W A procedure is described for the relatively efficient encoding of sequences of characters which have predecessor-successor selection rules. The procedure is shown to assign a unique integer to each sequence and to generate a reasonably compact set of values. .A Brown, R. M. .I 1280 .T Numerical Integration of a Differential-Difference Equation with a Decreasing Time-Lag .W Systems in which variable time-lags are present are of common occurrence in biology. Variable flow rates are a common cause of these variable lags. At present no extensive body of knowledge exists concerning the effects which these variable lags can cause. Shown here is a method of reducing some differential-difference equations to ordinary differential equations which can then be studied numerically with ease. Subsequent study will deal with situations in which multiple-lags and lags dependent on the solution itself are present. .A Bellman, R. E. Buell, J. D. Kalaba, R. E. .I 1281 .T Data Input by Question and Answer .W A data input scheme for a time-sharing computer is described in this paper. Instead of using format statements to determine the input, the computer asks the user for the required values one at a time. The computer converses with the user during the input process, checks for errors, provides standard data, and allows editing of values input. .A Pyle, I. C. .I 1282 .T The Use of FORTRAN in Subroutines with COBOL Main Programs .W By using the proper COBOL coding techniques and accounting for differences in storage allocation and library routines between the two languages, it is possible to write FORTRAN IV subroutines that may be called from COBOL main programs. Such a technique enables the programmer to take advantage of the most useful properties of each language while minimizing their respective disadvantages. .A Shavell, Z. A. .I 1283 .T Matrix Inversion (Algorithm 231 [F1]) .A Ferring, M. .I 1284 .T Bessel Function for a Set of Integer Orders .A Stafford, J. .I 1285 .T Eigenvalues and Eigenvectors of a Real Symmetric Matrix by the QR Method (Algorithm 254 [F2]) .A Businger, P. A. .I 1286 .T Eigenvalues of a Real Symmetric Matrix by the QR Method (Algorithm 253 [F2]) .A Businger, P. A. .I 1287 .T Vector Coupling or Clebsch-Gordan Coefficients (Algorithm 252 [Z]) .A Gunn, J. H. .I 1288 .T CLP-The Cornell List Processor .W Presented in this paper are the highlights of CLP, a teaching language which has been employed at Cornell University and was constructed to serve as a means of introducing simulation and other list-processing concepts. The various advantages of CLP are discussed and examples are given. .A Conway, R. W. Delfausse, J. J. Maxwell, W. L. Walker, W. E. .I 1289 .T Proposed Revised American Standard Code for Information Interchange .I 1290 .T Transparent-Mode Control Procedures for Data Communication, Using the American Standard Code for Information Interchange -A Tutorial .W This paper gives the considerations of Task Group X3.3.4 in the area of transparent-mode data communication control philosophy. The appearance of this paper was forecast (underthe name of "second-level control") in the earlier tutorial paper, "Control Procedures for Data Communications," Task Group document X3.3.4.44, dated May 1964. The present paper elaborates upon solutions to the problems of transparency to the basic ASCII communication control characters as outlined in the previous paper mentioned above. Moreover, it goes on to cover the additional control problems of handling material such as off line encrypted data or non-ASCII codes by means of systems providing complete character transparency. It does not cover concepts of transparency in which the normal character structure or modulation rate of a system may be abandoned. In conjunction with the earlier tutorial paper, this paper is expected to lead to a proposal for stand ardizationof data communication control procedures using the American Stand ard Code for Information Interchange. .I 1291 .T Tabular Input of Data .A George, R. .I 1292 .T On a Divide-and-Correct Method For Variable Precision Division .W Described in this paper is a divide-and-correct method for variable precision division in digital computers. Unlike the earlier methods of Stein and Pope, the present method uses a suitably rounded form of the normalized divisor for getting an estimate of the quotient characters. This results in a correction of at most plus or minus one to the estimate, to obtain the exact quotient character. It is believed that this method will be widely applicable for division operations in variable word-length character-oriented machines. .A Krishnamurthy, E. V. .I 1293 .T Method is Randomness .W Certain nonrandom properties of a commonly used random number generator are described and analyzed. .A Greenberger, M. .I 1294 .T Note on Triple-Precision Floating-Point Arithmetic with 132-Bit Numbers .W In a recent paper, Gregory and Raney described a technique for double-precision floating-point arithmetic. A similar technique can be developed for triple-precision floating-point arithmetic and it is the purpose of this note to describe this technique. Only the multiplication and the division algorithms are described, since the addition-subtraction algorithm can be obtained by a trivial modification of the algorithm in Gregory's and Raney's paper. .A Ikebe, Y. .I 1295 .T PERT Time Calculations Without Topological Ordering .W A simplified technique is presented for PERT Time calculations without topological ordering. Each event is assigned a unique memory location. An activity is represented by a link. A link is defined as a memory location containing the address of another memory location. The time information for an activity is carried with its link. For a typical net, the majority of activities can be described by one 36-bit cell each. The remainder use two 36-bit cells each. The links are unidirectional; forward during the T(E) calculation (expected completion time for an activity);backward during the T(L) calculation (time latest allowable for completion of an activity). The calculations progress through the net topologically even though the net is not represented topologically in core. .A Lass, S. E. .I 1296 .T Ative (Algorithm 205 [E4]) .A Wasscher, E. J. .I 1297 .T Steep1 (Algorithm 203 [E4]) .A Varah, J. M. .I 1298 .T Adaptive Numerical Integration by Simpson's Rule (Algorithm 145 [D1]) .A Pike, M. C. .I 1299 .T Solutions of the Diophantine Equation (Algorithm 139 [A1]) .A Bowlden, H. J. .I 1300 .T Function Minimization (Algorithm 251[E4]) .A Wells, M. .I 1301 .T On ALGOL I/O Conventions .A Zaremba, W. A. .I 1302 .T Parallel Signaling Speeds for Data Transmission (Proposed American Stand ard) .I 1303 .T A Correspondence Between ALGOL 60 and Church's Lambda-Notation: Part II* .A Landin, P. J. .I 1304 .T A Rapid Turnaround Multi-Programming System .W In this paper, basic features, system characteristics and the control algorithm for a multi-programming system with rapid turnaround time are described. .A Irons, E. T. .I 1305 .T The Internal Structure of the FORTRAN CEP Translator .W The FORTRAN CEP translator converts a source program written in the FORTRAN CEP language into an object program written in the language of the CEP computer. In this paper, after an outline of the CEP computer, the internal structure of the translator is described. Emphasis is on the compilation of expressions, of input/output lists, and of subscripted variables. .A Mancino, O. G. Cecchi, M. M. .I 1306 .T A Class of Unambiguous Computer Languages .W Discussed in this paper is the concept of a fully nested computer language which may be one means of designing computer languages which would be completely free of ambiguities. Several suggestions are also given here for the redefinition of ALGOL as a fully nested language. .A Johnston, J. B. .I 1307 .T A Lightpen-Controlled Program For On-Line Data Analysis .W This paper describes a technique designed to ease the use of a data processing system by a person, in particular, a scientist, who is intimately and primarily concerned with interpreting the significance of data handled by the system. Since such a person is often unable to spend the time necessary to master a programming language, it is essential that he be aided in composing commands to the computer. In the system described, the user is not required to learn or remember the vocabulary of the language because the vocabulary is displayed before him on"menus" by means of a computer-drive scope. He selects the various vocabulary elements required by pointing with the light pen. By use of a small unordered set of rewriting rules applied as a result of light pen selections, the user generates only syntactically correct commands to the system. He does not have to learn or remember the grammar. The program restricts the user severely in the particular language he can use, but the method for communicating with the program makes these restrictions seem quite natural and unconstraining. The program has been used successfully for over ten months. .A Goodenough, J. B. .I 1308 .T A Mathematical Model for Mechanical part Description .W The flexibility of a mathematical model takes advantage of the common information requirements of computer-aided engineering drawing, numerical control tape generation, and physical characteristic computation. By judicious control of man-machine communication requirements, improved results over conventional engineering design processes are possible. An English-like input language, tailored for use by draftsmen and designers, will describe the part and specify the output desired. One approach to the mathematical model consists of a group of surface-defining quadric equations, which are created by a system of modular subprogram. Other subprograms will convert the mathematical model into instructions for driving automatic drafting machines and numerical controlled machine tools. Physical part characteristics, such as center of gravity, can be computed by subprograms and used in dynamic analysis work. The proposed overall system is presented and experiments and demonstrations are discussed. .A Luh, J. Y. S. Krolak, R. J. .I 1309 .T A Computer User-Oriented System .W A computer language system has been developed which makes possible fast preparation of management reports, regardless of computational complexity or format variety. Costs are sufficiently low so that individually tailored reports can be prepared for every manager. The system requires initial preparation of large data banks containing data in elementary form. Use of two special languages, EXTRACT and MATRAN, permits selective extraction of any data subset, efficient processing through any computational sequence, and flexible presentation of results in either tabular or graphical form. Matrix algebra is used as a fundamental vehicle for accomplishing both manipulation and computation. .A Montillon, G. D. .I 1310 .T A Rapid Braille Transliteration Technique for Certain IBM Machines .A Weiler, W. J. Klema, V. C. .I 1311 .T Efficient Autocorrelation .A Schmid, L. P. .I 1312 .T Recursion and Iteration .A Rice, H. G. .I 1313 .T Construction of Nonlinear Programming Test Problems .A Rosen, J. B. Suzuki, S. .I 1314 .T The Organization of Symbol Tables .W An efficient symbol table organization is an important feature in the design of any compiler. During the construction of the Virginia ALGOL 60 compiler for the Burroughs B205, the primary consideration in the symbol table design was that the recognition of identifiers and reserved words should be as rapid as possible. The general features of the technique are described. .A Batson, A. .I 1315 .T Automation of the Radioisotope Accountability System .W The Radioisotope Service of the Veterans Administration Hospital, Omaha, Nebraska, used a manual system of radioisotope accountability for three years. The procedure which was satisfactory but time-consuming was converted from manual to a fully automated computer system in January, 1963. The program for purchased radioisotopes is written in FORMAT FORTRAN for the IBM 1620 Computer. A second program for maintaining accountability for reactor-created radioisotopes is written in the FORCOM programming language. A minimum amount of bookkeeping is required by the reactor operating staff. The United States Atomic Energy Commission regulations specify that records be kept. This system provides detailed records for each container of radioactive material purchased and/or created in the Triga reactor indicating the amounts received, used, and/or transferred to the health physicist for disposal. Consolidated records contain total amounts received, used, and/or disposed of for any specified period of time. Purchased radioisotopes are reported in millicuries; reactor-created radioisotopes in microcuries. .A Lahners, E. L. .I 1316 .T Bessel Functions of the First Kind (Algorithm 236 [S17]) .A Gautschi, W. .I 1317 .T Poisson-Charlier Polynomials (Algorithm 234 [S23]) .A Samet, P.A. .I 1318 .T Arccossin (Algorithm 206 [B1]) .A Bowlden, H. J. .I 1319 .T Crout with Equilibration and Iteration (Algorithm 135 [F4]) .A Meissner, L. P. .I 1320 .T Inverse Permutation (Algorithm 250 [G6]) .A Boonstra, B. H. .I 1321 .T Outreal N (Algorithm [I5]) .A Wirth, N. E. .I 1322 .T Netflow (Algorithm 248 [H]) .A Briggs, W. A. .I 1323 .T A Correspondence Between ALGOL 60 and Church's Lambda-Notation: Part I* .W This paper describes how some of the semantics of ALGOL 60 can be formalized by establishing a correspondence between expressions of ALGOL 60 and expressions in a modified form of Church's L-notation. First a model for computer languages and compute behavior is described, based on the notions of functional application and functional abstraction, but also having analogues for imperative language features. Then this model is used as an "abstract object language" into which ALGOL 60 is mapped. Many of ALGOL 60's features emerge as particular arrangements of a small number of structural rules, suggesting new classifications and generalizations. The correspondence is first described informally, mainly by illustrations. The second part of the paper gives a formal description, i.e. an "abstract compiler" into the "abstract objct language." This is itself presented in a "purely functional" notation, that is one using only application and abstraction. .A Landin, P. J. .I 1324 .T Answering English questions by Computer: A Survey .W Fifteen experimental English language question-answering systems which are programmed and operating are described and reviewed. The systems range from a conversation machine to programs which make sentences about pictures and systems which translate from English into logical calculi. Systems are classified as list-structured data-based, graphic data-based, text-based and inferential. Principles and methods of operations are detailed and discussed. It is concluded that the data-base question-answer has passed from initial research into the early developmental phase. The most difficult and important research questions for the advancement of general-purpose language processors are seen to be concerned with measuring, dealing with ambiguities, translating into formal languages and searching large tree structures. .A Simmons, R. F. .I 1325 .T Remote, On-Line, Real-time Computer Diagnosis of the Clinical Electrocardiogram .W Presented in this paper is a brief report on the hardware, software, system configuration and function of a system for the remote, online, real-time digital computer diagnosis of clinical electrocardiograms. It seems likely that efforts of this sort will lead to a satisfactory solution to the problem of the automatic diagnosis of electrocardiograms. Current attempts by the authors to extend the diagnostic capabilities of the present system are particularly concerned with increasing the fidelity of the adaptive matched filters, the development of three dimensional pattern analysis, the analysis of parallel electrocardiographer-computer diagnostic interaction, and a study of the possibility of introducing major, tree-like branching decisions early in the diagnostic process. .A Whipple, G. H. Dickson, J. F. Horibe, H. Stark, L. .I 1326 .T Boundary Networks .W A feasible computer procedure is described for determining the total or partial inclusion of arbitrarily given points and lines with respect to a set of general polygonal domains which partition a plane bounded region. A scheme for the computer representation of the boundaries of the domains and an algorithm, based on this scheme, for evaluating the inclusion relations are specified in detail. The method employs several levels of selection criteria for the purpose of reducing the number of accesses to auxiliary storage devices and the amount of boundary data for which processing is required. .A Loomis, R. G. .I 1327 .T Use of Decision Tables in Computer Programming .W A decision table is a tabular form for displaying decision logic. Decision tables have many inherent advantages. The technique to be illustrated puts these advantages to use in that it enables one to program directly from a decision table. The technique is based on the creation of a binary image of a limited entry decision table in computer memory. A binary image of a given set of input conditions can also be created. This data image is used to scan the decision table image to arrive at the proper course of action. There are several advantages gained from the programming point view: (1) amount of computer memory used is drastically reduced, (2) programming is simplified, and (3) documentation is brief and clear. .A Kirk, H. W. .I 1328 .T Further Remarks on Reducing Truncation Errors .A Kahan, W. .I 1329 .T Simulation of Boolean Functions in a Decimal computer .A Mano, M. M. .I 1330 .T Automated Plotting Flow-Charts on a Small Computer .A Anderson, H. E. .I 1331 .T Code Structures for Protection and Manipulation of Variable-Length Items .W When items are made up of a variable number of characters, each containing the same number of bits, certain control information (partition symbols) is inserted to mark their separations. Since errors in identification of these control characters can lead to serious trouble, methods of protecting these symbols are indicated. A 6-bit code assignment of alphanumeric characters for fixed word-length computers is given and its suitability for error detection and variable-length item manipulation is shown. Also indicated is its flexibility during certain arithmetic operations. .A Ramamoorthy, C. V. .I 1332 .T Subroutine Assembly .W A description is given of an assembly system, which requires only one pass and does not maintain a table of information about the subroutine library. .A Samet, P. A. .I 1333 .T Reducing Truncation Errors Using Cascading Accumulators .W When accumulating a large number of quantities as in numerical integration, the sum itself may become much larger than the individual addends. This results in truncation error. Much of this error can be eliminated using cascading accumulators as noted in a recent article by Wolfe. A simpler and slightly more flexible algorithm is presented which deals also with the case of negative addends. .A Ross, D. R. .I 1334 .T Mechanization of Tedious Algebra: The Newcomb Operators of Planetary Theory .W A computer program has been written to generate tables of formulas for the Newcomb operators of planetary theory. The Newcomb operators are expressed as polynomials in two variables, one of which stands for a simple differential operator, and the other for an arbitrary integer. The polynomials are generated by a recurrence scheme. The program is coded in FORTRAN, using simple array manipulation techniques to perform the algebraic operations. Formulas for over 100 Newcomb operators have been produced by the program and typeset photographically on an S-560 Photon system. .A Gerard, J. M. Izsak, I. G. Barnett, M. P. .I 1335 .T Character Set for Optical Character Recognition (Proposed American Stand ard) .I 1336 .T NPL: Highlights of A New Programming Language .A Radin, G. Rogoway, H. P. .I 1337 .T EULER: A Generalization of ALGOL, and its Formal Definition .A Wirth, N. Weber, H. .I 1338 .T Additional Comments on a Problem in Concurrent Progamming Control .A Knuth, D. E. .I 1339 .T A Contribution to the Development of ALGOL .A Wirth, N. Hoare, C. A. R. .I 1340 .T Multiplexing of Slow Peripherals .W The philosophy of a monitor which allows slow output devices to be multiplexed is presented. .A Abraham, C. Lance, G. N. Pearcey, T. .I 1341 .T Levels of Computer Systems .W In building current computer systems, we tend to break them down into "levels" of control, command and communication; in using the system, we break our problems down correspondingly. The continued use of such a structure raises questions about its effects on the usefulness of future systems, particularly with regard to such trends as time sharing, parallel programming, and, eventually, systems which learn. In this essay some of these questions are posed, and the general attitude we must take in pursuing the problem further is discussed. .A Bryant, P. .I 1342 .T Transportation Problem (Algorithms 293 [H]) .A Bayer, G. .I 1343 .T Havie Integrator (Algorithm 257 [D1]) .A Farkas, I. .I 1344 .T Statistical Computations Based Upon Algebraically Specified Models .W Based upon a machine-readable statistical model and related symbolic specifications, an efficient method of performing calculations for statistical models of a balanced complete nature is presented. Fixes, mixed, and random analysis of variance models are considered. A procedure for obtaining variance components and calculated F statistics for the model terms is included. .A Schlater, J. E. Hemerle, W. J. .I 1345 .T Tensor Calculations on the Computer .W A FORMAC program has been written which is capable of calculating various quantities of interest in tensor calculus. Using this code, Christoffel symbols have been calculated for 12 basic orthogonal coordinate systems. .A Waltons, J. J. .I 1346 .T On the Application of the Process of Equalization of Maxima to Obtain Rational Approximation to Certain Modified Bessel Functions .W The second Remes algorithm as originally established for polynomials, may converge or not when the approximating functions are rational. However, the few results known in this domain show how efficient the algorithm can be to obtain approximations with a small error, much more than in the polynomial case, in which the best approximation can be very nearly approached directly by a series development. The aim of this paper is to investigate the limitations of the applicability of certain extensions of the algorithm to the case where the approximations are rational as well as to present some numerical results. .A Gargantini, L. .I 1347 .T General Time-Varying Systems Error Sensitivities Program .W The evaluation, by the propagation of variance technique, of the sensitivity of time-varying systems to initial condition and parameter errors, involves the determination of several system-dependent partial derivative matrices. This requirement has led to separate programs for each system under investigation. A new program, through utilization of the Wengert differentiation technique, automatically determines the required matrices from specific system equations supplied in subroutine form at execution time, eliminating the need for individualized programs, and presaging the further development of extremely general computer programs. .A Wilkins, R. D. .I 1348 .T FLOWTRACE, A Computer Program for Flowcharting Programs .W The FLOWTRACE system produces flowcharts of programs written in "almost any" programming language. One most describe the syntax of the control statements in his language; for this purpose a metalanguage is available. The resultant object deck is used to flowchart any programs in the language described. Several examples of FAP and SNOBOL flowcharts are given. However, it is not necessary to confine one's scope to existing languages. One may define his own language in any "well-structured" manner. This feature is particularly useful when it is desirable to chart only comments within a program. Such an approach permits the documentation of descriptive remarks and avoids the inclusion of coding details. .A Sherman, P. M. .I 1349 .T Computing Capabilities at Western European Universities .W This report on the author's trip to universities in Western Europe in the summer of 1966 gives brief descriptions of computing activities at each institution visited. Present equipment capabilities vary from moderate to large scale; however, many institutions plan to acquire complex time-shared systems in the near future. In the author's opinion, the state of the art lags behind that on this continent. This lag is attributed to four principal factors: (a) the handicapping organization of academic procedures; (b) the university-government financial relationship; (c) the subordinated organization of the computing facility; (d) the paucity of professional interchange of knowledge. The effects of these constraints are explicated. .A Finerman, A. .I 1350 .T The Augmented Predictive Analyzer for Context-Free Languages-Its Relative Efficiency .W It has been proven by Greibach that for a given context-free grammar G, a standard-form grammar Gs can be constructed, which generates the same languages as is generated by G and whose rules are all of the form Z --> cY(1) ... Y(m), (m >= O) where Z and Y(i) are intermediate symbols and c a terminal symbol. Since the predictive analyzer at Harvard uses a standard-form grammar, it can accept the language of any context-free Grammar G, given an equivalent standard-form grammar Gs. The structural descriptions SD(Gs,X) assigned to a given sentence X by the predictive analyzer, however, are usually different from the structural descriptions SD(G,X) assigned to the same sentence by the original context-free grammar G from which Gs is derived. In Section 1, an algorithm, originally due to Abbott is described standard-form grammar each of whose rules is in standard form, supplemented by additional information describing its derivation from the original context-free grammar. A technique for performing the SD(Gs,X) to SD(G,X) transformation effectively is also described. In section 2, the augmented predictive analyzer as a parsing algorithm for arbitrary context-free languages is compared with two other parsing algorithms: a selective top-to-bottom algorithm similar to Irons' "error correcting parse algorithm" and an immediate constituent analyzer which is an extension of Sakai-Cocke's algorithm for normal grammars. The comparison is based upon several criteria of efficiency, covering core-storage requirements, complexities of the programs and processing time. .A Kuno,S. .I 1351 .T Automatic Error Bounds on Real Zeros of Rational Functions .W A procedure for implementing an interval arithmetic version of the Newton-Raphson method is proposed. The procedure require only a starting interval over which the zeros of a given rational function are to be located. The method automatically provides bounds for roundoff error. .A Dargel, R. H. Loscalzo, F. R. Witt, T. H. .I 1352 .T Automatic Integration of a Function with a Parameter .W Two efficient methods for automatic numerical integration are Romberg integration and adaptive Simpson integration. For integrands of the form f(x)g(x,a) where a is a parameter, it is shown that Romberg's method is more efficient. A FORTRAN program shows how to achieve this greater efficiency. .A Rabinowitz, P. .I 1353 .T Techniques for Automatic Tolerance Control in Linear Programming .W In this technical note, the numerical steps for the simplex method of linear programming are reviewed and the tolerances needed in the numerical procedure are defined. Objective criteria are given for accomplishing the numerical steps of the method and the calculation of necessary tolerances. .A Clasen, R. J. .I 1354 .T Conversion of Decision Tables to Computer Programs by Rule Mark Techniques .W The rule mask technique is one method of converting limited entry decision tables to computer programs. Recent discussion suggest that in many circumstances it is to be preferred to the technique of constructing networks or trees. A drawback of the technique as hitherto presented is its liability to produce object programs of longer run time than necessary. In this paper a modification of the technique is discussed which takes into account both rule frequencies and the relative times for evaluating conditions. This can materially improve object program run time. .A King, P. J. H. .I 1355 .T Regular Coulomb Wave Functions (Algorithm 292 ) .A Gautschi, W. .I 1356 .T Havie Integrator (Algorithm 257 [D1]) .A Hillstrom, K. .I 1357 .T Examination Scheduling (Algorithm 286 [H]) .A Williams, R. .I 1358 .T Syntax Macros and Extended Translation .W A translation approach is described which allows one to extended the syntax and semantics of a given high-level base language by the use of a new formalism called a syntax-macro. Syntax-macros define string transformations based on syntactic elements of the base language. Two types of macros are discussed, and examples are given of their use. The conditional generation of macros based on options and alternatives recognized by the scan are also described. .A Leavenworth, B. M. .I 1359 .T Data Filtering Applied to Information Storage and Retrieval Applications .W Manipulation of data strings is the most complex processing function in information storage and retrieval applications. Data string manipulation is discussed within the context of an interpretive processing environment controlled by the use of procedural directives. The sequence of procedural directives is derived from a job assumed to be expressed in a user-oriented source language. Each data string with the structured data environment (data bank) is explicitly or implicitly related to a format declaration residing in a format library. The processing mechanics associated with data string manipulation is developed in accordance with a generalized data filtering concept. This results in the implementation of a two-part data filter module that satisfies internal processing functions by filtering data strings through format declarations associated with its input and output ports. .A Larsen, R. P. .I 1360 .T Description of Systems Used for Data Transmission* (An ASA Tutorial) .I 1361 .T Rectangular Holes in Twelve-Row Punched Cards* (Proposed American Standard) .I 1362 .T Code Extension in ASCII* (An ASA Tutorial) .W The American Standard Code for Information Interchange (ASCII) contains a number of control characters associated with the principle of code extension, that is, with the representation of information which cannot be directly represented by means of the characters in the Code. The manner of use of these characters has not previously been completely described. This paper presents a set of mutually consistent philosophies regarding code extension applications, and suggests a corollary set of doctrines for the application of the code extension characters. Distinctions are drawn between code extension and such other concepts as "graphic substitution" or "syntactic representation" which are often used to meet similar requirements. Also covered are certain topics which are not truly concerned with code extension but which are often linked with it in discussion on code applications. The material in this paper is equally applicable in principle to the (proposed) ISO international 7-bit code for information interchange. .I 1363 .T A General Method of Systematic Interval Computation for Numerical Integration of Initial Value Problems .W A procedure is given for continuously computing and monitoring the step size to be used by a self-starting, p-th order numerical integration method to solve an initial value problem. The procedure uses an estimate of the truncation error to calculate the step size. .A Martin, W. C. Paulson, K. C. Sashkin, L. .I 1364 .T Mathematical Experimentation in Time-Lag Modulation .W Equations of the form du/dt = g(u(t),u(h(t))) arise in a number of scientific contexts. The authors point out some interesting properties of the solution u'(t) = -u(t-1-k*sin(wt))+sin(at). These properties were obtained by means of numerical solution. .A Bellman, R. Buell, J. Kalaba, R. .I 1365 .T Eliminating Monotonous Mathematics with FORMAC .W The FORMAC (FORmula MAnipulation Compiler) programming system provides a powerful tool for performing mathematical analysis. It is an extension of FORTRAN IV which permits the use of the computer to perform the tedious algebraic computations that arise in many different fields. Among the areas in which it has been successfully used are: differentiation of complicated expressions, expansion of truncated power series, solution of simultaneous equations with literal coefficients, nonlinear maximum likelihood estimation, tensor analysis, and generation of the coefficients of equations in Keplerian motion. These types of analysis-which arose in the solution of specific practical problems in physics, engineering, astronomy, statistics and astronautics-are discussed in the paper. In addition to its usage for specific problem solutions, FORMAC can also be used to automate the analysis phase in certain production programming. Several such applications are presented. .A Tobey, R. G. .I 1366 .T Computer Simulation-Discussion of the Technique and Comparison of Languages .W The purpose of this paper is to present a comparison of some computer simulation languages and of some of the involved in comparing software packages for digital computers are discussed in Part I. The issue is obvious: users of digital computers must choose from available languages or write their own. Substantial costs can occur, particularly in training, implementation and computer time if an inappropriate language is chosen.More and more computer simulation languages are being developed: comparisons and evaluations of existing languages are useful for designers and implementers as well as users. The second part is devoted to computer simulation and simulation languages. The computational characteristics of simulation are discussed with special attention being paid to a distinction between continuous and discrete change models. Part III presents a detailed comparison of six simulation languages and packages: SIMSCRIPT, CLP, CSL, GASP, CPSS and SOL. The characteristics of each are summarized in a series of tables. The implications of this analysis for designers of languages, for users, and for implementers are developed. The conclusion of the paper is that the packages now available for computer simulation offer features which none of the more general-purpose packages do and that analysis of strengths and weaknesses of each suggests ways in which both current and future simulation languages and packages can be improved. .A Teichroew, D. Lubin, J. F. .I 1367 .T Character Structure and Character Parity Sense for Parallel-by-Bit Data Communication in ASCII* (Proposed American Standard) .I 1368 .T Systematic Generation of Hamiltonian Circuits .W For a combinatorial matrix which may specify both directed and nondirected arcs, the paper describes a computer program which generates systematically and exhaustively all the Hamiltonian circuits. Specific application is made to the "traveling salesman" problem. .A Roberts, S. M. .I 1369 .T Half Rotations in N-Dimensional Euclidean Space .W An iterative procedure is described for determining half rotations in n-dimensional Euclidean space. The method is a variant of the cyclic Jacobi procedure and utilizers elementary plane rotations to obtain the half rotation matrix. Numerical examples are given. .A McCamon, R. B. .I 1370 .T Linear Equations, Exact Solutions (Algorithm 290 [F4]) .A Boothroyd, J. .I 1371 .T Logarithm of Gamma Function (Algorithm 291 [S14]) .A Pike, M. C. Hill, I. D. .I 1372 .T Direct Search (Algorithm 178 [E4]) .A Bell, M. Pike, M. C. .I 1373 .T Gamma Function; Gamma Function for Range 1 to 2; Reciprocal Gamma Function to Real Argument; Gamma Function; Logarithm of Gamma Function (Algorithms 34[S14]; 54[S14]; 80[S14]; 221[S14]; 291[S14]) .A Pike, M. C. Hill, I. D. .I 1374 .T Evaluation of Determinant; Determinant Evaluation (Algorithms 41[F3]; 269[F3]) .A Bergson, A. .I 1375 .T Function Minimization (Algorithm 251 [E4]) .A Fletcher, R. .I 1376 .T Modified Graeffee Method (Algorithm 256 [C2]) .A Stern, G. .I 1377 .T Pseudo-Random Numbers (Algorithm 266 [G5]) .A Hansson, L. .I 1378 .T Pseudo-Random Numbers (Algorithm 266 [G5]) .A Hill, I. D. Pike, M. C. .I 1379 .T A Final Solution to the Dangling Else of ALGOL 60 and Related Languages .W The dangling else problem consists of a class of potential ambiguities in ALGOL-like conditional statements whose basic form is "if B1 then if B2 then S1 else S2" where B1 and B2 are Boolean expressions and S1 and S2 are basic statements. The difficulty lies in whether to attach the else to the first if or to the second one. Existing solutions to the problem are either ambiguous or unnecessarily restrictive. Let Sand S1 be statements. We define S to be closed if "S else S1" is not a statement, and to be open if "S else S1" is a statement. Thus an unconditional statement is a closed statement. Open and closed conditional statements are defined by syntax equations in such a way as to preserve openness and closure. In each case, an else must always be preceded by a closed statement. It is shown that the syntax equations are unambiguous, and that may change in the statement types required within the syntax equations would lead to either ambiguity or unnecessary restriction. .A Abrahams, P. W. .I 1380 .T SIMULA-an ALGOL-Based Simulation Language .W This paper is an introduction to SIMULA, a programming language designed to provide a systems analyst with unified concepts which facilitate the concise description of discrete event systems. A system description also serves as a source language simulation program. SIMULA is an extension of ALGOL 60 in which the most important new concepts is that of quasi-parallel processing. .A Dahl, O. J. Nygaard, K. .I 1381 .T Impact of Computers on the Undergraduate Mathematics Curriculum .W The use of computers to permit the widespread application of mathematical ideas requiring computation in science and technology is extremely significant for the understanding of our current society. Student interest in this development is intense and if properly utilized should yield a much better understanding of mathematical concepts as well as the ideas of programming and logical structure which have been introduced into many fields by the use of computers. The present paper suggests that that portion of the undergraduate mathematical curriculum which is preparation for the use of mathematics by persons who are not professional mathematicians be modified to include the extensions and clarifications which are possible because of computers. An early introduction to programming is desirable to permit a continuing use of automatic computation to illustrate and clarify mathematical concepts. Following the calculus equation stage an intensive introduction to numerical analysis should be added to the current curriculum. In addition to providing competence in the mostly used computing techniques, it would permit a more sophisticated utilization of the advanced mathematical ideas associated with complex variables and transform theories. .A Murray, F. J. .I 1382 .T Desired Computer Impact on Undergraduate Mathematics .W Three matters relating to the theme of the Symposium are discussed here. The author examines some projections concerning the supply and demand for mathematicians in the United States through the mid-1970s, comments briefly on some of the factors which may influence the professional activities of applied mathematicians over the next several years, and discusses in broad terms how this information may relate to the undergraduate training of mathematicians. .A Macon, N. .I 1383 .T Implications of the Digital Computer for Education In the Mathematical Sciences .W The digital computer has profoundly altered the definition of what is interesting in mathematics. The importance of applied logic in human affairs is changed by the existence of the "logical engine." The result is that one should no longer think in terms of a single discipline of mathematics but in terms of a complex of mathematical sciences. .A Givens, W. .I 1384 .T Mathematics for Undergraduate Computer Scientists .W The mathematical requirements for an undergraduate program in Computer Science are a subject of debate. The Association for Computing Machinery's Curriculum Committee, however, believes that these requirements are essentially the same as the mathematical content of physical sciences undergraduate programs. The Committee believes that these requirements should assure the student of a broad mathematical background and should enable him to take a wide variety of courses in other scientific disciplines. The Committee's concern is to develop a solid scientific approach to Computer Science. .A Atchison, W. F. .I 1385 .T Computer Technology in Communist China, 1956-1965 .W Based on information from translations of Communist Chinese news items and periodical literature for the 1965 period, computer technology in China is reviewed under the following headings: (1) initial planning, organization and educational aspects of computer technology and automation; (2) machine development progress: two major specific machines in 1958-59, with Soviet aid; a vacuum in 1960-64 due to the withdrawal of Soviet aid; then presumably all-Chinese-made machines from 1965 to the present; (3) computer applications; (4) the trend of automation: control of production processes rather than data processing; and (5) the "Yun Ch'ou Hsueh" (Science of Operation and Programming) campaign of 1958-60, during which an attempt was made to bring concepts such as linear programming to ordinary Chinese workers and peasants. Communist China is adjudged to have a marginal computer capability, with most of its machines probably being of a binary nature; however, a turning point may have been reached in mid-1965. .A Audette, D. G. .I 1386 .T Symbolic Factoring of Polynomials in Several Variables .W An algorithm for finding the symbolic factors of a multi-variate polynomial with integer coefficients is presented. The algorithm is an extension of a technique used by Kronecker in a proof that the prime factoring of any polynomial may be found in a finite number of steps. The algorithm consists of factoring single-variable instances of the given polynomial by Kronecker's method and introducing the remaining variables by interpolation. Techniques for implementing the algorithm and several examples are discussed. The algorithm promises sufficient power to be used efficiently in an online system for symbolic mathematics. .A Jordan, D. E. Kain, R. Y. Clapp, L. C. .I 1387 .T Solution of Systems of Polynomial Equations By Elimination .W The elimination procedure as described by Williams has been coded in LISP and FORMAC and used in solving systems of polynomial equations. It is found that the method is very effective in the case of small systems, where it yields all solutions without the need for initial estimates. The method, by itself, appears in appropriate, however, in the solution of large systems of equation due to the explosive growth in the intermediate equations and the hazards which arise when the coefficients are truncated. A comparison is made with difficulties found in other problems in non-numerical mathematics such as symbolic integration and simplification. .A Moses, J. .I 1388 .T AUTOMAST: Automatic Mathematical Analysis and Symbolic Translation .W A procedure for numerically solving systems of ordinary differential equation is shown to also generate symbolic solutions. The procedure is based on a finite Taylor series expansion that includes an estimate of the error in the final result. A computer program is described that reads in a system of such equations and then generates the expansions for all of the dependent variables. The expansions are determined symbolically, hence any non-numeric parameters in the original equations are carried automatically into the final expansions. Thus the exact influence of any parameters on the problem solution can be easily displayed. .A Ball, W. E. Berns, R. I. .I 1389 .T A Programmer's Description of L^6 .W Bell Telephone Laboratories' Low-Linked List Language L^6 (pronounced "L-six") is a new programming language for list structure manipulations. It contains many of the facilities which underlie such list processors as IPL, LISP, COMIT ad SNOBOL, but permits the user to get much closer to machine code in order to write faster-running programs, to use storage more efficiently and to build a wider variety of linked data structures. .A Knowlton, K. C. .I 1390 .T CONVERT .W A programming language is described which is applicable to problems conveniently described by transformation rules. By this is meant that patterns may be prescribed, each being associated with a skeleton, so that a series of such pairs may be searched until a pattern is found which matches an expression to be transformed. The conditions for a match are governed by a code which also allows subexpressions to be identified and eventually substituted into the corresponding skeleton. The primitive patterns and primitive skeletons are described, as well as the principle which allow their elaboration in to more complicated patterns and skeletons. The advantages of the language are that it allows one to apply transformation rules to lists and arrays as easily as strings, that both patterns and skeletons may be defined recursively, and that as a consequence programs may be stated quite concisely. .A Guzman, A. McIntosh, H. V. .I 1391 .T Computer Experiments in Finite Algebra .W A medium-scale programming system is written in MAD and FAP on the IBM 7094 to manipulate some of the objects of modern algebra: finite groups, maps and sets of maps, subsets and sets of subsets, constant integers and truth-values. Designed to operate in a time-sharing environment, the system can serve as a teacher's aid to the undergraduate student of modern algebra, as well as for the working scientist or engineer wishing to familiarize himself with the subset. .A Maurer, W. D. .I 1392 .T Experience with FORMAC Algorithm Design .W Various facets of the design and implementation of mathematical expression manipulation algorithms are discussed. Concrete examples are provided by the FORMAC EXPAND and differentiation algorithms, a basic FORMAC utility routine, and an experiment in the extraction of the skeletal structure of an expression. One recurrent theme is the need to avoid excessive intermediate expression swell in order to minimize core storage requirements. Although many details from the FORMAC implementation are presented, an attempt is made to stress principles and ideas of general relevance in the design of algorithms for manipulating mathematical expressions. .A Tobey, R. G. .I 1393 .T PM, A System for Polynomial Manipulation .W PM is an IBM 7094 program system for formal manipulation of polynomials in any number of variables, with integral coefficients unrestricted in size. Some of the formal operations which can be performed by the system are sums, differences, products, quotients, derivatives, substitutions and greater common divisors. PM is based on the REFCO III list processing system, which is described and compared with the LISP and SLIP systems. The PM subroutines for arithmetic of large integers are described as constituting an independently useful subsystem. PM is compared with the ALPAK system in several respects, including the choice of canonical forms for polynomials. A new algorithm for polynomial greatest common divisor calculation is mentioned, and exaples are included to illustrate its superiority. .A Collins, G. E. .I 1394 .T Computation of Algebraic Properties of Elementary Particle Reactions Using a Digital Computer .W A large number of calculations in high-energy elementary particle physics involve the manipulation of complicated algebraic expressions containing both tensor and noncommutative matrix quantities. Many of these calculations take several months to complete, although the operations involved follow straightforward rules. In this paper a program is described, which has been developed in LISP for solving such problems. The manner in which these problems are encountered is outlined, and their representation in the computer discussed. At present, about six months of human work takes less than fifteen minutes on an IBM 7090. Limitations of the present system and future plans are also outlined. .A Hearn, A. C. .I 1395 .T On the Implementation of AMBIT, A Language for Symbol Manipulation .W A brief description is given of the implementation technique for the replacement rule of the AMBIT programming language. The algorithm for the "AMBIT scan" and an example of its application are given. The algorithm is applicable to other members of the family of string transformation languages of which AMBIT is a member, and it provides a rationale for the design of the AMBIT language. .A Christensen, C. .I 1396 .T Survey of Formula Manipulation .W The field of formula manipulation is surveyed, with particular attention to the specific capabilities of differentiation, integration and the supporting capabilities of simplification, displays and input/output editing, and precision arithmetic. General systems-both batch and online-are described. Finally, some programs to solve specific applications are discussed. .A Sammet, J. E. .I 1397 .T Proceedings of the ACM Symposium on Symbolic and Algebraic Manipulation .W The ACM Symposium on Symbolic and Algebraic Manipulation brought together over four hundred people interested in programming languages designed for manipulation of algebraic formulas and symbol strings, in their applications, and in algorithms for their implementation. Twenty-eight papers were presented, followed by a lively panel discussion of future directions. Evening meetings were arranged for several interest groups. The conference was sponsored by the ACM Special Interest Committee on Symbolic and Algebraic Manipulation. The program committee consisted of Chairman Jean E. Sammet, Paul Abrahams, Thomas E. Cheatham, Max Goldstein, and Douglas Mcllroy. Conference arrangements were made by Lewis C. Clapp, Daniel Bobrow and James H. Griesmer.-Robert W. Floyd, Editor .I 1398 .T Robot Data Screening: A Solution to Multivariate Type Problems in the Biological and Social Sciences .W A new approach is outlined toward the solution of the type of multivariate problem that is found usually in the biological and social sciences as well as in medicine. This approach uses a "logical" rather than a "statistical" criterion by which variables are grouped into a deterministic model. Algorithm are developed by which some variables are kept on for further analysis while others are eliminated. Criteria for the acceptance of a variable as well as the termination of the searching process are derived from information theory. .A Sterling, T. Gleser, M. Haberman, S. Pollack, S. .I 1399 .T On Top-to-Bottom Recognition and Left Recursion .W A procedure is given for obtaining structural descriptions in a context-free grammar by performing the recognition according to a strongly equivalent, left-recursion-freegrammar. The effect of allowing null strings in the rewriting rules is discussed. .A Kurki-Suonio, R. .I 1400 .T Free-Text Inputs to Utility Routines .W Through the use of some rather simple techniques, it is frequently possible to produce a program which will accept free-text inputs. The techniques are discussed and related to a general tape manipulation routine. .A Blum, R. I. .I 1401 .T Quasilinearization and the Calculation of Eigenvalues .W Several eigenvalue problems for systems of ordinary differential equations are considered. They are resolved computationally using the quasilinerization technique, a quadratically convergent successive approximation scheme related to the Newton-Raphson-Kantorovich method. .A Bellman, R., Kagiwada, H. Kalaba, R. .I 1402 .T Partial Step Integration .W A partial step integration equation is derived for use with the Adams or Adams-Bashforth method of integration of differential equations. This method of obtaining functional values at points intermediate to the integration points yields accuracy comparable to the integration and does not require storing of additional information as in interpolation methods. .A Glauz, R. D. .I 1403 .T A Method for Finding the m Smallest Values of a Monotonic Function Defined on Ordered Sets of Positive Integers .W The minimum value of a monotonic increasing function defined on a partially ordered set S is assumed on the set of minimal points of S. This observation is used to devise an efficient method for finding the m smallest functional values of monotonic functions defined on ordered pairs of positive integers. The method is easily extended to include monotonic functions defined on ordered n-tuples. Included is a FORTRAN program which was written to implement the procedure for a certain important case. .A Sigillito, V. G. .I 1404 .T Computational Aspects of Multiple Covariance Analysis on a Multifactor Structure .W The computational procedure for the analysis of multiple covariance in statistics is discussed with reference to the analysis of variance. A special operator calculus developed by Hartly for programming analysis of variance for multifactor experiments is extended to cover the analysis of covariance. This extension is accomplished by utilizing the connection between the analysis of covariance and the analysis of variance and by introducing a new operator. The results are illustrated by a numerical example for analysis of covariance, in which the basic computations are shown to be carried out by an analysis-of-variance program. .A Peng, K. C. .I 1405 .T Matrix Triangulation with Integer Arithmetic (Algorithm 287 [F1]) .A Blankinship, W. A. .I 1406 .T Solution of simultaneous Linear Diophantine Equations (Algorithm 288 [F4]) .A Blankinship, W. A. .I 1407 .T Confidence Interval for a Ratio (Algorithm 289 [G1]) .A Hill, I. D. Pike, M. C. .I 1408 .T The Eschenbach Drum Scheme .W The prime function of a drum, operating in real time, is to perform accesses quickly. The usual means for increasing this capacity is to incorporate engineering or hardware improvements. In this paper the problem is attacked not by changing the drum, but rather by modifying the manner in which it operates. At the outset, a drum is given a functional definition. Then a simple design scheme (Eschenbach) is introduced which enormously increases the rate of accessing for drums so defined. This is shown to enable a system to perform a job by employing fewer or less expensive drums. It is suggested that although the design scheme has a specific use, the method underlying it has more general applicability. The question of the efficacy of the drum scheme is then raised. To deal with this, a standard of efficiency is developed in light of realistic real-time circumstances. The drum scheme is then modelled in a manner which permits it to be analyzed as a problem in queueing theory. Thus one is enabled to ascertain whether the drum scheme is efficient enough for its application. Again, whereas the analysis of the drum scheme has a specific use, the methods underlying it have more general applicability. .A Weingarten, A. .I 1409 .T NEBULA: A Digital Computer Using a 20 Mc Glass Delay Line Memory .W Oregon State University has designed and constructed a medium-speed serial digital computer using glass delay lines circulating at 22 Mc as memory. The design objectives as originally conceived in a special seminar were: (1) to be a research project in computer design; (2) to be usable as an educational machine;and (3) to have easily modifiable hardware for basic research in computer systems design. An unusual arrangement of information within the 22 Mc memory allows a simple interface with the 340 Kc arithmetic unit, which results in an effective zero latency time and provides possibilities for an associative memory. The arithmetic unit has a command structure similar to large parallel machines, and uses flip-flop arithmetic and control registers throughout. All hardware development has been aimed toward the concept of easy modification, elaborate console controls for effective man-machine interaction and low cost. .A Boles, J. A. Rux, P. T. Weingarten Jr., F. W. .I 1410 .T Interarrival Statistics for Time Sharing Systems .W The optimization of time-shared system performance requires the description of the stochastic processes governing the user inputs and the program activity. This paper provides a statistical description of the user input process in the SDC-ARPA general-purpose Time-Sharing System (TSS). The input process is assumed to be stationary, and to be defined by the interarrival time distribution. The data obtained appear to justify satisfactorily the common assumption that the interarrival times are serially independent. The data do not appear to justify, except as a very rough approximation, the usual assumption off an exponential distribution for interarrival time. A much more satisfactory approximation to the data can be obtained with a biphase or triphase hyperexponential distribution. .A Coffman, E. G. Wood, R. C. .I 1411 .T Comparison of Several Algorithms for Computation of Means, Standard Deviations and Correlation Coefficients .W Several algorithms for computation of basic statistics are compared by their performance on systematically generated test data. The statistics calculated were the mean, standard deviation and correlation coefficient. For each statistic, the algorithm included the usual computing formulas, correction due to an accumulated error term, and a recursive computation of the current value of the statistic. The usual computing formulas were also evaluated in double precision. Large errors were noted for some calculation using the usual computing formulas. The most reliable technique was correction of the initial estimate by use of an accumulated error term. To eliminate the need for making two passes on the data, it was suggested that the initial estimate of the mean be obtained from a subset of the data. .A Neely, P. M. .I 1412 .T The Banking Information System Concept .W Most large commercial banks have progressed to the point where their major accounting applications have been automated and more sophisticated usage of data processing equipment is being sought. This, coupled with the availability of equipment well suited to real-time, direct access processing,has led to development within some banks of the central file of data base approach toward a banking information system. The banking information system now serves the two-fold purpose of providing real-time responses to inquires about individual account stasus and providing more complex combinations of information for management use. Both kinds of processing draw upon a common store of data contained in the direct access central file. This data base includes indexes which facilitate cross referencing of account information so that all relationships between bank and customer may be discerned. In introducing the banking information system concept, a gradual approach to account cross-referencing and file conversion is most prudent. Generally, this system must interface with other computer applications already existing within the bank. .A Head, R. V. .I 1413 .T A Vision of Technology and Education .W Educational technology is currently quite fashionable. Here, as in many other branches or aspects of technology, changes possible in the next generation or two are now known as ideas, discoveries or inventions. The unknown is whether the potential will become the actual and, if so, on what time scale. This ignorance stems largely from ignorance about the social response to potential technological change. The object of this paper is to present a vision of potential educational technology and to raise questions about the modes of social response and adaptation likely to be evoked by such a vision. .A Oettinger, A. G. .I 1414 .T Twelve-Row Punched-Card Code for Information Interchange* (Proposed American Standard) .I 1415 .T Automatic Derivation of Microsentences .W The decomposition of long complex English sentences into shorter kernel-like constituent sentences (microsentences)has often been suggested as an avenue toward conducting automatic retrieval of natural language messages. To explore the prospects of such a step, the authors attempted in 1963 to prepare a general program for deriving microsentences from longer sentences that had been syntactically analyzed by the Harvard Multipath Analysis Program. The basic idea was to extract the subject, verb and object (if any) of each clause and to reassemble these materials into a grammatical microsentence. A program is described in this paper, which was designed to operate on the tree structure output of the analyzer, and the microsentences that were produced are exhibited. The authors conclude that while microsentences of the quality achieved do not open up immediate prospects for improving the performance of automatic message retrieval systems, they may have practical value in man-machine systems using human monitors to select the preferred syntactic interpretation of a sentence. .A Carmody, B. T Jones Jr., P. E. .I 1416 .T A Fortran Technique for Simplifying Input to Report Generators .W Typical report generators allow the production of standard forms when tabulating a magnetic tape file; the extraction of nonstandard sets of information, with suitable annotation, involves troublesome forms design. A method of information extraction involving the calculation of suitable FORTRAN FORMAT statements, which combats this problem, is described. .A Cleary, J. G. .I 1417 .T Economies of Scale and the IBM System/360 .W Cost functions among five System/360 models are analyzed through examinations of instruction times, program kernels and a "typical" instruction mix. Comparisons are made between the data developed here and Grosch's Law which seems to be applicable to much of the data. Sizable economies of scale are unquestionably present in computing equipment. .A Solomon Jr., M. B. .I 1418 .T Examination Scheduling (Algorithm 286 [ZH]) .A Peck, J. E. L. Williams, M. R. .I 1419 .T Chebyshev Quadrature (Algorithm 279 [D1]) .A Hopgood, F. R. A. Litherland, C. .I 1420 .T A New Uniform Pseudorandom Number Generator .W A new multiplicative congruential pseudorandom number generator is discussed, in which the modulus is the largest prime within accumulator capacity and the multiplier is a primitive root of that prime. This generator passes the usual statistical tests and in addition the least significant bits appear to be as random as the most significant bits-a property which generators having modulus 2^k do not possess. .A Hutchinson, D. W. .I 1421 .T A Contribution to the Development of ALGOL .W A programming language similar in many respects to ALGOL 60, but incorporating a large number of improvements based on six years experience with that language, is described in detail. Part I consists of an introduction to the new language and a summary of the changes made to ALGOL 60, together with a discussion of the motives behind there visions. Part II is a rigorous definition of the proposed language. Part III describes a set of proposed standard procedures to be used with the language, including facilities for input/output. .A Wirth, N. Hoare, C. A. R. .I 1422 .T Eleven-Sixteenths Inch Perforated Paper Tape (Proposed American Standard) .I 1423 .T A Simple Algorithm for Computing the Generalized Inverse of a Matrix .W The generalized inverse of a matrix is important in analysis because it provides an extension of the concept of an inverse which applies to all matrices. It also has many applications in numerical analysis, but it is not widely used because the existing algorithms are fairly complicated and require considerable storage space. A simple extension has been found to the conventional orthogonalization method for inverting non-singular matrices, which gives the generalized inverse with little extra effort and with no additional storage requirements. The algorithm gives the generalized inverse for any m by n matrix A, including the special case when m+n and A is non-singular and the case when m>n and rank(A) = n. In the first case the algorithm gives the ordinary inverse of A. In the second case the algorithm yields the ordinary least squares transformation matrix INV(A'A)A' and has the advantage of avoiding the loss of significance which results in forming the product A'A explicitly. .A Rust, R. Burrus, W. R. Schneeberger, C. .I 1424 .T Automatic Analysis of Electronic Digital Circuits Using List Processing .W A mapping from black diagrams of digital circuits to list structures is described, together with a list processing program written for the Control Data 3600 which uses this mapping to automatically carry out circuit analysis. .A Shalla, L. .I 1425 .T Flow Diagrams, Turing Machines And Languages With Only Two Formation Rules .W In the first part of the paper, flow diagrams are introduced to represent inter al. mappings of a set into itself. Although not every diagram is decomposable into a finite number of given base diagrams, this becomes true at a semantical level due to a suitable extension of the given set and of the basic mappings defined in it. Two normalization methods of flow diagrams are given. The first has three base diagrams; the second, only two. In the second part of the paper, the second method is applied to the theory of Turing machines. With every Turing machine provided with a two-way half-tape, there is associated a similar machine, doing essentially the same job, but working on a tape obtained from the first one by interspersing alternate blank squares. The new machine belongs to the family, elsewhere introduced, generated by composition and iteration from the two machines L and R. That family is a proper subfamily of the whole family of Turing machines. .A Bohm, C. Jacopini, G. .I 1426 .T A Simulation of Hospital Admission Policy .W A study is described which simulates different admission policies of a large specialized hospital. The objective is to determine better policies for stabilization of admission and census rates while maintaining a reasonably full hospital. There types of policies were examined: admission based on percentages of discharge rates, discharge rates plus or minus a constant, and fixed authorizations independent of discharge rates. The last type policy produced more stable simulated results, and when put into practice, improvements were realized. .A Smith, W. G. Solomon Jr., M. B. .I 1427 .T Simulation of Radioisotope Scans by Computer .W In radioisotope scanning, a field which is assuming increasing importance in medical diagnosis, the scan is a two-dimensional pattern made up of dots. Areas of increased source activity are represented on the scan by areas of increased dot density. To study the output of scanners with various characteristics, a program which simulates radioisotope scans has been written for a PDP-1 computer with auxiliary disk storage and cathode ray tube display. Past and present research using the output of the simulator has shown the flexibility of the system to be important. The structure of this program can be useful in the simulation of the output of any quantum-limited system. .A Pizer, S. M. .I 1428 .T SHOCK III, A Computer System As an Aid in the Management of Critically III Patients .W SHOCK III, an online digital computer system to assist the physician, nurse and paramedical personnel in monitoring and reporting on critically ill patients, is described. .A Rockwell Jr., M. A. Shubin, H. Weil, M. H. Meagher, P. F. .I 1429 .T Matrix Reduction Using the Hungarian Method For The Generation of School Timetables .W The application of Kuhn's Hungarian Method to the problem of matrix reduction as needed in Gotlieb's method for timetable generation is described. The method is suited to both hand and computer calculation. Devices to improve the efficiency of the basic algorithm are discussed. .A Lions, J. .I 1430 .T Multiple Precision Floating-Point Conversion from Decimal-to-Binary and Vice Versa .W Decimal-to-binary and binary-to-decimal floating-point conversion is often performed by using a table of the powers 10^i, (ia positive integer) for converting from base 10 to base 2, and by using a table of the coefficient of a polynomial approximation of 10^x, (0<=x<1) for converting from base 2 to base 10. These tables occupy a large storage region in the case of a nonsingle precision conversion. This paper shows that a single small table suffices for a floating-point conversion from decimal to binary, and vice versa, in any useful precision. .A Mancino, O. G. .I 1431 .T On a Storage Mapping Function For Data Structures .W Some basic facts about certain data structures are reviewed and an efficient algorithm is presented for constructing a storage mapping function for a structure from the structure's definition. .A Deuel, P. .I 1432 .T Incorporation of Nonstandard Input/Output Devices into FORTRAN Systems .W A FORTRAN system may readily be modified to handle input/output with nonstandard media on the same basis on which it handles the standard media. This is done by providing a character-handling subroutine suited to the nonstandard medium and arranged to be called by an otherwise unused output statement type or unit number. This method was used to control output of alphanumeric information on a digital graph plotter. .A Cohn, C. E. .I 1433 .T A Note on Linear Programming Algorithm Design: A Combinatorial Problem .W As linear programming models grow bigger and bigger in size, much actual data that must be memorized is often put on magnetic tape or disk, and consequently there is an improportionality fast rise in the consumption of computer time.To cut down this expense, an ever increasing effort is made to design more efficient algorithms. This paper is meant to support the effort. It is attempted to find some characteristics of the way a pivot column is found. The number of repetitions of a certain transfer of data from tape to core memory is considered. After some simplification, the problem is restated in a general way. The generating function of the probability distribution and the moment generating function of the number of repetitions is found. Asymptotic formulas are given for the moments using a result from a paper of S. Narumi [1]. The results may be applied to write very efficient routines that search for an extreme value in a table. Formulas provide a means of calculating the computer timings in this case. .A Roes, P. B. M. .I 1434 .T A Monte Carlo Algorithm for Assigning Students to Classes .W A technique of random choice is illustrated by application to the problem of assigning students to a fixed schedule of courses. Using the technique it is possible to reduce or eliminate difficulties that result when a popular section is filled and closed before all students requesting and requiring it have been scheduled. The effectiveness of automatic scheduling is retained without loss of the students privilege of picking favorite instructors. .A Macon, N. Walker, E. E. .I 1435 .T Design of Computer Simulation Experiments for Industrial Systems .W The aim of this paper is to provide background information on the existing literature on experimental design techniques which may be applicable to the design of computer simulation experiments for industrial systems. Although major emphasis is placed on analysis of variance techniques, three other techniques of data analysis are considered-multiple ranking procedures, sequential sampling and spectral analysis. The paper treats four specific experimental design problems and several techniques for solving them. The four experimental design problems are: (1) the problem of stochastic convergence, (2) the problem of factor selection, (3) the problem of motive and (4) the many response problem. .A Burdick, D. S. Naylor, T. H. .I 1436 .T Interchange of Two Blocks of Data (Algorithm 284 [K2]) .A Fletcher, W. .I 1437 .T The Mutual Primal-Dual Method (Algorithm 285 [H]) .A Aird, T. J. .I 1438 .T A Method for Locating Zeros of Complex Functions .W A method for computing the index, or winding number, is developed and applied to the problem of finding zeros of functions from the plane into the plane. .A Cain Jr., G. L. .I 1439 .T Mechanization of the Curve Fitting Process: DATAN .W A process for fitting a curve to approximate data and the problem it creates for the engineer-programmer is defined. An approach has also been defined and a system has been written for the SRU 1107 to mechanize a major portion of this process. The techniques developed to accomplish the mechanization are largely empirical, and are dependent for their information only on the actual data points. .A Simonsen, R. H. Anketell, D. L. .I 1440 .T Starting Approximations for Square Root Calculation on IBM System/360 .W Several starting approximations for square root calculation by Newton's method are presented in a form to facilitate their use in IBM System/360 square root routines. These approximations include several for the range [1/16, 1], which is the interval of primary interest on IBM System/360. .A Fike, C. T. .I 1441 .T Methods of Numerical Integration Applied to a System Having Trivial Function Evaluations .W A study has been made to determine which methods of numerical integration require the least computation time for a given amount of truncation error when applied to a particular system of ordinary differential equations where function evaluations are relatively trivial. Recent methods due to Butcher and Gear are compared with classic Runge-Kutta, Kutta-Nystrom and Adams methods. Some of the newer one-step methods due to Butcher are found to be slightly superior, but no one method is found to have any great advantage over the others in the application to this particular problem. .A Waters, J. .I 1442 .T Recorded Magnetic Tape For Information Interchange (800 CPI, NRZI)* (Proposed American Standard) .I 1443 .T A Method for Finding the Least Squares Estimate of the Intersection Point of Two Helices in Space .W When the helical trajectories of two charged particles moving away from a common point in a magnetic field are reconstructed from measurements on the tracks, the reconstructed tracks are perturbed by measurement and other errors and do not, in general, intersect. A method is given for adjusting the reconstructed tracks in a least squares manner so that they do intersect. .A Royston, R. J. Gregory, J. .I 1444 .T An Algorithm for Generating Projective Reduction Formulas for Matrix Elements of Many-Electron Wavefunctions .W An ALGOL procedure is given for automatically generating formulas for matrix elements arising in the variational solution of the Schrodinger equation for many-electron systems. .A Reeves, C. M. .I 1445 .T Use of the Computer to Teach Introductory Statistics .W It has always been obvious that the aid to calculation offered by the computer forces a change in the curricula of mathematics, statistics, physics, engineering and other courses. Not so obvious are the many pedagogic aids the computer can offer in teaching the subject matter. The possibilities of giving the student a better technical as well as conceptual understanding of statistics were explored for a number of years at the College of Medicine of the University of Cincinnati and are reported here. .A Sterling, T. D. Pollack, S. V. .I 1446 .T Chebyshev Quadrature (Algorithm 279 [D1]) .A Hopgood, F. R. A. Litherland, C. .I 1447 .T Abscissas and Weights for Gregory Quadrature [D1]) .A Welsch, J. H. .I 1448 .T Abscissas and Weights for Romberg Quadrature (Algorithm 281 [D1]) .A Welsch, J. H. .I 1449 .T Derivatives (Algorithm 282 [S22]) .A Gautschi, W. .I 1450 .T Simultaneous Displacement of Polynomial Roots if Real and Simple (Algorithm 283 [C2]) .A Kerner, I. O. .I 1451 .T Runge-Kutta Integration (Algorithm 9 [D2]) .A Thacher Jr., H. C. .I 1452 .T Kutta-Merson (Algorithm 218 [D2] .A Bayer, G. .I 1453 .T A Nonrecursive Method of Syntax Specification .W The use of the Kleene regular expression notation for describing algebraic language syntax, in particular of ALGOL, is described in this paper. A FORTRAN II computer program for carrying out the elimination algorithm of Gorn,similar to Gaussian elimination for linear systems of algebraic equations, is described. This was applied to numerous smaller languages, including some sublanguage of ALGOL. A hand calculation result of the application of the algorithm to all of ALGOL is given, thus expressing the Revised ALGOL 1960 syntax in completely nonrecursive terms, as far as its context-free portion is concerned. This description in many ways is far more intuitively understood than the previous recursive description, it is suggested. The paper also includes results of the machine program, which does not include a simplification algorithm. .A Carr III, J. W. Weiland, J. .I 1454 .T A Simple User-Oriented Compiler Source Language for Programming Automatic Test Equipment .W For the nonprogrammer, difficulty in using a language increases rapidly with the number of nonproblem-oriented conventions. A simple language, even if inelegant, which considers the user's background as part of the problem may be more effective than a source language containing subtle and more powerful capabilities. The language described in this paper is used to write computer programs which test electronic equipment. Because this testing process contains few complex ideas, there is little need for the elegance and redundancy of a highly syntax-oriented language. A simple and direct language will suffice for the problem. The eventual users of this language are military depot personnel who cannot he expected to have computer programming skill or significant programming training. For this nonprogramming-oriented user, it was essential to create a language using familiar engineering statements; programming-oriented conventions would have unnecessarily complicated his task. .A Scheff, B. H. .I 1455 .T TRAC, A Procedure-Describing Language for the Reactive Typewriter .W A description of the TRAC (Text Reckoning And Compiling) language and processing algorithm is given. The TRAC language was developed as the basis of a software package for the reactive typewriter. In the TRAC language, one can write procedures for accepting, naming and storing any character string from the typewriter; for modifying any string in any way; for treating any string at any time as an executable procedure, or as a name, or as text; and for printing out any string. The TRAC language is based upon an extension and generalization to character strings of the programming concept of the "macro." Through the ability of TRAC to accept and store definitions of procedures, the capabilities of the language can be indefinitely extended, and can deal with character strings, integers and Boolean vector variables. .A Mooers, C. N. .I 1456 .T Storage and Retrieval of Aspects of Meaning in Directed Graph Structures .W An experimental system that uses LISP to make a conceptual dictionary is described. The dictionary associates with each English word the syntactic information, definitional material, and references to the contexts in which it has been used to define other words. Such relations as class inclusion, possession, and active or passive actions are used as definitional material. The resulting structure serves as a powerful vehicle for research on the logic of question answering. Examples of methods of inputting information and answering simple English questions are given. An important conclusion is that, although LISP and other list processing languages are ideally suited for producing complex associative structures, they are inadequate vehicles for language processing on any large scale-at east until they can use auxiliary memory as a continuous extension of core memory. .A Simmons, R. F. .I 1457 .T Data Manipulation and Programming Problems in Automatic Information Retrieval .W Automatic information retrieval programs require the manipulation of a variety of different data structures, including linear text, sparse matrices, and tree or list structures. The main data manipulations to be performed in automatic information systems are first briefly reviewed. A variety of data representations which have been used to describe structured information are then examined, and the characteristics of various processing languages are outlined in the light of the procedures requiring implementation. Advantages of these programming languages for the retrieval application are examined, and suggestions are made for the design of programming facilities to aid in information retrieval. .A Salton, G. .I 1458 .T Online Programming .W When the transition has been made from off line to online programming, there are a number of changes in the working conditions noted. These changes in the environment make necessary corresponding changes in the processes related to producing and checking out programs. In the main, it it not the programming language itself which must be changed to provide a facility for the online user; it is the system surrounding the programming language. In this paper the online environment and its effect on programming are discussed. .A Schwartz, J. I. .I 1459 .T Requirements for Real-Time Languages .W Real-time languages have different requirements from other programming languages because of the special nature of their applications, the environment in which their object programs are executed and the environment in which they may be compiled. It may not be the language extensions that ultimately advance developments in the field. Progress may be made by attacking the special compiling and executing system problems that must be solved. .A Opler, A. .I 1460 .T Evolution of the Meta-Assembly Program .W A generalized assembler called a "meta-assembler" is described. The meta-assembler is defined and factors which contributed to its evolution are presented. How a meta-assembler is made to function as an assembly program is described. Finally, the implication of meta-assemblers on compiler design is discussed. .A Ferguson, D. E. .I 1461 .T Discussion Summary on Operating Systems .I 1462 .T Multilevel Operating Systems .W The Basic software for all newer computers is built on the well-established need for standard operating systems. This implies that all applications-no matter how large, complex or time consuming-must operate under (or, more precisely, on top of) the standard system. Large applications require supervisory monitors which handle problems similar to those of the operating systems, but at a different level. Sometimes, still a third or even a fourth such level is required or desirable. This leads naturally to the concept of multilevel systems-similar vertically, but different horizontally. Proper division of responsibility between levels leads to greater efficiency and less logical complexity, while actually enhancing capability. .A Orchard-Hays, W. .I 1463 .T More on Extensible Machines .W One of the most salient characteristics of extensible machines (EM) is the facility for providing system control over program-to-program and program-to-data linkage (e.g., address connection). It is the intent of this paper to expand and clarify the remarks concerning program-to-program and program-to-data linkage that were embodied in the authors' previous paper on the EM concepts, and to, finally, trace the employment of linkage mechanisms through various levels of programming languages. .A Leonard, G. F. Goodroe, J. R. .I 1464 .T An ALGOL Compiler: Construction and Use in Relation to an Elaborate Operating System .W An ALGOL translator has been prepared and integrated into the IBSYS Operating System. Assembly and "go" features of IBSYS permit immediate execution with optional listings, decks and debugging information. Using the chain feature of IBSYS, links written in MAP or FORTRAN as well as ALGOL may be called by the ALGOL main program. In addition, procedures coded in MAP may be included in any ALGOL program. Although assembly plus loading time exceeds compilation time, the total time is satisfactory and the user gets ease and facility which are fully compensating. .A Boussard, J. C. .I 1465 .T Program Translation Viewed as a General Data Processing Problem .W Efficiency dictates that the overall effectiveness of a compiler be increased by all means available. For a compiler to have a substantial useful life it needs a clear logical structure, reliability and sound data processing techniques. A compiler must be based on fixed conventions to preserve efficiency and reliability; empty options and default conventions violate this dictum. Use of structure to associate various parts of a program and economy of features promote clarity and reliability. .A Naur, P. .I 1466 .T Discussion Summary on Graphical Languages .I 1467 .T A Graphical ServiceSystem With Variable Syntax .W Man-machine interaction in many fields of endeavor should be greatly facilitated in the near future through the use of interactive graphical languages. To provide a variety of display scope communication procedures, a Graphic Service system which functions as a generalized graphical language translator, is being developed to aid the definition as well as the use of new graphical languages. .A Roberts, L. G. .I 1468 .T Syntax-Directed Interpretation of Classes of Pictures .W A descriptive scheme for classes of pictures based on labeling techniques using parallel processing algorithms was proposed by the author some years ago. Since then much work has been done in applying this to bubble chamber pictures. The parallel processing simulator, originally written for an IBM 7094 system, has now been rewritten for a CDC 3600 system. This paper descriptive models by considering their specific application to bubble chamber pictures. How the description generated in this phase can be embedded in a larger "conversation" program is explained by means of a certain specific example that has been worked out. A partial generative grammar for "handwritten" English letters is given, as are also a few computer-generated outputs using this grammar and the parallel processing simulator mentioned earlier. .A Narasimhan, R. .I 1469 .T The Next 700 Programming Languages .W A family of unimplemented computing languages is described that is intended to span differences of application area by a unified framework. This framework dictates the rules about the uses of user-coined names, and the conventions about characterizing functional relationships. Within this framework the design of a specific language splits into two independent parts. One is the choice of written appearances of programs (or more generally, their physical representation). The other is the choice of the abstract entities (such as numbers, character-strings, lists of them, functional relations among them) that can be referred to in the language. The system is biased towards "expressions" rather than "statements." It includes a nonprocedural(purely functional) subsystem that aims to expand the class of users' needs that can be met by a single print-instruction, without sacrificing the important properties that make conventional right-hand-side expressions easy to construct and understand. .A Landin, P. J. .I 1470 .T The Structure of Programming Languages .W The following are identified as major components of every programming language: (1) the elementary program statement, (2) mechanisms for linking elementary statements together, (3) the means by which a program can obtain data inputs. Several alternative forms of each of these components are described, compared and evaluated. Many examples, frequently from list processing languages, illustrate the forms described. Elementary program statements usually take the form of commands, requirements, or implicit specifications. A command is an imperative statement that commands the action to be taken. A requirement describes the effect to be achieved without saying anything about the actions to be taken. An implicit specification is similar to a requirement, but the programmer must understand what actions will be taken to achieve the desired effect. Subroutines may be entered explicitly, by execute call, or by function composition. Explicitly called subroutines generally require special linkage conventions. An execute subroutine call is syntactically indistinguishable from a basic instruction of the programming language. Function composition is a convenient alternative to the explicit call. The three principal ways of getting inputs for routines are (1) by referring to the data itself, (2) by referring to the data by a "name", and (3) by referring to it implicitly by means of variables or functions. Names are useful entry points into permanent data structures, but can be error-causing distractions in other contexts. The author discusses advantages, disadvantages, and factors influencing the choice of a form of component for a language. He concludes by suggesting the evolution of programming languages toward one which will permit all the most convenient ways of structuring programs, organizing systems, and referencing data. .A Raphael, B. .I 1471 .T Programming Semantics for Multiprogrammed computations .W The semantics are defined for a number of meta-instructions which perform operation essential to the writing of programs in multiprogrammed computer systems. These meta-instructions relate to parallel processing, protection of separate computations, program debugging, and the sharing among users of memory segments and other computing objects, the names of which are hierarchically structured. The language sophistication contemplated is midway between an assembly language and an advanced algebraic language. .A Dennis,J. B. VanHorn, E. C. .I 1472 .T Description of a High Capacity, Fast Turnaround University Computing Center .W The operating system for the UNIVAC 1107 at Case Institute is reviewed. The system is of interest because of the low turnaround times achieved, the high throughput achieved and the lack of an operating staff. Turnaround times below 5 minutes and job volume above 75,000 per quarter year one reported. .A Lynch, W.C. .I 1473 .T The Stability of the Fourth Order Runge-Kutta Method for the Solution of Systems of Differential Equations .W The problem of the region of stability of the fourth order-Runge-Kutta method for the solution of systems of differential equations is studied. This region can be characterized by means of linear transformation but can not be given in a closed form. In the paper, this region is determined by the electronic digital computer Z22. .A Karim, A. I. A. .I 1474 .T Tests of Probabilistic Models for Propagation of Roundoff Errors .W In any prolonged computation it is generally assumed that the accumulated effect of roundoff errors is in some sense statistical. The purpose of this paper is to give precise descriptions of certain probabilistic models for roundoff error, and then to describe a series of experiments for testing the validity of these models. It is concluded that the models are in general very good. Discrepancies are both rare and mild. The test techniques can also be used to experiment with various types of special arithmetic. .A Hull, T. E. Swenson, J. R. .I 1475 .T Dribble Posting a Master File .W Many business applications employ sequential magnetic tape rather than random-access storage techniques to process a very small number of transactions against a voluminous master file. In such situations, it may prove economical to avoid creating a new master file during each updating run by producing instead a dribble ledger containing only those master file accounts which have experienced activity. .A Head, R. V. .I 1476 .T Control Procedures for Data Communication-An ASA Progress Report .W Sectional Committee X.3 of the American Standards Association, has charged one of its task groups, X3.3.4, with the responsibility to "Define and specify functional control requirements and characteristics governing the operation of digital data generating and receiving systems interconnected by communication system." This effort is primarily directed toward systems employing the American Standard Code for Information Interchange (ASCII). This paper represents a progress report on the work of this group toward a proposal for national and international standardization in the field of control procedures. It describes both the old and new work of the task group. The new work is presented in detail, while the work that has been presented in earlier papers ["Control Procedures for Data Communication," Task Group document X3.3.4/44, May 1964: "Transparent-Mode Control Procedures for Data Communication," Task Group document X3.3.4/58, December, 1964: Comm. ACM 8 (Apr. 1965), 203-206; "Control Procedures for Data Communications," Task Group document X3.3.4/60, March, 1965] is retained here in summary form. Many of the concepts and principles described herein have been submitted to the International Organization for Standardization via earlier papers and are now embodied in working papers of that organization. .I 1477 .T EULER: A Generalization of ALGOL, and its Formal Definition: Part II* .A Wirth, N. Weber, H. .I 1478 .T Exponential Curve Fit (Algorithm 275 [E2]) .A Deily, G. R. .I 1479 .T Constrained Exponential Curve Fit (Algorithm 276 [E2]) .A Deily, G. R. .I 1480 .T Computation of Chebyshev Series Coefficients (Algorithm 277[C6]) .A Smith, L. B. .I 1481 .T Graph Plotter (Algorithm 278 [J6]) .A Lloyd, P. .I 1482 .T BUGSYS: A Programming System for Picture Processing-Not for Debugging .W BUGSYS is a picture processing and measuring system that depends upon a pictorial input to the computer's memory. BUGSYS can be used for many types of applications. In particular, the authors have used the system for the analysis of linear graphs. The main concept of the system is the use of a collection of programmable pointers, which are visualized as a family of "bugs." .A Ledley, R. S. Jacobsen, J. Belson, M. .I 1483 .T A Comparison of the FORTRAN Language Implementation for Several Computers .W A feature-by-feature comparison is made of five different implementations of FORTRAN IV representing three different manufacturers. A table is constructed showing, where possible, the use of each feature in each implementation. Only those items which are different from, or have been added to FORTRAN II are shown. .A Wright, D. L. .I 1484 .T A Language for Describing the Functions of Synchronous Systems* .W Before the design of a system is started, the exact function desired of it should be specified. It is suggested that a computer-oriented language be used for this purpose. The inadequacies of the standard programming languages for the description of systems are discussed, and a dialect of ALGOL which is suitable for describing synchronous systems is introduced. These descriptions can be used for simulation and automatic design of the system described, in addition to communicating system specifications. .A Parnas, D. L. .I 1485 .T The Structure of Programming Languages .W In this paper the major components of every programming language are identified as: (1) the elementary program statement, (2) mechanisms for linking elementary statements together, (3) the means by which a program can obtain data inputs. Several alternative forms of each of these components are also described, compared and evaluated. Many examples, frequently from list processing languages, illustrate the forms described. The advantages, disadvantages and factors influencing the choice of a form of component for a language are discussed, and the paper concludes with the suggestion that programming languages evolve toward one which will permit all the most convenient ways of structuring programs, organizing systems and referencing data. .A Raphael, B. .I 1486 .T A Reprogramming Machine .W In this paper a description is given of a model programming system which is directed by a programming language and has a library for storing the user's items. Rules are given for transforming programs written in the language and for rearranging the items in the library so that they share their common parts. Some speculations are made about how the mechanical detection of common parts or patterns of library items could help a user to solve his problems, and about the relationships between the behavior of the reprogramming machine and human intelligent behavior. .A Burge, W. H. .I 1487 .T ELIZA-A Computer Program For the Study ofNatural Language Communication Between Man And Machine .W ELIZA is a program operating within the MAC time-sharing system at MIT which makes certain kinds of natural language conversation between man and computer possible. Input sentences are analyzed on the basis of decomposition rules which are triggered by key words appearing in the input text. Responses are generated by reassembly rules associated with selected decomposition rules. the fundamental technical problems with which ELIZA is concerned are: (1)the identification of key words, (2) the discovery of minimal context, (3) the choice of appropriate transformations, (4) generation of responses in the absence of key words, and (5) the provision of an editing capability for ELIZA "scripts". A discussion of some psychological issues relevant to the ELIZA approach as well as of future developments concludes the paper. .A Weizenbaum, J. .I 1488 .T Programming Decision Tables in FORTRAN, COBOL or ALGOL .W A simple broad-based approach for programming decision tables in FORTRAN or COBOL is developed and presented. With inputs in standard form, as defined in the paper, the programming of any decision table can be done with one or two FORTRAN statements, or with two COBOL statements, if the COMPUTE verb is available in the COBOL processor. It is shown that the method is applicable even when there are more than two mutually exclusive states of one, two or more table conditions. It is further shown that multi-state conditions in decision tables can often simplify the programming. The method outlined has the further advantage that all possible combinations of conditions are considered. It is shown that the suggested procedure is easily implemented in ALGOL. .A Veinott, C. G. .I 1489 .T Data, Documentation and Decision Tables .W In business data processing systems, it is necessary to be able to define and document data, files, programs and decision rules in a way that adequately represents both (1) their changing information content, and (2) their continuous interaction. Tabular description makes this possible, being notably objective, through and economical in cost and time when systems must be analyzed and programs prepared or modified. To show how quickly tabular techniques make an unfamiliar system manageable, a detailed example and a self-test are provided. .A Fisher, D. L. .I 1490 .T One Inch Perforated Paper Tape for Information Interchange (Proposed American Standard) .I 1491 .T EULER: A Generalization ALGOL, and its Formal Definition: Part I* .W A method for defining programming languages is developed which introduces a rigorous relationship between structure and meaning. The structure of a language is defined by a phrase structure syntax, the meaning in terms of the effects which the execution of a sequence of interpretation rules exerts upon a fixed set of variables, called the Environment. There exists a one-to-one correspondence between syntactic rules and interpretation rules is determined by the sequence of corresponding syntactic reductions which constitute a parse. The individual interpretation rules are explained in terms of an elementary an d obvious algorithmic notation. A constructive method for evaluating a text is provided, and for certain decidable classes of languages their unambiguity is proved. As an example, a generalization of ALGOL is described in full detail to demonstrate that concepts like block-structure, procedures, parameters, etc. can be defined adequately and precisely by this method. .A Wirth, N. Weber, H. .I 1492 .T Serrev (Algorithm 273 [C1]) .A Thacher Jr., H. C. .I 1493 .T Generation of Hilbert Derived Test Matrix (Algorithm 274 [F1]) .A Boothroyd, J. .I 1494 .T Complete Elliptic Integral of the Second Kind (Algorithm 56 [S21]) .A Larssen, G. M. .I 1495 .T Solution of Transcendental Equations by Series Reversion .W An algorithm is developed for expressing the solution Y, of the equation F(Y) = G(X) as a power series in (X - X0) when f and g are given as power series,and the root Y0, is known at Y=X0. The algorithm is illustrated for the equation Y^Y = X, i.e., (1+y)*ln(1+y) = ln(1+x). .A Thacher Jr., H. C. .I 1496 .T A Formal Semantics for Computer Languages and its Application In a Compiler-Compiler .W A semantic meta-language has been developed for representing the meanings of statements in a large class of computer languages. This meta-language has been the basis for construction of an efficient, functioning compiler-compiler. An informal discussion of the meta-language based on the example of a complete translator for a small language is presented. .A Feldman, J. A. .I 1497 .T On the Normalization Requirement of Divisor in Divide- and- Correct Methods .W This paper presents an analysis on the normalization requirement of the divisor in a divide-and-correct method. This analysis is made subject to the condition that not more than one correction is required to obtain the true quotient character, from the trial estimate got from the division of a two-precision segment of every partial remainder by a suitably rounded single-precision divisor. (This segmented division is denoted here as a (2, 1) precision basic division.) It is found that the normalization requirement could be narrowed down to a smaller range of divisors, provided the magnitude of the character next to the leading character of the divisor is known. If, however, the normalization is to be eliminated one has to choose proper higher precision segments of operands for the basic division. Also considered is the possibility of eliminating the normalization by an increase on the number of corrections on the quotient estimate got from a (2, 1) precision basic division. It is shown that such a scheme is economical only for small radices. .A Krishnamurthy, E. V. Nandi, S. K. .I 1498 .T The ALCOR Illinois 7090/7094 Post Mortem Dump .W A dump technique for programs written in ALGOL 60 is described. This technique provides an intelligible analysis of an unsuccessful computation process in terms of the original source program. .A Bayer, R. Gries, D. Paul, M. Wiehle, H. R. .I 1499 .T Chebyschev Curve-Fit (revised) (Algorithm 318 [E2]) .A Boothroyd, J. .I 1500 .T Chebyschev Curve-Fit (Algorithm 91 [E2]) .A Boothroyd, J. .I 1501 .T Eigenvectors of a 2n x 2n Matrix .W It has been known that the eigenvalues of a certain 2n x 2n matrix can be obtained by use of two smaller matrices of order n which can be easily constructed. An algorithm is given to obtain the eigenvectors of the 2n x 2n matrix by use of the eigenvectors of the smaller matrices. .A Charmonman, S. .I 1502 .T An Online Editor .W An online, interactive system for test editing is described in detail, with remarks on the theoretical and experimental justification for its form. Emphasis throughout the system is on providing maximum convenience and power for the user. Notable features are its ability to handle any piece of text, the content-searching facility, and the character-by-character editing operations. The editor can be programmed to a limited extent. .A Deutsch, L. P. Lampson, B. W. .I 1503 .T A SIMSCRIPT-FORTRAN Case Study .W Two programs for a vehicle dispatching model, one written in 7040 SIMSCRIPT and the other in 7040 FORTRAN IV are compared. The comparison is made in terms of basic program design decisions, storage requirements, computer time used, and the ease of making changes. In the SIMSCRIPT program, the primary design considerations center around the choice of model variables, model changing events, and model testing. In the FORTRAN program, basic design problems relate to the representation of the passage of time, the allocation of storage, and the organization of input data. The comparison of these differently designed programs shows that the SIMSCRIPT program uses more computer storage and more computer time, but requires fewer program changes to introduce model revisions. .A Weinert, A. E. .I 1504 .T Algorithms for Finding a Fundamental Set of Cycles for an Undirected Linear Graph .W Given the adjacency matrix of the graph, the algorithm presented in this paper finds a spanning tree and then constructs the set of fundamental cycles. Our algorithm is slower than an algorithm presented by Welch by a ratio of N/3 (N is the number of nodes) but requires less storage. For graphs with a large number of nodes and edges, when storage is limited our algorithm is superior to Welch's; however, when the graphs are small, or machine storage is very large, Welch's algorithm is superior. Timing estimates and storage requirements for both methods are presented. .A Gotlieb, C. C. Corneil, D. G. .I 1505 .T A System Organization for Resource Allocation .W This paper introduces a system for resource management using the concepts of "process," facility," and "event." Except for the processor no attempt has been made to give serious suggestions for the policy to be followed for resource allocation. However, a basic framework is provided in which a system analyst can express solutions to resource management problems. The paper is divided into a tutorial presentation, a description of the system primitives, and a small collection of examples of the use of the primitives. .A Dahm, D. M. Gerbstadt, F. H. Pacelli, M. M. .I 1506 .T The LACONIQ Monitor: Time Sharing for Online Dialogues .W The LACONIQ (Laboratory Computer Online Inquiry) Monitor was developed primarily to support non-numerical applications such as retrieval from very large files by means of a "dialogue" between a system user and a retrieval application. The monitor was designed so that it could work with a small computer (an IBM System 360/30). Therefore techniques for resource allocation were important. For this reason the use of core storage, computational facilities, and input-output were all scheduled. An unusual feature of the system is that it is event-driven rather than clock-driven. The program segments called into execution by the remote CRT consoles are invariably run to completion rather than "rolled-out" to be brought back at a later time. .A Drew, D. L. .I 1507 .T A Multiprogramming Environment for Online Data Acquis ition and Analysis .W An experimental system for acquis ition and analysis of large bodies of data derived from scientific experiments is described. Its architecture and implementation is largely based on certain objectives and characteristics of a general data analysis scheme. Early applications have been oriented towards the investigation of data obtained in biological research. Some of the problems encountered by the chosen approach are discussed. .A Lockemann, P. C. Knutsen, W. D. .I 1508 .T Magnetic Tape Labels for Information Interchange (Proposed USA Standard) .I 1509 .T Recorded Magnetic Tape for Information Interchange (200 CPI, NRZI) (Proposed USA Standard) .I 1510 .T Finding a Solution of N Functional Equations in N Unknown (Algorithm 314 [C5]) .A Dulley, D.B. Pitteway, L. V. .I 1511 .T The Damped Taylor's Series Method for Minimizing a Sum of Squares and for Solving Systems of Nonlinear Equations .A Spath, H. .I 1512 .T Solution of Simultaneous Non-Linear Equations (Algorithm 316[C5]) .A Brown, K. M. .I 1513 .T PERMUTATION (Algorithm 317 [G6]) .A Robinson, C. L. .I 1514 .T On the Expected Gain From Adjust ing Matched Term Retrieval Systems .W A file adjustment procedure based on maximizing the Bayes expected gain proposed for matched term retrieval systems. The expected gain and its probability distribution are derived as a function of: (1) the prior proportion of omitted terms, and (2) the coefficient of separation between two distributions corresponding to values of an adjustment statistic. An example evaluates the gain parameters for a typical information retrieval system. .A Shumway, R. H. .I 1515 .T A Computer System for Inference Execution and Data Retrieval .W This paper presents a RAND project concerned with the use of computers as assistants in the logical analysis of large collections of factual data. A system called Relational Data File was developed for this purpose. The Relational Data File is briefly detailed and problems arising from its implementation are discussed. .A Levien, R. E. .I 1516 .T Automatic Data Compression .W The "information explosion" noted in recent years makes it essential that storage requirements for all information be kept to a minimum. A fully automatic and rapid three-part compressor which can be used with "any" body of information to greatly reduce slow external storage requirements and to increase the rate of information transmission through a computer is described in this paper. The system will also automatically decode the compressed information on an item-by-item basis when it is required. The three component compressors, which can be used separately to accomplish their specific tasks, are discussed: NUPAK for the automatic compression of numerical data, ANPAK for the automatic compression of "any" information, and IOPAK for further compression of information to be stored on tape or cards. .A Marron, B. A. DeMaine, P. A. D. .I 1517 .T Methods for Analyzing Data from Computer Simulation Experiments .W This paper addresses itself to the problem of analyzing data generated by computer simulations of economic systems. We first turn to a hypothetical firm, whose operation is represented by single-channel, multistation queueing model. The firm seeks to maximize total expected profit for the coming period by selecting one of five operating plans, where each plan incorporates a certain marketing strategy, an allocation of productive inputs, and a total cost. The results of the simulated activity under each plan are subjected to an F-test, two multiple comparison methods, and a multiple ranking method. We illustrate, compare, and evaluate these techniques. The paper adopts the position that the particular technique of analysis (possibly not any one of the above) chosen by the experimenter should be an expression of his experimental objective: The F-test tests the homogeneity of the plans; multiple comparison methods quantify their differences; and multiple ranking methods directly identify the one best plan or best plans. .A Naylor, T. H. Wertz, K. Wonnacott, T. H. .I 1518 .T An Experimental Model of System/360 .W The problem of predicting the performance of modern computer systems is formidable. One general technique which can ease this problem is macroscopic simulation. This paper reports on the applicability of that technique to System/360. The paper describes an experimental model of System/360-its hardware, software, and its environment. The measures of system performance produced by the model consist of statistics relating to turnaround time, throughput, hardware utilization, software utilization, and queueing processes. The model is mechanized in SIMSCRIPT and consists of some 1750 statements. An auxiliary programs, the Job Generator, creates automatically the properties of System/360 jobs that get simulated. .A Katz, J. H. .I 1519 .T GEORGE 3-A General Purpose Time Sharing and Operating System .W An Operating System is described which will run on a wide variety of configurations of the I.C.T. 1900, and can handle a large number of online console users while at the same time running several off line (background) jobs. The system is not oriented towards either mode and can be either a batch processing system (such as the ATLAS Supervisor, IBSYS, or GECOS), or a multiaccess system (resembling, to the user, CTSS or MULTICS), or both simultaneously, depending on the installation, which can adjust the Schedulers. Both online users and off line jobs use a common Command Language. The system includes a Multilevel device-independent File Store. .A Oestreicher, M. D. Bailey, M. J. Strauss, J. I. .I 1520 .T Absolute Value and Square Root of a Complex Number (Algorithm 312 [A2]) .A Friedland, P. .I 1521 .T Multi-Dimensional Partition Generator (Algorithm 313 [A1]) .A Bratley, P. McKay, J. K. S. .I 1522 .T Chebyschev Quadrature (Algorithm 279 [D1]) .A Hillstrom, K. .I 1523 .T SHARER, a Time Sharing System for the CDC 6600 .W A time sharing system embedded within the standard batch processing system for the CDC 6600 is described. The system is general purpose and file-based, providing facilities for file input, manipulation, editing, compilation, and conversational execution. It uses a simple scheme for system extension for a machine with only one relocation and memory bound register. No attempt was made to use reentrant code, or to simulate segmentation or paging. Implementation time was approximately six man-years, with the majority of the code being written in FORTRAN. .A Harrison, M. C. Schwartz, J. T. .I 1524 .T A Stopping Criterion for Polynomial Root Finding .W When searching for the root of a polynomial, it is generally difficult to know just when to accept a number as an adequate approximation to the root. In this paper an algorithm is presented which allows one to terminate the iteration process on the basis of calculated bounds for the roundoff error which occurs in evaluating the polynomial. This stopping criterion has been tested on numerous examples and has been found to serve as a satisfactory means for accepting a complex number as a zero of a real polynomial. .A Adams, D. A. .I 1525 .T On Computing The Fast Fourier Transform .W Cooley and Tukey have proposed a fast algorithm for computing complex Fourier transform and have shown major time savings in using it to compute large transforms on a digital computer. With n a power of two, computing time for this algorithm is proportional to n log2 n, a major improvement over other methods with computing time proportional to n^2. In this paper, the fast Fourier transform algorithm is briefly reviewed and fast difference equation methods for accurately computing the needed trigonometric function values are given. The problem of computing a large Fourier transform on a system with virtual memory is considered, and a solution is proposed. This method has been used to compute complex Fourier transforms of size n = 2^16 on a computer with 2^15 words of core storage; this exceeds by a factor of eight the maximum radix two transform size with fixed allocation of this amount of core storage. The method has also been used to compute large mixed radix transforms. A scaling plan for computing the fast Fourier transform with fixed-point arithmetic is also given. .A Singleton, R. C. .I 1526 .T Multiprogramming under a Page on Demand Strategy .W A model of multiprogramming for a particular computer system using a page on demand strategy is developed. Analysis of this model is used to predict performance (measured by the average usage of the CPU) when user programs are typical of those arising from an interactive time sharing environment. The effect of several hardware modifications is also analyzed. A parameter, readily calculated from the hardware characteristics and the program statistics, is proposed for gauging the effect of multiprogramming. .A Smith, J. L. .I 1527 .T A Grammar Base Question Answering Procedure .W The subject of this paper is a procedure for the automatic retrieval of certain segments of stored information, either explicitly or implicitly represented, through questions posed in natural language sentences. This procedure makes use of a sentence recognition device for the class of grammars which will correctly decide between the grammatical and ungrammatical sentences of a natural language. It is possible to make use of a recognition device of this sort for the following reason: Much data is fully expressible as a set of sentences in a natural language, a set which can be exhaustively and exclusively generated by a grammar. Based upon the rules of this grammar, a sentence recognizer will evaluate sentences, questions in the normal situation. Since the recognition function succeeds just in case the posed question is drawn from the set of sentences expressing the data, or, more correctly, is grammatical in terms of the grammar for this set of sentences, sentence recognition itself is a procedure for retrieving information. When the recognition function succeeds, its value represents the requested information. .A Rosenbaum, P. .I 1528 .T Three Fonts of Computer Drawn Letters .W Detailed descriptions are given for three fonts of letters. Letter shapes are entirely described by numbers. The basic vectors are in a general form so the fonts may be easily drawn on a variety of computers and cathode-ray tubes. The fonts include both upper and lower case Roman letters, mathematical signs, and upper and lower case Greek letters. Design of the fonts is described. However, the principal contribution of this paper concerns the fonts themselves. .A Mathews, M. V. Lochbaum, C. Moss, J. A. .I 1529 .T Decomposition Programming An Analysis of Matrix Substructure .W A petroleum blending problem was analyzed in order to compare the primal and primal-dual decomposition algorithms. In the course of the analysis, a substructure was discovered which has relevance to the relative performance of the two algorithms and to their absolute performance as compared with a standard primal-Simplex solution without decomposition. .A Bell, E. J. .I 1530 .T The ML/I Macro Processor .W A general purpose macro processor called ML/I is described. ML/I has been implemented on the PDP-7 and I.C.T. Atlas 2 computers and is intended as a tool to allow users to extend any existing programming language by incorporating new statements and other syntactic forms of their own choosing and in their own notation. This allows a complete user-oriented language to be built up with relative ease. .A Brown, P. J. .I 1531 .T The Remaining Trouble Spots in ALGOL 60 .W This paper lists the ambiguities remaining in the language ALGOL 60, which have been noticed since the publication of the Revised ALGOL 60 Report in 1963. .A Knuth, D. E. .I 1532 .T The Hardware-Software Complementarity .A Oettinger, A. G. .I 1533 .T A Marovian Model of the University of Michigan Executive System .W A mathematical model of a computer's executive system is postulated and its parameters estimated with the aid of extensive data on the system's operation. Although simplifying assumptions are made, the results predicted by the model agree reasonable well with actual results. The model is used to study the effects of changes in the executive system and in one of its compilers. Further applications of the model are discussed. .A Foley, J. D. .I 1534 .T DAD, The C.S.I.R.O. Operating System .W The design and implementation of the C.S.I.R.O. operating system, DAD, is described in detail. This system is designed for the Control Data 3600 using a large drum backing store and is intended to allow the integration of a remote console (display) subsystem into a conventional job stack environment. The use of the drums, the buffering of input and output on slow peripherals, and the execution of normal job stack work are described. The display subsystem is described only as it integrates into the rest of the system. The techniques found useful in the development of DAD are given, and an assessment is made of the validity of various design decisions. Performance figures based on several months of operation are tabulated. .A Austin, B. J. Holden, T. S. Hudson, R. H. .I 1535 .T A Comment on Index Register Allocation .W A technique is presented to reduce the enumeration required by a known procedure for optimal index register allocation in straight-line programs. This technique is based on the construction of a link diagram, which shows at any step the future occurrences of indexes which must be loaded into index registers. This diagram determines in advance the required register configuration at certain steps of the program, so that the program is subdivided into separate portions to which the allocation procedure may be applied independently. .A Luccio, F. .I 1536 .T Dynamic Computation of Derivatives .W It is shown how Wengert's procedure for computation of derivatives can be implemented conveniently by use of compiler-generated complex addition, subtraction, and linkage to complex arithmetic subroutines. Evaluation of a function and derivative proceed in parallel, as in Wengert's procedure, but with the "imaginary" parts of variables declared complex bearing the values of the derivatives of the real parts. This technique provides a simple way to compute the derivatives of a function, without the need for deriving and programming the evaluation of explicit formulas for the derivatives. .A Lesk, A. M. .I 1537 .T Prime Number Generator 1 (Algorithm 310 [A1]) .A Chartres, B. A. .I 1538 .T Prime Number Generator 2 (Algorithm 311 [A1]) .A Chartres, B. A. .I 1539 .T Prime Number Generator 1; Prime Number Generator 2 (Algorithm 35[A1]; Algorithm 310[A1]; Algorithm 311[A1]) .A Chartres, B. A. .I 1540 .T An Algorithm for Class Scheduling With Section Preference .W An algorithm for assignment of students to classes in a fixed time schedule that allows students to give a preference for sections within courses is given. If consistent with the objective of balanced sections, these preferences will be honored. The algorithm is more stochastic than Monte Carlo in nature. Results are given that compare it to a nonpreference assignment algorithm. .A Busam, V. A. .I 1541 .T A Language for Modeling and Simulating Dynamic Systems .W The general objective of this language is to facilitate both the modeling and experimental aspects of simulation studies. The ability to represent systems containing highly interactive processes is an essential feature. The nature of the language, and the role of the process concept, is presented by means of an extended example. .A Parente, R. J. Krasnow, H. S. .I 1542 .T A Microprogrammed Implementation of EULER on IBM System/360 Model 30 .W An experimental processing system for the algorithmic language EULER has been implemented in microprogramming on an IBM System/360 Model 30 using a second Read-Only Storage unit. The system consists of a microprogrammed compiler and a microprogrammed String Language Interpreter, and of an I/O control program written in 360 machine language. The system is described and results are given in terms of microprogram and main storage space required and compiler and interpreter performance obtained. The role of microprogramming is stressed, which opens a new dimension in the processing of interpretive code. The structure and content of a higher level language can be matched by an appropriate interpretive language which can be executed efficiently by microprograms on existing computer hardware. .A Weber, H. .I 1543 .T Computer Formulation of the Equations of Motion Using Tensor Notation .W A means is described for extending the area of application of digital computers beyond the numerical data processing stage and reducing the need for human participation in the formulation of certain types of computer problems. By the use of tensor calculus and a computer language designed to facilitate symbolic mathematical computation, a method has been devised whereby a digital computer can be used to do non-numeric work, that is, symbolic algebraic manipulation and differentiation. To illustrate the techniques involved, a digital computer has been used to derive the equations of motion of a point mass in a general orthogonal curvilinear coordinate system. Since this operation involves a formulation in terms of first- and second-order differential coefficients, it provides a good demonstration of a computer's capability to do non-numeric work and to assist in the formulation process which normally precedes the numerical data processing stage. Moreover, this particular problem serves to illustrate the advantages of the mathematical techniques employed. With the program prepared for this purpose the computer will derive the equations of motion in any coordinate system requested by the user. Results are presented for the following coordinate systems: cylindrical polar, spherical polar, and prolate spheroidal. .A Howard, J. C. .I 1544 .T Tele-CUPL: A Telephone Time Sharing System .W A general purpose, remote access, computing system is described, that employs twelve-key keyboard telephones as terminals. Audio output is provided directly to the telephone terminals, but the system will normally be used in conjunction with remotely located high speed printing devices. The system is a compatible extension of an existing batch processing system. A significant element of the system is a scheme for transmitting alphanumeric information by single strokes on a numeric keyboard. The programmed scanner uses context to eliminate the ambiguity in transmission. .A Conway, R. W. Morgan, H. L. .I 1545 .T Legal Safeguards to Insure Privacy in a Computer Society .A Westin, A. F. .I 1546 .T Toward Standards for Handwritten Zero and Oh .A Bemer, R. W. .I 1547 .T Gamma Function with Arbitrary Precision (Algorithm 309 [S14]) .A Filho, A. M.S. Schwachheim, G. .I 1548 .T Parsing of Decision Tables .W Reduction in the size of decision tables can be accomplished by several techniques. The techniques considered in this paper are on the parsing of decision tables with regard to horizontal and vertical data structures, job identity, hardware and job priorities, and context relationships. Such parsing rests upon some conventions for the linkage of decision tables. .A Chapin, N. .I 1549 .T An Efficient Machine-Independent Procedure for Garbage Collection in Various List Structures .W A method for returning registers to the free list is an essential part of any list processing system. In this paper, past solutions of the recovery problem are reviewed and compared. A new algorithm is presented which offers significant advantages of speed and storage utilization. The routine for implementing this algorithm can be written in the list language with which it is to be used, thus insuring a degree of machine independence. Finally, the application of the algorithm to a number of different list structures appearing in the literature is indicated. .A Schorr, H. Waite, W. M. .I 1550 .T A Comparison of Batch Processing and Instant Turnaround .W A study of the programming efforts of students in an introductory programming course is presented and the effects of having instant turnaround (a few minutes) as opposed to conventional batch processing with turnaround times of a few hours are examined. Among the items compared are the number of computer runs per trip to the computation center, program preparation time, keypunching time, debugging time, number of runs, and elapsed time from the first run to the last run on each problem. Even though the results are influenced by the fact that "bonus points" were given for completion of a programming problem in less than a specified number of runs, there is evidence to support "Instant" over "Batch". .A Smith, L. B. .I 1551 .T On Compiling Algorithms for Arithmetic Expressions .W This paper deals with algorithms concerning arithmetic expressions used in a FORTRAN IV compiler for a HITAC-5020 computer having n accumulators. The algorithms generate an object code which minimizes the frequency of storing and recovering the partial results of the arithmetic expressions in cases where there are several accumulators. .A Nakata, I. .I 1552 .T The AED Free Storage Package .W The most fundamental underlying problem in sophisticated software systems involving elaborate, changing data structure is dynamic storage allocation for flexible problem modeling. The Free Storage Package of the AED-1 Compiler Systems allows blocks of available storage to be obtained and returned for reuse. The total available space is partitioned into a hierarchy of free storage zones, each of which has its own characteristics. Blocks may be of any size, and special provisions allow efficient handling of selected sizes, control of shattering and garbage collection, and sharing of physical space between zones. The routines of the package perform high level functions automatically, but also allow access and control of fine internal details as well. .A Ross, D. T. .I 1553 .T Contextual Understanding by Computers .W A further development of a computer program (ELIZA) capable of conversing in natural language is discussed. The importance of context to both human and machine understanding is stressed. It is argued that the adequacy of the level of understanding achieved in a particular conversation depends on the purpose of that conversation, and that absolute understanding on the part of either humans or machines is impossible. .A Weizenbaum, J. .I 1554 .T A Computer Technique for Displaying n-Dimensional Hyperobjects .W A digital computer and automatic plotter have been used to generate three-dimensional stereoscopic movies of the three-dimensional parallel and perspective projections of four-dimensional hyperobjects rotating in four-dimensional space. The observed projections and their motions were a direct extension of three-dimensional experience, but no profound "feeling" or insight into the fourth spatial dimension was obtained. The technique can be generalized to n-dimensions and applied to any n-dimensional hyperobject or hypersurface. .A Noll, A. M. .I 1555 .T Symmetric Polynomials (Algorithm 305 [C1]) .A Bratley, P. McKay, J. K. S. .I 1556 .T Permutations with Repetitions (Algorithm 306 [G6]) .A Bratley, P. .I 1557 .T Symmetric Group Characters (Algorithm 307 [A1]) .A McKay, J. K. S. .I 1558 .T Generation of Permutations in Pseudo-Lexicographic Order (Algorithm [G6]) .A Ord-Smith, R. J. .I 1559 .T Permutation Generator; Permutation in Lexicographical Order; Permute; Generation of Permutations in Lexicographical Order (Algorithm 87[G6]; Algorithm 102[G6]; Algorithm 130[G6]; Algorithm 202[G6]) .A Ord-Smith, R. J. .I 1560 .T Transport; Transportation Problem (Algorithm 258[H]; Algorithm 293[H]) .A Sims, L. S. .I 1561 .T The Mutual Primal-Dual Method (Algorithm 285 [H]) .A Spath, H. .I 1562 .T Airy Function (Algorithm 301 [S20]) .A Pitteway, M. L. V. .I 1563 .T A Method for Finding Hamilton Paths and Knight's Tours .W The use of Warnsdorff's rule for finding a knight's tour is generalized and applied to the problem of finding a Hamilton path in a graph. A graph-theoretic justification for the method is given. .A Pohl, I. .I 1564 .T Description of Basic Algorithm in DETAB/65 Preprocessor .W The basic algorithm for the conversion of decision tables into COBOL code is contained in the generator portion of the DETAB/65 preprocessor. The generator analyzes a decision table and produces simple COBOL conditional statements. Core storage is saved by using queueing techniques and extensive indexing and also by outputting the code as it is generated, a line at a time. The only optimization attempted is the elimination of obviously unnecessary tests on certain conditions in the decision table. Since the preprocessor and this language associated with it were developed for COBOL users, the preprocessor was written in a modular form in required COBOL-61. .A Callahan, M. D. Chapman, A. E. .I 1565 .T A Language-Independent Macro Processor .W A macro processor is described which can be used with almost any source language. It provides all features normally associated with a macro facility, plus the ability to make arbitrary transformations of the argument strings. The program is used at the Basser Computing Department, University of Sydney, Sydney, Australia, to process text for eight different compilers. .A Waite, W. M. .I 1566 .T Optimal Starting Values for Newton-Raphson Calculation of SQRT(x) .W The problem of obtaining starting values for the Newton-Raphson calculation of SQRT(x) on a digital computer is considered. It is shown that the conventionally used best uniform approximations to SQRT(x) do not provide optimal starting values. The problem of obtaining optimal starting values. The problem of obtaining optimal starting values is stated, and several basic results are proved. A table of optimal polynomial starting values is given. .A Moursund, D. G. .I 1567 .T On the Representation of Symmetric Polynomials .W Relations are given between certain symmetric polynomials in the light of the theory of the symmetric group. Such an approach unifies earlier work and lends insight to previously published work by Aaron Booker. A generalization of Graeffe's root-squaring technique for the determination of the roots of a polynomial is suggested. .A McKay, J. K. S. .I 1568 .T Plotting a Function of Three Independent Variables .W A method is developed for constructing an approximate plot of a function of three independent variables. The plot is similar to a conventional contour map except that there are three scales to represent the independent variables. Scale values of the three independent variables are added vectorially, and the value of the function is then read from the values associated with nearby contours. .A Stineman, R. W. .I 1569 .T Implementing Phrase-Structure Productions in PL/I .W A method is described for implementing the productions of a context-free phrase structure grammar in a PL/I procedure whose structure and statements parallel the structure and notation of the grammar. .A Irwin, L. .I 1570 .T String Processing Techniques .W The internal organization of string processing systems is discussed. Six techniques for data structures are presented and evaluated on the basis of: (1) creation of strings; (2) examination of strings; and (3) alteration of strings. Speed of operation, storage requirements, effect on paging, and programmer convenience are also considered. One of the techniques, single-word linked blocks, is used in an example demonstrating an implementation of a SNOBOL string processing language on an IBM System/360. .A Madnick, S. E. .I 1571 .T A User-Oriented Time-Shared Online System .W An existing system and planned additions within the Data Processing Laboratory of the Brain Research Institute at UCLA is described. The system represents an attempt to provide research workers of the Institute with the ability to interact directly with a highly sophisticated digital computing complex in the most direct and simple fashion possible. It is anticipated that, with the accumulation of experience using the present system, significant advances will be possible in the system design through determination of interface parameters between the biological scientist and the digital computer. .A Betyar, L. .I 1572 .T The Simulation of Time sharing Systems .W The development of new large scale time-sharing systems has raised a number of problems for computation center management. Not only is it necessary to develop an appropriate hardware configuration for these systems, but appropriate software adjustments must be made. Unfortunately, these systems often do not respond to changes in the manner that intuition would suggest, and there are few guides to assist in the analysis of performance characteristics. The development of a comprehensive simulation model to assist in the investigation of these questions is described in this paper. The resulting model has a general purpose design and can be used to study a variety of time-sharing systems. It can also be used to assist in the design and development of new time-sharing algorithms or techniques. For the sake of efficiency and greater applicability, the model was implemented in a limited FORTRAN subset that is compatible with most FORTRAN IV compilers. The use of the simulation is demonstrated by a study of the IBM 360/67 time-sharing system. .A Nielsen, N. R. .I 1573 .T An Adaptive Quadrature Procedure with Random Panel Sizes (Algorithm [D1]) .A Gallaher, L. J. .I 1574 .T Normal Curve Integral (Algorithm 304 [S15]) .A Hill, I. D. Joyce, S. A. .I 1575 .T Incomplete Beta Ratio (Algorithm 179 [S14]) .A Pike, M. C. Hill, I. D. .I 1576 .T Eigenvalues of a Real Symmetric Matrix by the QR Method (Algorithm 253 [F2]) .A Welsch, J. H. .I 1577 .T Eigenvalues and Eigenvectors of a Real Symmetric Matrix by the QR Method (Algorithm 254 [F2]) .A Welsch, J. H. .I 1578 .T Generalized Least Squares Fit By Orthogonal Polynomials (Algorithm 296 [E2]) .A Makinson, G. J. .I 1579 .T Real Error Function, ERF(x) (Algorithm 123 [S15]) .A Hill, I. D. Joyce, S. A. .I 1580 .T Error Function-Large X (Algorithm 180 [S15]) .A Hill, I. D. Joyce, S. A. .I 1581 .T Complementary Error Function-Large X (Algorithm 181 [S15]) .A Hill, I. D. Joyce, S. A. .I 1582 .T GAUSS (Algorithm 209 [S15]) .A Hill, I. D. Joyce, S. A. .I 1583 .T Normal Distribution Function (Algorithm 226 [S15]) .A Hill, I. D. Joyce, S. A. .I 1584 .T Procedure for the Normal Distribution Functions (Algorithm 272 [S15]) .A Hill, I. D. Joyce, S. A. .I 1585 .T Normal Curve Integral (Algorithm 304 [S15]) .A Hill, I. D. Joyce, S. A. .I 1586 .T A Generalized Bairstow Algorithm .W The Bairstow algorithm is generalized to the case of a polynomial which is itself a linear combination of polynomials satisfying a three-term recursion. Convergence properties of the method are derived. .A Golub, G. H. Robertson, T. N. .I 1587 .T Storage Allocation in a Certain Iterative Process .W A method of core storage allocation in a certain iterative process is described and estimates of the machine time required are given. The method is applicable to iterative processes in which input data items once chosen are never again needed. In this method the input data is continuously relocated and the space made available apportioned to the output tables when an overflow occurs. Some important special cases are considered in which considerable simplification occurs. .A Abramowich, J. .I 1588 .T PL/I List Processing .W The concepts of list processing have been introduced into the PL/I language. With these new facilities, it is possible to write PL/I procedures that operate on simple and complex data list organizations. Most list-processing languages have suffered from their inability to deal directly with complex data structures and/or from their inability to perform the complete range of programming language operations upon the data list structures. These two problems have been eliminated in the list-processing facilities of PL/I. The basic concepts of list processing and the philosophy of the PL/I language extensions are discussed. In addition, several detailed list-processing examples are provided. .A Lawson Jr., H. W. .I 1589 .T DIALOG: A Conversational Programming System with a Graphical Orientation .W DIALOG is an algebraic language for online use with a graphical input-output console device. It is a computational aid for the casual user, which provides basic facilities for graphical and numeric input and display, online and off line program preparation and storage, and hard copy presentation of results. Use of the system requires a minimum of experience or instruction, since the growth of an overlaying system control language has been prevented, and there are no processor-oriented statements, like variable type or dimension declarations. Moreover, in the online situation the processor interacts with the graphical keyboard on a character-by-character basis so as to restrict the programmer's choice of input symbols to those which are syntactically correct. DIALOG has been in daily operation at the IIT Research Institute since February, 1966. .A Cameron, S. H. Ewing, D. Liveright, M. .I 1590 .T Pitch Period Determination of Speech Sounds .W A computer procedure which determines pitch periods by the recognition of the peak structure of the speech waveform is described. Speech sounds were sampled by a microphone and an analog-to-digital converter attached to an interconnected IBM 7090-PDP-1 system. These utterances were recorded at the normal noise level of the computer room but were not band-compressed or phase-distorted in any manner. A sequence of operations defined on the speech wave selects a list of points along the waveform as candidates for pitch markers. These markers are validated by an error detection and correction procedure.About 95 percent of the pitch periods were recognized correctly within 1 to 2 times real-time on the IBM 7090. .A Reddy, D. R. .I 1591 .T A Model for a Multifunctional Teaching System .W A teaching system model that was incorporated into an operating system of a large computer is described. The model transferred control to the operating system to execute functions other than teaching, and then recovered control in order to resume teaching. The teaching system (ABAC-II) was written to run under the operating system (IBSYS) for the IBM 7044 Graphic System. Because the teaching system automatically terminated and rescheduled itself, a student studying a course presented at a cathode-ray display terminal could switch readily between student mode and programmer mode. During the latter, the full resources of the operating system (language processors, compilers, library and user's programs) were at his disposal. He could for example, write, assemble, debug, and execute at the terminal a program written in any language processed by the operating system. A course could therefore include text material interleaved with programming problems which the student could solve without leaving the terminal. Exercises in simulation and gaming could also be provided. The implications of a teaching system with this degree of flexibility for industrial and executive training as well as academic education are discussed. In addition, the advantages of this type of system for computer programming and operation are also considered. .A Engvold, K. J. Hughes, J. L. .I 1592 .T String Similarity and Misspellings .W The problem of programming a computer to determine whether or not a string of characters is a misspelling of a given word was considered. A numberof algorithms were evaluated-some proposed by other writers, some by the author. These techniques were tested on a collection of misspellings made by students at various grade levels. While many of the methods were clearly unsatisfactory, some gave as few as 2.1 percent incorrect determinations. .A Alberga, C. N. .I 1593 .T A Simple Technique for Digital Division .W A simple and economical method for digital division is described. The method is suitable for divisors whose leading character is either radix less one or is unity with the next character equal to zero; also the method is direct and needs only half the number of arithmetic operations needed by a variant of the Harvard iterative method, described by Gilman, which is suitable for similar divisors. .A Nandi, S. K. Krishnamurthy, E. V. .I 1594 .T An Algorithm for Generating Permutations .W An algorithm is described which under repeated application generates all permutations of K elements. Only the previously generated permutation, the constant K, and a temporary index are needed. Starting with a particular ordering of K elements (abcd), repeated application of the algorithm will generate K-1 additional permutations by K-1 successive rotations. From the initial circular ordering of K objects, another circular ordering can be obtained by rotating the K-1 lowest elements. For each new K-1 circular ordering, another K-2 can be obtained by rotating the K-2 lowest elements. By continuing in this manner, applications of the algorithm will generate all (K-1)! circular orderings, or since each circular ordering yields K permutations the algorithm generates all K! permutations. .A Langdon Jr., G. G. .I 1595 .T On the Computer Enumeration of Finite Topologies .W The problem of enumerating the number of topologies which can be formed from a finite point set is considered both theoretically and computationally. Certain fundamental results are established, leading to an algorithm for enumerating finite topologies, and computed results are given for n <= 7. An interesting side result of the computational work was the unearthing of a theoretical error which had been induced into the literature; the use of the computer in combinatorics represents, chronologically, an early application, and this side result underscores its continuing usefulness in this area. .A Evans, J. W. Harary, F. Lynn, M. S. .I 1596 .T Airy Function (Algorithm 301 [S20]) .A Bond, G. Pitteway, M. L. V. .I 1597 .T Transpose Vector Stored Array (Algorithm 302 [K2]) .A Boothroyd, J. .I 1598 .T Least Squares Fit By Orthogonal Polynomials (Algorithm 28 [E2]) .A Makinson, G. J. .I 1599 .T Numerical Solution of the Polynomial Equation (Algorithm 300 [C2]) .A Kohfeld, J. J. .I 1600 .T Chebyshev Quadrature (Algorithm 279 [D1]) .A Hillstrom, K. .I 1601 .T Parallel Numerical Methods for the Solution of Equations .W Classical iterative procedures for the numerical solution of equations provide at each stage a single new approximation to the root in question. A technique is given for the development of numerical procedures which provide, at each stage, several approximations to a solution of an equation. The s8everal approximations obtained in any iteration are computationally independent, making the methods of interest in a parallel processing environment. Convergence is insured by extracting the "best information" at each iteration. Several families of numerical procedures which use the technique of the procedures in a parallel processing environment are developed and measurements of these statistics are reported. These measurements are interpreted in a parallel processing environment. In such an environment the procedures obtained are superior to standard algorithms. .A Shedler, G. S. .I 1602 .T POSE: A Language for Posing Problems to a Computer .W A language, POSE, is described which is a drastic departure from the FORTRAN/ALGOL type, though it does utilize FORTRAN formula and logic representations (and actually contains FORTRAN VI as a subset). With the new language, the user need only describe his problem in "equation-like" form. The method of solution is automatically provided in conjunction with the translation from equation form to computer instruction. In this way the POSE language user can solve difficult computational problems (like the solution of differential equation) without requiring a knowledge of numerical methods or the intricacies of computer subroutine logic. Essentially all clerical operations now required for FORTRAN programming have been automated so that the POSE programmer need not be concerned with these details. .A Schlesinger, S. Sashkin, L. .I 1603 .T A Multiprogramming Monitor for Small Machines .W INT, a combination hardware/software monitor designed to control a wide variety of real-time input/output devices, is described. The simple hardware additions provide a uniform device to machine interface for such elements as keyboards graphic input devices, and interval timers. The software relieves the user program from the details of input/output timing, buffering, and task scheduling and provides parallel processing capability. User programs communicate with the monitor through a small set of meta-instruction which consists mostly of machine-language subroutine calls. .A Hornbuckle, G. D. .I 1604 .T Further Analysis of a Computing Center Environment .W Empirical distributions of program lengths, execution times, processing times, and loading times of over 10,000 jobs serviced in a university computing center environment are presented. The data are subdivided according to certain characteristics of users and jobs to obtain selected empirical conditional distributions of those time properties as well as statistical measures of other interesting properties. The results are interpreted in terms of the properties of the system studied. .A Walter, E. S. Wallace, V. L. .I 1605 .T An Experimental Comparison of Time Sharing and Batch Processing .W The effectiveness for program development of the MIT Compatible Time-Sharing System (CTSS) was compared with that of the IBM IBSYS batch-processing system by means of a statistically designed experiment. An identical set of four programming problems was assigned to each of a group of four programming subjects. Influences external to the systems, such as the sequence of problem solution, and programmer and problem characteristics, were specified as design factors in the experiment. Data was obtained for six variables (e.g., programmer time, computer time, elapsed time, etc.) which were considered to be definitive of "system effectiveness," and analysis of variance techniques were employed to estimate system differences in these variables after differences due to the design factors had been eliminated. Statistical analysis of the experimental results provided strong evidence of important system differences, as well as a critique of the experimental design itself with implications for further experimentation. .A Schatzoff, M. Tsao, R. Wiig, R. .I 1606 .T Chi-Squared Integral (Algorithm 299 [S15]) .A Hill, I. D. Pike, M. C. .I 1607 .T Coulomb Wave Functions (Algorithm 300 [S22]) .A Gunn, J. H. .I 1608 .T Numerical Integration of Function That Has a Pole .W It is common to need to integrate numerically functions that diverge somewhere outside the range of integration. Even if the divergence occurs quite far away, integration formulas like Simpson's, that depend on fitting a polynomial, usually will be inaccurate: near a pole they will be very bad. A method is described that gives formulas that will integrate functions of this kind accurately if the orders and positions of the poles are known. Explicit formulas are given that are easy to use on an automatic computer. It is shown that they can be used for some other singularities as well as poles. If the integral converges, integration can be carried to the singularity. The accuracy of the integration with a pole of second order is discussed, and, as an example, the new formula is compared with Simpson's. The new formulas are useful even far from the pole, while near the pole their advantage is overwhelming. .A Eisner, E. .I 1609 .T Scheduling University Course Examinations by Computer .W A new approach to the problem of scheduling course examinations is presented. In principle, an examination schedule which requires a minimum number of examination periods and satisfies the constraint that no student be required to take two examinations simultaneously can be found in two steps. First, course which may have their examinations scheduled at the same period are grouped together in all possible ways. Then a minimum number of these groups, such that each course is included at least once, are selected. By removing multiple occurrences of courses and then scheduling each group at a different period a minimal schedule can be obtained. Known algorithms for carrying out these procedures are prohibitively expensive. Approximations to the ideal procedure outlined above are given which yield nonminimal but feasible schedules with a very small expenditure of time. Results of experiments using these techniques are given. These are encouraging and indicate that further experimentation would be worthwhile. .A Hall Jr., A. D. Acton, F. S. .I 1610 .T A Method for the Solution of Transportation Problems with Tall Matrices .W A method is presented for the solution of the transportation problem having a cost matrix with few columns. The computer implementation of this method shows it to be very fast and efficient. Application are indicted for the personnel classification problem as well as the classical transportation problem. An example is worked out in detail. .A Dwyer, P. S. Galler, B. A. .I 1611 .T Scheduling Project Networks .W Some of the basic concepts and terminology of project networking are developed. The Critical Path Algorithm incorporated in the C-E-I-R proprietary scheduling system RAMPS (Resource Allocation and Multi-Project Scheduling) is described. The error detection and network analysis features of the algorithm are also described. .A Klein, M. M. .I 1612 .T Top-to-bottom Parsing Rehabilitated? .W This note is concerned with the efficiency of the Top-to-Bottom parsing algorithm as used in connection with programming language grammars. It is shown, for instance, that retracing of unprofitable paths can often be eliminated by a suitable rearrangement of the productions defining the grammar. The essential weakness of the method is in dealing with complicated syntactic structures which are in practice only sparsely occupied, e.g., arithmetic expressions. .A Brooker, R. A. .I 1613 .T One-Pass Compilation of Arithmetic Expressions for a Parallel Processor .W Under the assumption that a processor may have a multiplicity of arithmetic units, a compiler for such a processor should produce object code to take advantage of possible parallelism of operation. Most of the presently known compilation techniques are inadequate for such a processor because they produce expression structures that must be evaluated serially. A technique is presented here for compiling arithmetic expressions into structures that can be evaluated with a high degree of parallelism. The algorithm is a variant of the so-called "top-down" analysis technique, and requires only one pass of the input text. .A Stone, H. S. .I 1614 .T A Proposal for Definitions in ALGOL .W An extension to ALGOL is proposed for adding new data types and operators to the language. Definitions may occur in any block heading and terminate with the block. They are an integral part of the program and are not fixed in the language. Even the behavior of existing operators may be redefined. The processing of text containing defined contexts features a "replacement rule" that eliminates unnecessary iterations and temporary storage. Examples of definition sets are given for real and complex matrices, complex numbers, file processing, and list manipulation. .A Galler, B. A. Perlis, A. J. .I 1615 .T An Algorithm for Generating Root Locus Diagrams .W A technique for using a digital computer to draw both ordinary and time-lag root locus diagrams is described. Ordinary diagrams are drawn much faster and more accurately than ever before. Time-lag diagrams, which had been impossible to obtain, are drawn with the same speed and accuracy as ordinary diagrams. .A Krall, A. M. Fornaro, R. .I 1616 .T Tensor Calculations on Computer: Appendix .W In the main text of the paper [Comm. ACM 9, 12 (Dec. 196), 864], a FORMAC program was discussed which is capable of calculating various quantities of interest in tensor calculus. This Appendix is intended as an example of the program output. Chrisoffel symbols calculated for 12 basic orthogonal coordinate systems are listed. .A Walton, J. J. .I 1617 .T Eigenvalues and Eigenvectors of the Symmetric System (Algorithm 297 [F2]) .A Boothroyd, J. .I 1618 .T Determination of the Square-Root of a Positive Definite Matrix (Algorithm 298 [F1]) .A Spath, H. .I 1619 .T Error-Free Methods for Statistical Computations .W Neely has discussed computational error generated by some algorithms used to compute various statistics. In the present paper methods are described which are error-free, simple in concept, and usually less costly in machine time than those mentioned by Neely. .A Rodden, B. E. .I 1620 .T Methods of Evaluating Polynomial Approximations in Function Evaluation Routines .W The method of nested multiplication is commonly used in function evaluation routines to evaluate approximation polynomials. New polynomial evaluation methods have been developed in recent years which require fewer multiplications than nested multiplication and may therefore be preferable for use in function evaluation routines. Although some of these methods do not appear to be practically useful because of rounding-error difficulties, several methods of evaluating low-degree polynomials have been found to be satisfactory. Three such methods are described and illustrated. .A File, C. T. .I 1621 .T Computer Typesetting of ALGOL .W An application of computer-aided typesetting is introduced. A working method is described for publishing ALGOL by computerized translation from Hardware into Reference representation, computerized planning of typographical lay-out and computerized control of a typesetting machine. The point is made that experts in science, technology, and programming are guaranteed a correct ALGOL documentation without spending valuable time and power on typographic considerations and proofreading. .A Sydow, L. V. .I 1622 .T An Efficient Procedure for the Generation of Closed Subsets .W An efficient algorithm is described for generating subsets of a set S which satisfy constraints of the form: "If s(i) is a member of the subset, then s(j) must also be a member of the subset." The algorithm has been programmed in the WISP language and successfully run on the IBM 7094 in connection with a routine to detect feedback in multidimensional iterative networks. .A Waite, W. M. .I 1623 .T An Application of FORMAC .W A nonlinear circuit analysis problem is stated and the way in which it was solved using FORMAC is indicated. The solution of the problem using FORMAC was notable since several other methods that were tried failed. The problem is straightforward (although untenable by hand) but nevertheless involved an elaborate use of the FORMAC language. The program was fairly large and utilized practically every command. In particular, it made extensive use of the PART command. Several tricks were necessary in order to circumvent some of the shortcomings of the FORMAC system. This paper is more concerned with the use of programming techniques in FORMAC than with the actual engineering problem, although readers may be interested in the problem because it is stated in a general (mathematical) sense and could be of interest in areas other than circuit analysis. .A Neidleman, L. D. .I 1624 .T Automatic Dimensioning .W Examples of algorithm that will accomplish automatic storage reservation without the need for explicit array declarations are described. .A Klerer, M. May, J. .I 1625 .T On the Automatic Simplification of Source-Language Programs .W Methods of simplification that can be applied automatically to programs written in an ALGOL-like language are discussed. The simplifications are based on the form of the program and the knowledge obtained by a processor, without any understanding of what the program is supposed to do. These methods have been implemented in a processor called SURE that accepts a program written in JOVIAL and outputs an equivalent JOVIAL program that may be shorter and may be executed faster than the original. SURE is described, some of the problems encountered in automatic improvement at the source-language level are discussed, and further types of automatic program improvement are suggested. .A Clark, E. R. .I 1626 .T Structure of a LISP System Using Two-Level Storage .W In an ideal list-processing system there would be enough core memory to contain all the data and programs. Described in this paper are a number of techniques that have been used to build a LISP system utilizing a drum for its principal storage medium, with a surprisingly low time penalty for use of this slow storage device. The techniques include careful segmentation of system programs, allocation of virtual memory to allow address arithmetic for type determination, and a special algorithm for building reasonably linearized lists. A scheme for binding variables is described which is good in this environment and allows for complete compatibility between compiled and interpreted programs with no special declarations. .A Bobrow, D. G. Murphy, D. L. .I 1627 .T Application of Level Changing to a Multilevel Storage Organization .W A technique for organizing the devices of a computer storage system is described. This technique, called the multilevel store, provides a means for economically satisfying the requirements for very large storage capacities of certain data management and information retrieval systems. The concept of level changing is introduced and its application to the multilevel store is discussed. A possible means for physically organizing the information for efficient use of the multilevel store is presented. .A Morenoff, E. McLean, J. B. .I 1628 .T The Emergence of a Profession .W Computer programming deals with an enormous variety of activities and is carried on by people with a great variety of backgrounds. It seems clear that part but not all of this activity is evolving toward a distinct professional field, but that the scope of this emerging profession, and some of its economic, social, and educational characteristics are as yet by no means well defined. In this paper, these issues are examined and some opinions about them are expressed. .A Orden, A. .I 1629 .T Stat-Pack: A Biostatistical Programming Package .W A package of FORTRAN statistical programs for use on almost any small to medium size (40k characters or 8k words) for which a FORTRAN II compiler exists is described and its availability is announced. The major design criteria of ease of use, ease of modification, flexibility of input and detail of output are described. .A Shannon, S. Henschke, C. .I 1630 .T Computer Representation of Planar Regions by Their Skeletons .W Any region can be regarded as a union of maximal neighborhoods of its points, and can be specified by the centers and radii of these neighborhoods; this set is a sort of"skeleton" of the region. The storage required to represent a region in this way is comparable to that required when it is represented by encoding its boundary. Moreover, the skeleton representation seems to have advantages when it is necessary to determine repeatedly whether points are inside or outside the region, or to perform set-theoretic operations on regions. .A Pfaltz, J. L. Rosenfeld, A. .I 1631 .T Testing a Random Number Generator .W The first 1,000,000 numbers produced by the random number generator used in the General Purpose Systems Simulator (GPSS) were subjected to statistical tests. The tests are described and the results of the tests are presented. These particular tests indicate that the numbers are satisfactory. It is recommended that suitable tests be applied to all random numbers used in computer simulations. .A Gorenstein, S. .I 1632 .T Programming the Tabular Method of Analysis of Variance for Factorial Experiments .W The ease of programming the tabular method of analysis of variance for complete factorial experiments in a FORTRAN language is demonstrated. In this method, the total sum of squares is partitioned into orthogonal single degree of freedom sums of squares; main effect and interaction sums of squares are then obtained by appropriate pooling of the single degree of freedom sums of squares. Program segments to accomplish the procedure are presented. Modifications to handle hierarchical designs and replicated experiments are mentioned. A FORTRAN II program for an IBM 7094 is described briefly. .A Carmer, S. G. .I 1633 .T A Modified Newton Method for Polynomials .W A modified Newton method for polynomials is discussed. It is assumed one has approximations for all the roots of the polynomial. Three variations are described. If the roots are simple, it is shown that under appropriate conditions, two of the variations are cubically convergent. .A Ehrlich, L. W. .I 1634 .T 27 bits Are Not Enough for 8-digit Accuracy .W From the inequality 10^8 < 2^27, we are likely to conclude that we can represent 8-digit decimal floating-point numbers accurately by 27-bit floating-point numbers. However, we need 28 significant bits to represent some 8-digit numbers accurately. In general, we can show that if 10^p < 2^q-1, then q significant bits are always enough for p-digit decimal accuracy. Finally, we can define a compact 27-bit floating-point representation that will give 28 significant bits, for numbers of practical importance. .A Goldberg, I. B. .I 1635 .T Parameters for Pseudo Runge-Kutta Methods .W The object of this note is to present a choice of the free parameters in the third- and fourth-order pseudo Runge-Kutta methods involving two points. This choice of parameters causes a bound on the principal part of the truncation error term to be near the minimum for the fourth-order method and at the minimum for the third-order method. .A Byrne, G. D. .I 1636 .T Invariant Imbeding and the Numerical Integration of Boundary-Value Problems for Unstable Linear Systems of Ordinary Differential Equations .W In such diverse areas as radiative transfer in planetary atmospheres and optimal guidance and control, two-point boundary-value problems for unstable systems arise, greatly complicating the numerical solution. An invariant imbeding technique is presented which is useful in overcoming these frequently encountered instabilities, and the results of some numerical experiments are given. .A Belman, R. E. Kagiwada, H. H. Kalaba, R. E. .I 1637 .T Problems in the Statistical Analysis of Simulation Experiments: The Comparison of Means and the Length of Sample Records .W Research is continued into statistical analysis of simulation experiments containing autocorrelated time series. It is shown how to estimate the lengths of sample records needed to use certain large sample results in measuring stability. Analogies between autocorrelated data and independent observations are described. A way to test the difference of the mean of two experiments is suggested. It is shown how the variance of the sample mean relates to the spectrum of the generating process, and estimation of the quantities of interest is described. The results expand the possibilities of statistical spectral analysis as applied to simulation experiments. .A Fishman, G. S. .I 1638 .T Sorting by Replacement Selecting .W In sorting by replacement selecting, the expected length of a sequence beginning with the i-th element (i>1) is proved to be 2F, in accordance with a conjecture of E. H. Friend, where F is the number of memory cells used. The expected length of the j-th sequence is determined to be F times a j-th degree polynomial in e, such that the value of this polynomial approaches 2 as j approaches infinity. Recursive formulas are obtained for both the mean and the standard deviation of the length of the j-th sequence. The mathematical proofs of these results are based upon the assumption that n, the number of items to be sorted, is infinite, but it is shown that the error due to the finiteness of n approaches zero rapidly as n increases. .A Gasner, B. J. .I 1639 .T Exponential Curve Fit (Algorithm 295 [E2]) .A Spath, H. .I 1640 .T Generalized Least Squared Fit By Orthogonal Polynomials (Algorithm 296 [E2]) .A Makinson, G. J. .I 1641 .T A Use of Fast and Slow Memories in List-Processing Languages .W A scheme is described which permitting a substantial increase in memory space utilized to store list-structured data. It consists in reducing to one level a nonhomogeneous store composed of fast (core) and slow (disk or drum) memories. The space available in slow memory is divided into pages each containing a given number of machine words. The reduction to a one-level memory is performed by a program which leaves the most often called pages in the fast memory. When a new page from slow store is requested, the page in core having the longest period of inactivity is transferred back to the slow store. The complete scheme has been implemented in connection with a LISP embedding into ALGOL, using an IBM 7044 with 32k of core memory and disks. Gains in memory space were about 100-fold. As often happens in programming applications the price of the additional space is computer time. Although the disks have an access time 10^4 times slower than core, tests indicate that the actual slow down varied from 3 to 10, depending on the number of pages available in the fast store. .A Cohen, J. .I 1642 .T Time Sharing on a Computer with a Small Memory .W Techniques to make time sharing attractive on a computer with a small central memory are presented. "Small" is taken to mean that only one user program plus a monitor will fit into the memory at any time. The techniques depend on having two levels of secondary storage: level 1, several times larger than the main memory and quite fast; and level 2, many times larger and slower than level 1. .A Fisher, R. O. Shepard, C. D. .I 1643 .T An Improvement to Iterative Methods of Polynomial Factorization .W Methods of polynomial factorization which find the zeros one at a time require the division of the polynomial by the accepted factor. It is shown how the accuracy of this division may be increased by dividing in order of both ascending and descending powers of the variable and choosing a crossover point which minimizes a very simply calculated error criterion. .A Bingham, J. A. C. .I 1644 .T On the Computation of Least Squares Polynomials .W Rounding error accumulated during digital computation of a least squares polynomial makes the computed polynomial only an approximation to the true least square polynomial. A simple method for adjust ing the constant term of the computed polynomial to get a better approximation to the true least squares polynomial is described. .A Goldberg, M. .I 1645 .T A Note on Computing Approximations to the Exponential Function .W Two methods are discussed which result in near minimax rational approximations to the exponential function and at the same time retain the desirable property that the approximation for negative values of the argument is the reciprocal of the approximation for corresponding positive values. These methods lead to approximations which are much superior to the commonly used convergents of the Gaussian continued fraction for the exponential. Coefficients and errors are given for the intervals [-.5*ln 2, .5*ln 2] and [-ln 2, ln 2]. .A Cody, W. J. Ralston, A. .I 1646 .T DITRAN-A Compiler Emphasizing Diagnostics .W DITRAN (Diagnostic FORTRAN) is an implementation of ASA Basic FORTRAN with rather extensive error checking capabilities both at compilation time and during execution of a program. The need for improved diagnostic capabilities and some objectives to be met by any compiler are discussed. Attention is given to the design and implementation of DITRAN and the particular techniques employed to provide the diagnostic features. The handling of error messages by a general macro approach is described. Special features which provide teaching aids for use by instructors are noted. .A Moulton, P. G. Muller, M. E. .I 1647 .T WATFOR-The University of Waterloo FORTRAN IV Compiler .W WATFOR is an in-core, load-and-go compiler which has been implemented within the IBM 7040/44 operating system. FORTRAN IV was selected as the source language in order to achieve maximum language compatibility with other available compiling systems, in particular the IBM 7040/44 FORTRAN IV system. The principal advantage of the WATFOR compiler is that it translates FORTRAN IV programs at speeds of up to 100 statements per second. Since the compiler resides core there is virtually no system overhead, and hence large batches of "student" programs may be processed very efficiently. The compiler also provides extensive error diagnostics, during both the compilation and the execution phases of a program run. This feature makes the system attractive to both learners and learned users alike. .A Shantz, P. W. German, R. A. Mitchell, J. G. .I 1648 .T Uniform Random (Algorithm 294 [G5]) .A Strome, W. M. .I 1649 .T Data Directed Input-Output in FORTRAN .W A statement which is similar to the NAMELIST statement of FORTRAN IV has been incorporated in the FORTRAN 63 compiler. The FORTRAN 63 implementation allows a greater flexibility and simplicity than the FORTRAN IV feature. The Hollerith names, the location, the mode and the dimensions of a variable can be discovered by means of standard FORTRAN statements. Methods of using this information are illustrated in relation to general purpose data directed input and output routines; some other uses such as matrix manipulation are discussed. .A Hassitt, A. .I 1650 .T A Unifying Computational Method for the Analysis of Complete Factorial Experiments .W A computational method which may be used for the calculation of sums of squares in the analysis of variance of complete factorial experiments and in the computation of main effect or interaction means is described. The method is elucidated as unifying since one method can be used for a variety of purposes each previously requiring different methods. The programming advantages of such a method are obvious. The following variants are discussed: (1) the standard analysis of variance; (2) analyses omitting certain levels of one or more factors; (3) separate analyses for some levels of a factor or for combinations of levels of more than one factor. These are performed simultaneously; (4) the calculation of main effect or interaction means. The mean expects the data in standard order and it leaves the data in that order so that many analyses of the same data can be performed without rearrangement. The total sum of squares, excluding a replication sum of squares, is partitioned into all polynomial partitions and their interactions each with one degree of freedom. This is so even if factors have unequally spaced factor levels. .A Cooper, B. E. .I 1651 .T An Interpretive Input Routine for Linear Programming .W In this descriptive article an input code is presented which greatly simplifies data input to any linear programming solution routine, for subsequent use either as a pedagogical device or for solving rather small LP problems. This latter (limited) use derives not at all from inherent limitations in the code itself, but from an efficiency evaluation: large LP problems would doubtless benefit from an input system more suited for bulk data handling than the input code described. From a user's standpoint, input appears almost exactly as a textbook presentation of the LP problem (limited only by a keypunch's inability to write subscripts, etc.). The input interpreter scans column wise, thus no fixed format data preparation is required. The user may also, under very general requirements only, liberally use editorial comments throughout the input deck as an aid in identification, e.g., of row constraints. The article includes examples of input, output from a solution routine presently in use, and a skeleton flowchart of the input interpreter. .A Aigner, D. J. .I 1652 .T A Code for Non-numeric Information Processing Applications in Online Systems .W A code has been specifically designed to simplify the internal information processing operations within an online computer system with respect to non-numeric applications, and to maximize the transfer rate of the information channel linking the system and the system user. The code has direct application to problems in area such as information retrieval, document classification, computer-aided teaching and text editing. This code, called IPC (Information Processing Code), is an 8-bit code set constructed so that 7, 6, 5 and 4-bit subsets can be easily derived from the basic set. The code set is organized so that simple binary operations can distinguish between the numeric alphabetic, special symbol and control character codes. The number of usable characters within the basic set size may be expanded either by use of escape codes included in the set, or by suitable interpretation of otherwise unassigned codes on the basis of the requirements of local environments. .A Morenoff, E. McLean, J. B. .I 1653 .T System Performance Evaluation: Survey and Appraisal .W The state of the art of system performance evaluation is reviewed and evaluation goals and problems are examined. Throughput, turnaround, and availability are defined as fundamental measures of performance; overhead and CPU speed are placed in perspective. The appropriateness of instruction mixes, kernels, simulators, and other tools is discussed, as well as pitfalls which may be encountered when using them. Analysis, simulation, and synthesis are presented as three levels of approach to evaluation, requiring successively greater amounts of information. The central role of measurement in performance evaluation and in the development of evaluation methods is explored. .A Calingaert, P. .I 1654 .T A University's Educational Program in Computer Science .W After a review of the power of contemporary computers, computer science is defined in several ways. The objectives of computer science education are stated, and it is asserted that in a North American university these will be achieved only through a computer science department. The program at Stanford University is reviewed as an example. The appendices include syllabic of Ph.D. qualifying examinations for Stanford's Computer Science Department. .A Forsythe, G. E. .I 1655 .T Code Extension Procedures for Information Interchange* (Proposed USA Standard) .K standard code, code, information interchange, characters, shift out, shift in, escape, data link escape, control functions, standard procedures, code extension, code table, bit pattern .I 1656 .T Procedures for the Standardization Process* (Proposed USA Standard) .K standardization, procedures, criteria .I 1657 .T Implementation of the SHARER2 Time-Sharing System .W A simple mechanism is described for the execution of part of a program with its own memory protection. This allows such a program to act as a suboperating system. An improved version of the SHARER time-sharing system using this feature is described. .A Harrison, M. C. .K operating system, memory protection, time-sharing, multiprogramming, monitor, submonitor, suboperating system .I 1658 .T Analysis of Algorithms for the Zero-One Programming Problem .W This paper is concerned with a review and examination of several existing algorithms for the zero-one programming problem. Computational experience is summarized. The machine time and storage requirements of several of the algorithms are compared over several test problems of small and intermediate size. Computer experiments still provide little hope of solving problems with over 100 variables with a reasonable amount of machine time. .A Gue, R. L. Liggett, J. C. Cain, K. C. .K operations research, optimization theory, integer programming, zero-one variables, algorithms .I 1659 .T Computational Linguistics in a Ph.D. Computer Science Program .W This report contains recommendations for a course curriculum on computational linguistics in a Ph.D. computer science program. A classification of the subject areas contained in computational linguistics is presented, and ten courses in these areas are described. A basic bibliography in computational linguistics is appended. .A Kuno, S. Oettinger, A. G. .K computational linguistics, mathematical linguistics, language and computer, language data processing, computational linguistics course curriculum, computational linguistics graduate program, computational linguistics bibliography, computer science curriculum .I 1660 .T Index By Subject To algorithms, 1960-1968 .I 1661 .T Multint (Algorithm 32 [D1]) .A Kolbig, K. S. .K numerical integration, multidimensional integration, Gaussian integration .I 1662 .T Eigenvalues and Eigenvectors of a Real General Matrix [F2]) .A Grad, J. Brebner, M. A. .K eigenvalues, eigenvectors, latent roots, latent vectors, Householder's method, QR algorithm, inverse iteration .I 1663 .T Generator of Random Numbers Satisfying the Poisson distribution [G5]) .A Snow, R. H. .K Poisson distribution, random number generator, Monte Carlo .I 1664 .T An Algorithm for Deriving the Equations of Mathematical Physics by Symbolic Manipulation .W A method is described whereby a digital computer can be used to derive the equations of mathematical physics in any curvilinear coordinate system requested by the user. The effectiveness of the technique is demonstrated by using it to derive the Navier-Stokes equations of fluid motion and the continuity equation. To derive these equations by this method, the user need know only the coordinate transformation equations relating the curvilinear coordinates of interest to an orthogonal Cartesian triad. When this program is used and the coordinate transformation equations are supplied as input, the computer will derive the Navier-Stokes equations and the continuity equation. The equations obtained will be relative to the curvilinear coordinate system specified by the transformation equations used as input. In this paper the emphasis is on theoretical considerations and methodology rather than on programming details. Results are presented for cylindrical polar and spherical polar coordinate systems. .A Howard, J. C. Tashjian, H. .K FORMAC, Navier-Strokes equations, continuity equation, tensor, tensor equation, curvilinear coordinate systems, FORTRAN, symbolic manipulation .I 1665 .T Automatic Generation of Efficient Lexical Processors Using Finite State Techniques .W The practical application of the theory of finite-state automata to automatically generate lexical processors is dealt with in this tutorial article by the use of the AED RWORD system, developed at M.I.T. as part of the AED-1 system. This system accepts as input description of the multicharacter items or of words allowable in a language given in terms of a subset of regular expressions. The output of the system is a lexical processor which reads a string of characters and combines them into the items as defined by the regular expressions. Each output item is identified by a code number together with a pointer to a block of storage containing the characters and character count in the item. The processors produced by the system are based on finite-state machines. Each state of a "machine" corresponds to a unique condition in the lexical processing of a character string. At each state a character is read, and the machine changes to a new state. At each transition appropriate actions are taken based on the particular character read. The system has been in operation since 1966, and processors generated have compared favorably in speed to carefully hand-coded programs to accomplish the same task. Lexical processors for AED-O and MAD are among the many which have been produced. The techniques employed are independent of the nature of the items being evaluated. If the word "events" is substituted for character string, these processors may be described as generalized decision-making mechanisms based upon an ordered sequence of events. This allows the system to be used in a range of applications outside the area of lexical processing. However convenient these advantages may be, speed is the most important consideration. In designing a system for automatic generation of a lexical processor, the goal was a processor which completely eliminated backup or rereading, which was nearly as fast as hand-coded processors, which would analyze the language and detect errors, and which would be convenient and easy to use. .A Johnson, W. L. Porter, J. H. Ackley, S. I. Ross, D. T. .K character string, compiler, finite-state automata, finite-state machine, lexical processor, nondeterministic machine, parsing, plex structure, regular expressions,sequential machine, syntactic analysis .I 1666 .T Solution of Linear Programs in 0-1 Variables by Implicit Enumeration (Algorithm 341 [H]) .A Byrne, J. L. Proll, L. G. .K linear programming, zero-one variables, partial enumeration .I 1667 .T Roots of Polynomials by a Root-Squaring and Resultant Routine (Algorithm 340 [C2]) .A Noltemeier, A. .K root finders, roots of polynomial equations, polynomial zeros, root-squaring operations, Graeffe method, resultant procedure, subresultant procedure, testing of roots, acceptance criteria .I 1668 .T An Algol Procedure for the Fast Fourier Transform with Arbitrary Factors (Algorithm 339 [C6]) .A Singleton, R. C. .K fast Fourier transform, multivariate Fourier transform, Fourier series, harmonic analysis, spectral analysis, orthogonal polynomials, orthogonal transformation, virtual core memory, permutation .I 1669 .T Algol Procedures for the Fast Fourier Transform (Algorithm 338 [C6]) .A Singleton, R. C. .K fast Fourier transform, complex Fourier transform, multivariate Fourier transform, Fourier series, harmonic analysis, spectral analysis, orthogonal polynomials, orthogonal transformation, virtual core memory, permutation .I 1670 .T Correspondences of 8-Bit and Hollerith Codes for Computer Environments (A USASI Tutorial Standard) .K USA standard, card code, punched card, punched card code, hole-patterns, hole-patterns assignment, punched card systems .I 1671 .T A Phonological Rule Tester .W The design and implementation of a system to alleviate the problem of rule evaluation for the linguist in the area of phonology are presented. It permits the user to define, on-line, sets of rules statable within the framework presented in The Sound Patterns of English by Chomsky and Halle, 1968, to define phonemes as bundles of specified distinctive features, to define data as strings of phonemes with associated grammatical structure, to test the effect of applying rules to the data, and to store both the definitions and results. The rule application facility described in detail was implemented by translating linguistic rules to rules in FLIP, a format-directed list processor embedded in LISP. This made the system construction easy while providing sophisticated capabilities for the linguist. The system is written in BBN LISP on the Scientific Data System 940 computer and is designed to be used on-line in interactive fashion, with control returned to the user after each command is executed. .A Borrow, D. G. Fraser, J. B. .K phonology, rule tester, linguistics, transformational grammar, LISP, format-directed list processing, on-line systems .I 1672 .T Practical Error Coefficients in the Integration of Periodic Analytic Functions by the Trapezoidal Rule .W Theoretical and practical values of error coefficients useful in bounding the error in integrating periodic analytic functions with the trapezoidal rule are tabulated for various ranges of the parameters. .A Rabinowitz, P. .K theoretical error coefficients, practical error coefficients, numerical integration, periodic analytic functions, trapezoidal rule, roundoff error, truncation error, integration algorithm .I 1673 .T Approximate Solution of Initial Boundary Wave Equation Problems by Boundary-Value Techniques .W A new boundary-value technique is proposed for the treatment of initial-boundary-value problems for linear and mildly nonlinear wave equations. Several illustrative examples are offered to demonstrate the ease with which the method can be applied. .A Greenspan, D. .K initial-boundary-value problem, wave equation, boundary-value technique .I 1674 .T One-Line Random Number Generators and Their Use in Combinations .W Some one-line random number generators, i.e. generators requiring a single FORTRAN instruction are discussed, and some short FORTRAN programs which mix several such generators are described. The aim is to provide methods for incorporating random number generators directly in FORTRAN programs, by means of a few in-line instructions. The advantages are speed (avoiding linkage to and from a subroutine), convenience, and versatility. Anyone wishing to experiment with generators, either using congruential generators by themselves or mixing several generators to provide a composite with potentially better statistical properties than the library generators currently available, may wish to consider some of the simple FORTRAN program discussed here. .A Marsaglia, G. Bray, T. A. .K random number generation, Monte Carlo, simulation .I 1675 .T A Note on a Relevance Estimate and Its Improvement .W In this paper the effect of iterating the improvement procedure is examined. It is shown that applications of the improvement factor beyond the first time are ineffectual, and that the factor is but a scale factor. .A Korfhage, R. R. .K information retrieval, relevance, indexing, classification .I 1676 .T The LRLTRAN Compiler .W Extensive software problems confront an organization which possesses a number of different computers and which frequently acquires new ones. To maintain cohesion, a system must be developed, written in a high level language, which minimizes machine dependencies and isolates those which are necessary. A language and a compiler for the language are discussed here. The language, called LRLTRAN, is a heavily augmented FORTRAN. The tree-pass compiler makes use internally of a postfix Polish notation (pass I to pass II) and a tree representation referred to as a "composite blocking table" (pass I to pass III). Machine-independent optimization occurs in pass II and DO-loop and machine-dependent optimization in pass III. .A Mendicino, S. F. Martin, J. T. Ranelletti, J. E. Zwakenberg, R. G. .K compiler, compiler-compiler, machine independence, scatter storage technique, Polish processor, common subsegments, tree representation, optimization .I 1677 .T Storage Organization in Programming Systems .W The system of program and data representation that has been in use on the Rice University computer for five years is described. Each logical entity in storage occupies a block of consecutive memory locations. Each block is labeled by a codeword and may contain a program, a data vector, or codewords which in turn label blocks to form arrays. This storage arrangement is discussed with its realized advantages or programming systems: simplicity of programmed addressing, flexibility of data structures, efficiency of memory utilization, variability of system composition during execution, means of linkage between programs and from programs to data, and basis for storage protection. The application of labeled blocks may be extended to areas of time-sharing and multimedia storage control. On the basis of experience at rice, some ideas on such extensions are presented. .A Jodeit, J. G. .K storage allocation, storage organization, storage control, codewords, data representation, program representation, data structures, storage protection, addressing mechanisms, paging, segmentation, file handling .I 1678 .T Automata, Formal Languages, Abstract Switching, and Computability in a Ph.D. Computer Science Program .W A number of courses are listed in the area describe as automata, formal languages, abstract switching, and computability, that might be available to a Ph.D. student in computer science. A brief catalog description of each course is applied and the role of each of the courses in the graduate program is discussed. .A McNaughton, R. .K Ph.D. computer-science curriculum, Ph.D. computer science program, automata, formal languages, switching theory, theory of computability .I 1679 .T A Fast Fourier Transform Algorithm for Real-Valued Series .W A new procedure is presented for calculating the complex, discrete Fourier transform of real-valued time series. This procedure is described for an example where the number of points in the series is an integral power of two. This algorithm preserves the order and symmetry of the Cooley-Turkey fast Fourier transform algorithm while effecting the two-to-one reduction in computation and storage which can be achieved when the series is real. Also discussed are hardware and software implementations of the algorithm which perform only (N/4) log2 (N/2) complex multiply and add operations, and which require only N real storage locations in analyzing each N-point record. .A Bergland, G. D. .K fast Fourier transform, time series analysis, digital filtering, spectral analysis, real-time spectrum analyzers, Fourier analysis, discrete Fourier transform, digital spectrum analysis, Fourier analysis algorithm, Fourier synthesis algorithm .I 1680 .T A General-Purpose Display Processing and Tutorial System .W ADEPT (A display-Expedited Processing and Tutorial) system is described. This system was designed to improve man-computer communications by employing a display unit to interleave tutoring with other computer operations such as simulation, programming, and information retrieval. It is written in FORTRAN IV (G) for the IBM System/360, Model 40, and the IBM 2250 display Unit under Operating System/360. Adept is a cataloged program that controls the standard operating system by terminating and rescheduling itself automatically, relinquishing computer resources allocated to it, and surrendering control to the operating system to perform other jobs. It expands the power and flexibility of computer-assisted instruction by making immediately available to students, teachers, and other users, the full resources (system-cataloged programs) of the operating system. Language processors and compilers, simulation models, mathematical solution techniques, stored data, and all other library and user programs can be incorporated into instructional material without reprogramming. Illustrations of the various applications are presented and their implications are discussed. .A Engvold, K. J. Hughes, J. L. .K computer-assisted instruction, tutorial systems, programming, simulation, modeling, information retrieval operating systems, graphics, displays, man-machine interface, on-line computing, graphic programming .I 1681 .T Easy English,a Language for Information Retrieval Through a Remote Typewriter Console .W Easy English is a natural command language designed to simplify communication between man and machine through remote typewriter console. It has been developed for retrieval of documents from a computerized data base, the Moore School Information Systems Laboratory files. Requests are formulated in a standardized syntactical form (examples of which are presented), and this form is then transformed into an equivalent query expressed in the retrieval system's original Symbolic Command Language, which is briefly described. Operation of easy English is detailed by illustration of the transformations performed upon a sample request up to the point at which the request string is sent to the system. A macro flowchart of Easy English is included, and an Appendix provides the printout of a retrieval demonstration. .A Rubinoff, M. Bergman, S. Cautin, H. Rapp, F. .K natural language communication, on-line searching, remote console communication, information retrieval, man-machine communication, remote terminal communication, translator, document retrieval, conversational mode, information retrieval language, symbolic command language .I 1682 .T The Implementation of a BASIC System in a Multiprogramming Environment .W The implementation of a remote terminal BASIC system within the context of an existing multiprogramming computer system, the Burroughs B5500, is described. This implementation combines a unique mixture of machine language and interpretive techniques with an incremental compiler. .A Braden, H. V. Wulf, W. A. .K multiprogramming, incremental compilation, compilers, interpreters .I 1683 .T Boolean matrix Methods for the Detection of Simple Precedence Grammars .W A mechanical procedure is derived for determining whether a given context-free phrase structure grammar is a simple precedence grammar. This procedure consists of elementary operations on suitably defined Boolean matrices. Application of the procedure to operator grammars is also given. .A Martin, D. F. .K syntax analysis, precedence analysis, simple precedence grammar, simple precedence language, operator grammar, operator precedence, compilers, bounded-context syntactic analysis, Boolean matrices, relations .I 1684 .T Ambiguity in Limited Entry Decision Tables .W The use of decision tables as a tool in systems analysis and for program specification is now becoming accepted. Rules on redundancy, contradiction, and completeness for limited entry tables were published in 1963. These are usually used for checking, preceded if necessary by a conversion from extended to limited entry form. Processors which automatically translate tables to more conventional program usually base their diagnostic facilities on these rules. In this paper it is suggested that these rules are unsatisfactory and that the important aspect of checking is to eliminate ambiguity from tables. Ambiguity is defined and discussed, and a procedure for producing checked-out decision tables is proposed. The theoretical basis of the algorithm used is established. The importance of well-designed diagnostic facilities in decision table processors is emphasized. .A King, P. J. H. .K decision tables, DETAB-65, systems analysis .I 1685 .T GAN, a System for Generating and Analyzing Activity Networks .W GAN, a system for generating activity networks, is designed to save time in the preparation of activity networks and to deal conveniently with network programs. A defining description of a programming language designed for generating activity network from a set of standard networks is presented. Also, a general idea of a language for performing calculations on activity networks (scheduling activity networks) is given. .A Schurmann, A. .K activity network, management project, standard network, network generator, network assembler, activity network analysis, network calculation, network program .I 1686 .T Computer Synthesis of Holograms for 3-D Display .W Optical and digital holography are reviewed. The mathematical model and computational techniques of the authors' digital holographic process are discussed, and applications of computer holography are suggested. Computer holograms have been made of three-dimensional objects which give faithful reconstructions, even in white light. A new approach based on point apertures for the image is discussed. Photographs of the images reconstructed from digital holograms are presented. .A Lesem, L. B. Hirsch, P. M. .K holography, optics, Fourier transforms, computer applications, display device, photography, physics, mathematics, image processing .I 1687 .T Netflow (Algorithm 248 [H]) .A Bray, T. A. Witzgall, C. .K capacitated network, linear programming, minimum-cost flow, network flow, out-of-kilter .I 1688 .T Netflow (Algorithm 248 [H]) .A Henderson, J. H. .K capacitated network, linear programming, minimum-cost flow, network flow, out-of-kilter .I 1689 .T Calculation of a Polynomial and its Derivative Values by Horner Scheme (Algorithm 337 [C1]) .A Pankiewicz, W. .K function evaluation, polynomial evaluation, Algol procedure, Horner's scheme .I 1690 .T Netflow (Algorithm 336 [H]) .A Bray, T. A. Witzgall, C. .K capacitated network, linear programming, minimum-cost flow, network flow, out-of-kilter .I 1691 .T A Comparison of the Correlational Behavior of Random Number Generators for the IBM 360 .W Hutchinson states that the "new" (prime modulo) multiplicative congruential pseudorandom generator, attributed to D. H. Lehmer, has passed the usual statistical tests for random number generators. It is here empirically shown that generators of this type can produce sequences whose autocorrelation functions up to lag 50 exhibit evidence of nonrandomness for many multiplicative constants. An alternative generator proposed by Tausworthe, which uses irreducible polynomials over the field of characteristic two, is shown to be free from this defect. The applicability of these two generators to the IBM 360 is then discussed. Since computer word size can affect a generator's statistical behavior the older mixed and simple congruential generators, although extensively tested on computers having 36 or more bits per word, may not be optimum generators for the IBM 360. .A Whittlesey, J. R. .K random numbers, pseudorandom number generators, autocorrelation function, serial correlation, digital shift-register generators, linear recurrence modulo two, irreducible polynomials, primitive trinomials modulo two, congruential generators, prime numbers, statistical tests for randomness, IBM 360, 32-bit versus 36-bit word size .I 1692 .T Numerical Solution of a Thin Plate Heat Transfer Problem .W The numerical solution of a system of linear equations resulting from a discrete approximation to a thin plate heat transfer problem is considered. The slow convergence of point iterative methods is analyzed and shown to be caused by one of the boundary conditions. The difficulty may be removed by a standard line iterative technique. .A Stewart III, G.W. Lick, D. W. .K heat transfer problem, Poisson equation, boundary value problem, thin domain, successive overrelaxation (SOR), block SOR .I 1693 .T GPL, a Truly General Purpose Language .W A truly general purpose programming language, GPL, is described which contains facilities for constructing (within the language) new data types as well as facilities for operations performed upon them. The basic language is minimal in the sense that no basic element can be derived from the others with high efficiency in the object programs. Constructs like the ALGOL 60 for-statements,and if-statements are not basic; they are special types of procedures. New "symbols" (underlined words in ALGOL 60) are implicitly defined by usage in other declarations. As part words are definable, packed words are handled as easily as full words. "Address" variables (pointers) are included in full generality. .A Garwick, J. V. .K programming language, general purpose, self-extending, macro, ALGOL .I 1694 .T An Algorithm for the Probability of the Union of a Large Number of Events .W An algorithm is presented which efficiently evaluates the probability for the union of n independent and not mutually exclusive events. The problem is that of evaluating the sums of the products of all possible combinations of n variables in minimum time and storage space. .A Miller, G. D. .K algorithm, probability, optimum, storage vs. time compromise, set union, mutually exclusive events .I 1695 .T PLEXUS-An On-Line System for Modeling Neural Networks .W A description is presented of PLEXUS, a system which enables a user to construct and specify a neural network, to analyze the output data produced by the network, and to store and retrieve networks and data from a library. The system, operated entirely from a digital display unit, interacts directly with the user and permits easy and rapid transitions between the various phases of the modeling process. PLEXUS is designed to complement neurophysiological research so that the systematic development of neural models can be coordinated with experimental work. PLEXUS networks are built up from components representing individual neurons, external stimuli, and interconnecting fibers, each component being of a relatively detailed nature. Provision is also made for the use of experimental data as input to a network. Convenient means for specification and modification of a network and extensive error-checking capabilities are provided. Data resulting from the simulation of a network may be analyzed by a variety of techniques ranging from examinations of the gross characteristics of the data to the determination of detailed statistical properties. .A Dill, J. C. Randall, D. L. Richer, I. .K biological modeling, data analysis, discrete system simulation, library systems, modeling, network simulation, neural networks, neurophysiological models, on-line simulation, simulation .I 1696 .T An Algorithm for Identifying the Ergodic Subchains and Transient States of a Stochastic Matrix .W An algorithm for identifying the ergodic subchains and transient states of a stochastic matrix is presented. Applications in Markov renewal programming and in the construction of variable length codes are reviewed, and an updating procedure for dealing with certain sequences of stochastic matrices is discussed. Computation times are investigated experimentally and compared with those of another recently propose method. .A Fox, B. L. Landi, D. M. .K stochastic matrix, ergodic, chain identification .I 1697 .T Graphical Input/Output of Nonstandard Characters .W A system developed at Harvard for graphically inputting and outputting nonstandard characters on a computer is printed. In principle, the system can deal with any orthography, although at present it is limited to 4000 Chinese characters and some mathematical symbols. New characters can be added to the repertoire of the system by graphical input on a display scope. Text inputting is accomplished via a display scope or a Rand Tablet. The organization and operation of the current system are described, and a discussion of the relative merits of such a system is given. Illustrations of the computer input and output of Chinese characters are included. .A Hayashl, H. Duncan, S. Kuno, S. .K Chinese characters, input/output, orthography, Rand Tablet, PDP-1, automatic typesetting, man-machine communication, computer graphics, graphical input, on-line editing .I 1698 .T A Statistical Model for Console Behavior in Multiuser Computers .W The ability of a computer system to communicate with the outside world efficiently is as important as its ability to perform computations efficiently. It is quite difficult to characterize a particular user, but rather easy to characterize the entire user community. Based on the properties of this community we have postulated a hypothetical "virtual console." No claim is made that a virtual console behaves like any actual console, but the entire collection of virtual consoles models the collection of actual consoles. Using the model we answer questions like: How many processes are suspended waiting for console input? What is the maximum rate at which a process can execute? What bounds can be set on overall buffer requirements? Answers to these and similar questions are needed in certain aspects of operating system design. .A Denning, P. J. .K statistical models for input-output, operating system design, input-output design .I 1699 .T Experimental Evaluation of Information Retrieval Through a Teletypewriter .W Experiments designed to evaluate the capabilities of mechanized information retrieval systems, with emphasis on interactive (man-machine) language and on some of the mechanical and psychological limitations in their design, were conducted at the Moore School information Systems Laboratory. The basic assumption of the research is that an information retrieval system that provides for man-machine dialogue at a remote inquiry terminal should provide a searcher with many of the tools which would be available to him were he actually performing his search at a library or repository of documents. Factors involved in evaluation of such a system include ease of use, learning time, and effectiveness of actual retrieval. Three experiments and the conclusions resulting from them are detailed. .A Rubinoff, M. Bergman, S. Franks, W. Rubinoff, E.R. .K information retrieval testing, information system evaluation, experimental document retrieval, document retrieval, document perusal, man-machine communication, remote console communication, teletypewriter communication, remote terminal communication, retrieval command language, symbolic command language, interactive systems, user learning factors, on-line searching .I 1700 .T PEEKABIT, Computer Offspring of Punched Card PEEKABOO, for Natural Language Searching .W The "peekaboo" idea from punched card information retrieval methods has been mated with the idea of superimposed punching to produce a programming technique which cuts computer run time in half on a test search of 33,000 subject index entries. A search program using the device has been operational since late 1963. As an item is entered in the store, an 18-byte mask is created from the item's meaningful words using the inclusive OR operation. If, at search time, the logical product (using the AND operation) of this mask and a similarly constructed question mask is not equal to the question mask, then one or more question words are not present in the store item. An equality is in conclusive; the words of the store item must be unpacked and compared with question words. The present store is made up of over 600,000 subject index entries estimated to average 60 characters each. Longer texts, such as abstracts, could be handled by multiple masks. .A Hutton, F. C. .K peekaboo, superimposed coding, natural language searching text searching, information compaction, computer search technique .I 1701 .T Synchronous Signaling Rates for Data Transmission* (Proposed USA STandard) .I 1702 .T Commentary on Mr. Mooers' Paper .A Steel Jr., T. B. .I 1703 .T Accommodating Standards and Identification of Programming Languages .W The user public wants standardization and reliable identification of programming languages and related services. One way of achieving these goals illustrated by the methods adopted for TRAC T-64 interactive language, and its related family of languages. Oppressive rigidity usually associated with standardization is avoided by a new accommodation technique accessible to the user to allow local variations with the language. Explicit standardization of the language is undertaken at the organizational source of the language. Use of the organizational trademark (TRAC) on the published standards, and services relying upon them, provides a reliable public identification. These methods can be usefully applied to other programming languages and computer services. .A Mooers, C. N. .K standardization, programming languages, TRAC T-64 language, tranemark, public identification of programming languages, standards which accommodate .I 1704 .T Minimum Excess Cost Curve (ALgorithm 217 [H]) .A Muth, J. F. .K critical path scheduling, PERT, cost/time tradeoffs, network flows .I 1705 .T A Set of Basic Input-Output Procedures (Algorithm 335 [15]) .W By means of the primitives in symbol, outsymbol and length, as requested by this journal's Algorithms Policy [Comm. ACM 10 (Nov. 67), 729] a basic set of input-output procedures is defined aiming at quality and flexibility. Outreal, for instance, is written as a derived procedure; it outputs using the fixed point or the floating point representation, and rounds properly. Variants can easily be written because of the explicit call of the procedures decompose integer and decompose real. The highly recommended practice of echoing input is made easy with one subset of derived procedures (ioi, ior, iob, ioa). The documentation of output in the form of equivalent ALGOL statements is also provided when use is made of the subset oti, otr, otb, ota. The Berkeley style of providing information on the form of output using prior calls of procedures such as real format is defined. A use of the parameter outchannel to provide information for simultaneous output to several channels is suggested. Interrelationship between the declared procedures is furnished in tabular form. .A De Vogelaere, R. .K input output, transput, input output procedures, input echo, quality output, decompose integer, decompose real, style, Berkeley style, procedures relationship, output documentation, equivalent ALGOL statements, ALGOL, ALGOL 60, integer format, real format,out integer, read real, input output Boolean, input output array, fixed point representation, floating point representation, output channel interpretation .I 1706 .T CHAMP-Character Manipulation Procedures .W A new programming language facility for symbol manipulation is described. String procedures may be declared and called in a standard ALGOL context. ALGOL procedures can in turn be called by string procedures so that numeric and symbolic processes may conveniently be programmed together. Concatenation and a variant of SNOBOL's pattern matching make up a set of primitive commands. These are assembled together into conditional expressions which are to be used to provide alternative computational patterns. Arrays of strings are processed using quantifiers. The class of things which may be assigned to an identifier can be restricted by a procedure expressed in the notation. The language facilities have been implemented in the ALGOL compiler for the Burroughs B5500. .A Storm, E. F. .K symbol manipulation, string handling, character manipulation, conditional expressions, procedures, structure matching, recursive programming, quantifiers .I 1707 .T Generation of Positive Test Matrices with Known Positive Spectra .W Sufficient conditions are given for a real matrix to be similar to a positive matrix. This result is used to construct a similarity transformation which, when applied to a particular upper triangular matrix, yields a positive matrix with a preassigned positive spectrum. .A Hall, C. A. Porsching, T. A. .K test matrices, positive matrices, similarity transformation, positive eigenvalues .I 1708 .T A Note on the Efficiency of a LISP Computation in a Paged Machine .W The problem of the use of two levels of storage for programs is explored in the context of a LISP system which uses core memory as a buffer for a large virtual memory stored on a drum. Details of timing are given for one particular problem. .A Borrow, D. G. Murphy, D. L. .K storage management, list processor implementation, LISP, paging, secondary storage utilization, efficiency of paged computation .I 1709 .T A Modification of Efroymson's Technique for Stepwise Regression Analysis .W The computational technique conventionally used for stepwise multiple linear regression requires the storage of an n X n matrix of data. When the number of variables, n, is large, this requirement taxes the storage capacity of presently used machinery. The near symmetry of the matrices involved permits a modification requiring only half the storage and computations of the conventional algorithm and this additional storage allows the analysis of problems containing more variables. Alternatively, it permits the analysis of problems containing the same number of variables but with all computations performed in double precision. .A Breaux, H. J. .K multiple linear regression, statistical recurrence formulas, correlation, linear statistical models, statistical computer programs, curve fitting .I 1710 .T ASP-A Ring Implemented Associative Structure Package .W ASP is a general purpose Associative Data Structure Package in which an arbitrary number of data items and an arbitrary number of the relationships between these data items may be represented. A special picture language is described which has proved very useful for drawing ASP structures on paper. ASP structures are built and manipulated by means of a series of macro calls, which are outlined in the Appendix. Emphasis is on the philosophy of the system rather than a particular implementation, though sufficient information is included to enable the reader to produce his own implementation of ASP. .A Lang, C. A. Gray, J. C. .K associative, data structure, ring structure lists, list structure, set languages, modeling, graphics .I 1711 .T When Your Computer Needs a Lawyer .W Possible liability for negligence, for other torts (such as slander of credit) and for liability under theories of express or implied warranty (guarantees) are discussed, and legal complications are explained, so that users, operators, owners, and leasors of computers may be alerted to potential legal problems. Focus is also on trouble spots in contracting for data processing services, in automating record keeping operations, in deciding whether or not to automate certain operations, and in complying with statutes and regulation relating to record keeping. Information is given on patents, copyrights and trade secret protection for programs, and the problem of using copyrighted material in information storage and retrieval systems, including the pending copyright and patent revision bills. .A Banzhaf III, J. F. .K law, legal, lawyer, liability, torts, negligence, contracts, warrantees, guarantees, accounting, regulations, simulation, income tax, copyrights, patents, trade secrets, standard of care, slander of credit, crime, criminals, record keeping records, evidence, copying .I 1712 .T Recovery of Disk Contents After System Failure .W A method is discussed by which, after a system malfunction, the contents of disk files can be restored to their status at the time of the failure. .A Lockemann, P. C. Knutsen, W. D. .K data acquisitition, disk file organization, error recovery, file organization .I 1713 .T On Overcoming High-Priority Paralysis in Multiprogramming Systems: A Case His tory .W High-priority paralysis is the degradation that can occur in multiprogramming systems when scheduling is based primarily on preassigned priorities. It can be alleviated by modifying the scheduling algorithm to maximize the number of programs active at one time. The case his tory given in this paper indicates two general methods by which simultaneity can be increased. Possible refinements in the scheduling algorithm for future improvements are considered briefly. .A Stevens, D. F. .K multiprogram scheduling, dynamic priority assignment scheduling .I 1714 .T Procedure for the Normal Distribution (Algorithm 272 [S15]) .A MacLaren, M. D. .K normal distribution function, error function, normal function, normal curve integral .I 1715 .T Direct Search (Algorithm 178 [E4]) .A De Vogelaere, R. .K function minimization, search, direct search .I 1716 .T Normal Random Deviates (Algorithm 334 [G5]) .A Bell, J. R. .K normal deviates, normal distribution, random number, random number generator, simulation, probability distribution, frequency distribution, random .I 1717 .T Generating Prime Implicants Via Ternary Encoding and Decimal Arithmetic .W Decimal arithmetic, ternary encoding of cubes, and topological considerations are used in an algorithm to obtain the extremals and prime implicants of Boolean functions. The algorithm, which has been programmed in the FORTRAN language, generally requires less memory than other minimization procedures, and treats DON'T CARE terms in an efficient manner. .A Dietmeyer, D. L. Duley, J. R. .K prime implicants, extremal, switching function, minimization, cubical complexes, ternary encoding .I 1718 .T "Logical" Arithmetic on Computers with Two's Complement Binary Arithmetic .W Algorithms are presented for multiplication and division of unsigned integer operands in which the digits normally reserved for signs participate as significant arithmetic digits with positive weight. .A Ehrman, J. R. .K binary arithmetic, unsigned operand arithmetic, maximum significance arithmetic, full-precision arithmetic .I 1719 .T A Methodology for Calculating and Optimizing Real-Time System Performance .W The continually increasing size, complexity, number of types, and cost of data processing systems are causing serious re-examination within government and industry of the criteria for and methods of calculating and optimizing data processing system cost and performance. Real-time data processing systems as typified by the automated airline reservation system are discussed in this paper. Criteria for evaluating performance are described; a methodology for calculating and optimizing is outlined; and the method is illustrated by carrying out a portion of the performance calculation and the optimization of a drum-oriented message switching system. .A Stimler, S. Brons, K. A. .K real-time system analysis, real-time system design, real-time system performance criteria, real-time system cost performance ratio .I 1720 .T Master's Level Computer Science Curricula .W The results of a survey of the course work done by master's degree candidates at 25 US universities are presented, and some general comments concerning the emphasis of these programs are given. .A Elliott, R. W. .K surveys, education, computer science curricula .I 1721 .T Determination of the Intersection Points of Two Plane Curves by Means of Differential Equations .W A new method is proposed to calculate the intersection points of two plane curves. The theory of singular points off a system of two differential equations is used in developing the method. The intersection point to be determined is identified with such a singular point and appropriate modifications are applied to the system to ensure that the singular point be stable, i.e. all integrals which start in the neighborhood of the singular point will always approach this point if the integral parameter tends to infinity. In addition a method is described for systematically searching for all intersection points in a prescribed rectangular area. .A Kuiken, H. K. .K plane curves, intersection points, intersections plane curves, integration, differential equations, matrix iteration, singular points, nonlinear differential equations, eigenvalues, complex roots, roots, stationary points, Runge Kutta, stable singularity, unstable singularity .I 1722 .T Methods of Convergence Improvement for Some Improper Integrals .W In the numerical integration of an improper integral of the first kind, it is customary to truncate the integral when the change yielded by the last iteration is less than some predetermined constant. The efficiency of such integration schemes can often be improved by use of recent advances in the theory of nonlinear transformations; however, for several important integrals, e.g. integrals whose integrands are rational polynomials, these transformations fail to yield much improvement. In this paper, several methods of convergence improvement are developed which greatly improve convergence of some improper integrals, including the integrals of rational polynomials. .A McWilliams, G. V. Thompson, R. W. .K approximation, nonlinear, improper integral, convergence improvement, numerical integration, rational polynomials, truncation .I 1723 .T Computer Construction of Project Networks .W Project networks are used in PERT and CPM. An algorithm is given for constructing project networks directly from the project precedence relations. The algorithm creates "dummy" activities and topologically orders the arcs and nodes. The number of nodes created is minimal for the given precedence relations. It has been experimentally programmed in FORTRAN II for the IBM 7094. .A Fisher, A. C. Liebman, J. S. Nemhauser, G. L. .K project networks, PERT, CPM, topological ordering, network construction by computer .I 1724 .T A Generalized Partial Pass Block Sort .W The design of a partial pass block sort with arbitrary range of key and number of work files is described. The design is a generalization of the Partial Pass Column Sort by Ashenhurst and the Amphisbaenic Sort by Nagler. The power of the sort is tabulated for various sizes of input file and number of work files. consideration is given to the problem of combining a block sort with internal sorts, and to the best use of direct access storage devices. .A Bayes, A. .K block sort, partial pass sort, direct access devices, column sort, chaining, reverse chaining, sort, amphisbaenic .I 1725 .T A Simple Proof of Lewin's Ordered-Retrieval Theorem for Associative Memories .W An efficient method of ordered retrieval of binary words from an associative memory, as described by Lewin, is based on the use of special readout circuits which indicate the digit values present in the individual digit columns of the memory. Thus the circuits indicate whether the individual digit columns contain digits of both values, or of only one value, or contain no digits at all (i.e. that the memory is empty). The use of these circuits, which in this paper are termed column value indicators, reduces considerably the number of memory accesses necessary to retrieve in order a number of distinct words from the memory. Lewin proves that, for the readout by the described method of m distinct binary words, 2m - 1 memory accesses are necessary. (Thus he proves that the number of necessary memory accesses of his method, unlike those of other methods, is independent of the word length.) In this paper a very simple proof of this theorem derived from some elementary aspects of the structure of sets of binary numbers is presented. .A Wolinsky, A. .K associative memories, content-addressed memories, ordered lists, ordered information retrieval, ordered retrieval theorem, column digit values, digit value variety, column sensing arrangement, digit value readout, digit variety readout, memory access, memory access frequency, ordered retrieval efficiency, access frequency proof, retrieval theorem proof .I 1726 .T Preliminary Investigation of Techniques for Automated Reading of Unformatted Text .W Methods for converting unstructured printed material into computer code are experimentally investigated. An operator-controlled mode, depending on human demarcation of the various regions of the page for guiding the scanner, is implemented by means of a joystick and a CRT display. This mode, for which some performance figures are obtained, is thought to be suitable for processing very complicated material, such as technical journals. For simpler material, for instance the "claims" sections of patents, and in applications where the utmost accuracy is not necessary, an unsupervised mode is advocated. Here, the textual portions of the page are located during a rapid prescan by a rudimentary form of frequency analysis. These areas are then rescanned at a higher resolution suitable for character recognition. Error rates of the order of 0.1 percent are obtained in a simple problem involving photographs of telephone company meter boards. Other matters related to the design of a general purpose page reader, such as the segmentation of printed text, the possibility of time-sharing the scanner, interactive man-machine operation, and the facsimile reproduction of illustrations, are discussed. .A Nagy, G. .K pattern recognition, character recognition, text reading, information retrieval, unformatted text operator-controlled reader, online reader, text-image discrimination, reading machine .I 1727 .T One Way of Estimating Frequencies of Jumps in a Program .W For the segmentation of a program it is useful to have a reasonable estimation of the values of S(ij), where S(ij) is the mean value of the number of jumps from the i-th instruction on to the j-th instruction in the run time. In the cases where the S(ij) are estimated directly, the structure of the whole program must be generally taken into account; therefore it is very difficult for the programmer and/or the translator to obtain a good estimation of the S(ij). It is easier to estimate not S(ij) but the quantities P(ij)=S(ij)*C(i)/SUM[S(ij), j=1,N], where C(i) is an arbitrary positive constant for each i. Although the P(ij) are, for each i, proportional to S(ij), the estimation of P(ij) is easier, because we must estimate only the "probabilities" of events where instruction i is executed after instruction I(i). This estimation can often be done without considering the structure of the whole program. In the first part of the paper, using the theory of the Markov chains, an algorithm for the computation of the S(ij) from the P(ij) is found, and some ways of obtaining estimates of the P(ij) are given. In the second part a variant of this algorithm is derived, avoiding the necessity of computation involving large matrices. .A Kral, J. .K object program reduction, supervisor calls decreasing, jump frequencies estimation, control transfers estimation, optimal program segmentation, Markov chain program correspondence, program graph, one-entry subgraph, locally estimated jump frequencies, supervisor overhead decreasing, program segmentation algorithm, jump frequencies, program segmentation problem .I 1728 .T Further Experimental Data on the Behavior of Programs in a Paging Environment .W Results are summarized from an empirical study directed at the measurement of program operating behavior in those multiprogramming systems in which programs are organized into fixed length pages. The data collected from the interpretive execution of a number of paged programs are used to describe the frequency of page faults, i.e. the frequency of those instants at which an executing program requires a page of data or instructions not in main (core) memory. These data are used also for the evaluation of page replacement algorithms and for assessing the effects on performance of changes in the amount of storage allocated to executing programs. .A Coffman, E. G. Varian, L. C. .K paging systems, paging, dynamic program behavior, program behavior, virtual memory systems, single-level storage, one-level storage, operating system simulation, operating systems, supervisor simulation, machine language program interpretation .I 1729 .T Minit Algorithm for Linear Programming (Algorithm 333 [H]) .A Salazar, R. C. Sen, S.K. .K linear programming, dual simplex method, primal problem, dual problem .I 1730 .T Jacobi Polynomials (Algorithm 332 [S22]) .A Witte, B. F. W. .K Jacobi polynomials, orthogonal polynomials, three-term recurrences, special functions .I 1731 .T Gaussian Quadrature Formulas (Algorithm 331 [D1]) .A Gautschi, W. .K quadrature, Gaussian quadrature, numerical integration, weight function, orthogonal polynomials .I 1732 .T Factorial Analysis of Variance (Algorithm 330 [G1]) .A Oliver,I. .K factorial variance analysis, variance, statistical analysis .I 1733 .T Distribution of Indistinguishable Objects into Distinguishable slots (Algorithm [G6]) .A Fenichel, R. R. .K object distributions, combinations, distribution numbers .I 1734 .T Chebyshev Solution to an Overdetermined Linear System (Algorithm 328 [F4]) .A Bartels, R. H. Goulub, H. G. .K Chebyshev solutions, overdetermined linear systems, linear equations, exchange algorithm .I 1735 .T A Futures Market in Computer time .W An auction method is described for allocating computer time that allows the price of computer time to fluctuate with the demand and the relative priority of users to be controlled so that more important projects get better access. This auction is free of the periodic fluctuation in computer use often associated with monthly time allocation schemes. .A Sutherland, I. E. .K computer scheduling, auction, time allocation, operating efficiency .I 1736 .T Heading Format for Data Transmission (A USAAI Tutorial -- Standards) .K data transmission heading format, heading format, message format, data transmission, message headings .I 1737 .T A Global Parser for Context-Free Phrase Structure Grammars .A Unger, S. H. .I 1738 .T Writing an Outline Debugging Program for the Experienced User .W Presently available online debugging routines are often unsatisfactory for the experienced user because they require unnecessarily rigid and complicated typing formats, make it difficult for the user to correct typing errors, and consume excessive memory with intricate features. In a debugging program it is of prime importance that the program be simple, flexible, and highly efficient to use. Communication between the user and the debugging program can be improved by using certain techniques applicable to most online debugging programs. These techniques are presented and are illustrated by their use in OPAK (octal package), a debugging program coded for the PDP-5/8 and the SDS-930. The compromise between economy of utility program core storage and incorporation of elegant debugging features is discussed. .A Brady, P. T. .K debugging, utility program, programming languages .I 1739 .T Regular Expression Search Algorithm .W A method for locating specific character strings embedded in character text is described and an implementation of this method in the form of a compiler is discussed. The compiler accepts a regular expression as source language and produces an IBM 7094 program as object language. The object program then accepts the text to be searched as input and produces a signal every time an embedded string in the text matches the given regular expression. Examples, problems, and solution are also presented. .A Thompson, K. .K search, match, regular expression .I 1740 .T An Inexpensive Braille Terminal Device .W The active use of time-shared facilities for blind programmers requires a braille terminal system. Details are given for the construction of a brailler from a model 33 teletype by modifying the print head and increasing the resiliency of the platen. A description of the programming needed to drive the brailler is presented. .A Anderson, G. B. Rogers, D. W. .K blind communication, blind programming aid, braille, braille computer communication, braille output, braille teletype, braille terminal, braille type head, embosser, tactile computer communication, tactile teletype, tactile terminal .I 1741 .T BRAD: The Brookhaven Raster Display .W A multiconsole computer display system has been designed that provides very rich displays at low unit cost. Each BRAD (Brookhaven Raster Display) console can plot tens of thousands of points, or up to 4000 characters at 30 frames per second. After an initial display system investment of $50,000 each display, with teletype, costs less than $3,000. The technique employed is that of programmatically generating a binary image of the desired display in a computer. The image is written on a rotating drum memory. Independent read heads continuously display the picture, which is generated by swept horizontal lines. A standard TV monitor serves as the display device. The technique has two drawbacks. A computer must compute any image to be displayed. Also, the "pointing" interaction is more difficult. This is because the pointing function gives only the coordinates of the point on the screen. The inverse of the map generation process is required to calculate the coordinates of the point on the screen. The inverse of the map generation process is required to calculate the coordinates at the selected point in the input space. .A Ophir, D. Rankowitz, S. Shepherd, B. J. Spinrad, R. J. .K computer display, computer graphics, computer raster display, TV display console, digital TV display, swept raster computer display, swept raster TV computer display, TV graphics terminal, multiconsole computer graphics, inexpensive graphic terminal .I 1742 .T On the Design of Display Processors .W The flexibility and power needed in the data channel for a computer display are considered. To work efficiently, such a channel must have a sufficient number of instructions that it is best understood as a small processor rather than a powerful channel. As it was found that successive improvements to the display processor design lie on a circular path, by making improvements one can return to the original simple design plus one new general purpose computer for each trip around. The degree of physical separation between display and parent computer is a key factor in display processor design. .A Myer, T. H. .K display processor design, display system, computer graphics, graphic terminal, displays, graphics, display generator, display channel, display programming, graphical interaction, remote displays .I 1743 .T Reliable Full-Duplex file Transmission over Half-Duplex Telephone Lines .W A field-proven scheme for achieving reliable duplex transmission over a half-duplex communication line is presented, and to demonstrate the difficulty of the problem, another similar scheme, which is only slightly unreliable, is also presented. A flowchart for the reliable scheme and some interesting examples are given. .A Lynch, W. C. .K telephone communication, half duplex, transmission, error correction, full duplex, telephone errors .I 1744 .T Stable Numerical Methods for Obtaining the Chebyshev Solution to an Overdetermined System of Equations .W An implementation of Stiefel's exchange algorithm for determining a Chebyshev solution to an overdetermined system of linear equations is presented, that uses Gaussian LU decomposition with row interchanges. The implementation is computationally more stable than those usually given in the literature. A generalization of Stiefel's algorithm is developed which permits the occasional exchange of two equations simultaneously. .A Bartels, R. H. Golub, G. H. .K Chebyshev solutions, overdetermined linear systems, linear equations,exchange algorithm .I 1745 .T A Position Paper on Computing and Communications .W The effective operation of free enterprise in creating the envisioned information service industry is dependent upon three accomplishments: (1) the restructuring of our information processing industry so that a clear division of costs is made among computing, communications, and the development of information services; (2) the wide use of multiaccess system concepts so that information services may share in the use of computer installations and so that the cost of their construction is reasonable; and (3) the development of public, message-switched communications services so that adequate provisions are made for information security. .A Dennis, J. B. .K information networks, information systems, computing and free enterprise, computing economics, computer installation management, government regulation, communications services, distributed data base, program leasing .I 1746 .T Protection in an Information Processing Utility .W One of the critical problems in the design of an information processing utility that permits flexible sharing of user information is privacy. One solution for this problem is discussed. .A Graham, R.M. .K protection, privacy, information processing utility, time-sharing, multi-user, multiprogramming, multiprocessing, security, shared information, controlled access, reliable operation, segmentation .I 1747 .T Three Criteria for Designing Computing Systems to Facilitate Debugging .W The designer of a computing system should adopt explicit criteria for accepting or rejecting proposed system features. Three possible criteria of this kind are input recordability, input specifiability, and asynchronous reproducibility of output. These criteria imply that a user can, if he desires, either know or control all the influences affecting the content and extent of his computer's output. To define the scope of the criteria, the notion of an abstract machine of a programming language and the notion of a virtual computer are explained. Examples of applications of the criteria concern the reading of a time-of-day clock, the synchronization of parallel processes, protection in multiprogrammed systems, and the assignment of capability indexes. .A Van Horn, E. C. .K computer design, computer design criteria, computer systems, computer systems design, input equipment, input equipment design, operating systems, operating systems design, multiprogramming, multiprogrammed systems, multiprogrammed system design, virtual computers, programming languages, programming language design, program semantics, programming language semantics, determinism, reproducibility, repeatability, deterministic computers, protection, memory protection, information security, information privacy, computing reliability, debugging, program debugging, program testing, parallel processing, parallel programming, multiprocessing .I 1748 .T A Scheduling Philosophy for Multiprocessing Systems .W A collection of basic ideas is presented, which have been evolved by various workers over the past four years to provide a suitable framework for the design and analysis of multiprocessing systems. The notions of process and state vector are discussed, and the nature of basic operations on processes is considered. Some of the connections between processes and protection are analyzed. A very general approach to priority-oriented scheduling is described, and its relationship to conventional interrupt systems is explained. Some aspects of time-oriented scheduling are considered. The implementation of the scheduling mechanism is analyzed in detail and the feasibility of embodying it in hardware established. Finally, several methods for interlocking the execution of independent processes are presented and compared. .A Lampson, B. W. .K time-sharing, multiprocessing, process, scheduling, interlocks, protection, priority, interrupt systems .I 1749 .T The Structure of the "THE"-Multiprogramming System .W A multiprogramming system is described in which all activities are divided over a number of sequential processes. These sequential processes are placed at various hierarchical levels, in each of which one or more independent abstractions have been implemented. The hierarchical structure proved to be vital for the verification of the logical soundness of the design and the correctness of its implementation. .A Dijkstra, E. W. .K operating system, multiprogramming system, system hierarchy, system structure, real-time debugging, program verification, synchronizing primitives, cooperating sequential processes, system levels, input-output buffering, multiprogramming, processor sharing, multiprocessing .I 1750 .T Considerations in the Design of a Multiple Computer System with Extended Core Storage .W The use of large quantities of addressable (but not executable) fast random access memory to heighten the multiprogramming performance of a multicomputer system is discussed. The general design of the hardware arrangement and the software components and functions of such a system are based on a planned configuration of dual CDC 6600's that share one million words of extended core storage. In the generalization of such a design, special emphasis is placed on estimating expected gains when compared with the traditional configuration of separate and independent computers without extended core storage. An observation is made on the use of conventional, slower speed, random access storage devices in place of the faster memory. .A Fuchel, K. Heller, S. .K multiple computer systems, extended core storage, multiprogrammed operating systems, multiprocessor operating systems, control data corporation 6600, operating system with ECS .I 1751 .T The Working Set Model for Program Behavior .W Probably the most basic reason behind the absence of a general treatment of resource allocation in modern computer systems is an adequate model for program behavior. In this paper a new model, the "working set model," is developed. The working set of pages associated with a process, defined to be the collection of its most recently used pages, provides knowledge vital to the dynamic management of paged memories. "Process" and "working set" are shown to be manifestations of the same ongoing computational activity; then "processor demand" and "memory demand" are defined; and resource allocation is formulated as the problem of balancing demands against available equipment. .A Denning, P. J. .K general operating system concepts, multiprocessing, multiprogramming, operating systems, program behavior, program models, resource allocation, scheduling, storage allocation .I 1752 .T Resource Management for a Medium Scale Time-Sharing Operating system .W Task scheduling and resource balancing for a medium size virtual memory paging machine are discussed in relation to a combined batch processing and time-sharing environment. A synopsis is given of the task scheduling and paging algorithms that were implemented, and the results of comparative simulation are given by tracing the development of the algorithms through six predecessor versions. Throughout the discussion particular emphasis is placed on balancing the system performance relative to the characteristics of all the system resources. Simulation results relative to alternate hardware characteristics and the effects of program mix and loading variations are also presented. .A Oppenheimer, G. Weizer, N. .K time-sharing, operating systems, resource management, task scheduling, paging, system simulation, memory management, virtual memories .I 1753 .T Virtual Memory, Processes, and Sharing in MULTICS .W Some basic concepts involved in the design of the MULTICS operating system are introduced. MULTICS concepts of processes, address space, and virtual memory are defined and the use of paging and segmentation is explained. The means by which users may share procedures and data is discussed and the mechanism by which symbolic references are dynamically transformed into virtual machine addresses is described in detail. .A Daley, R. C. Dennis, J. B. .K virtual memory, information sharing, shared procedures, data sharing, dynamic linking, segmentation, paging, multiprogramming, storage management, storage hierarchies, file maintenance .I 1754 .T Dynamic Storage Allocation Systems .W In many recent computer system designs, hardware facilities have been provided for easing the problems of storage allocation. A method of characterizing dynamic storage allocation systems-according to the functional capabilities provided and the underlying techniques used-is presented. The basic purpose of the paper is to provide a useful perspective from which the utility of various hardware facilities may be assessed. A brief survey of storage allocation facilities in several representative computer systems is included as an appendix. .A Randell, B. Kuehner, C. J. .K segmentation, paging, multiprogramming, storage allocation, storage management, virtual memories, storage fragmentation, storage hierarchies, addressing mechanisms .I 1755 .T Proceedings of the ACM Symposium on Operating system Principles .A ACM Special Interest Committee .I 1756 .T Hollerith Punched Card Code* (Proposed USA Standard) .K USA Standard, card code, punched card, punched card code, hole-patterns, hole-patterns assignment, punched card systems .I 1757 .T Data Code for Calendar Date for Machine-to-Machine Data Interchange* (Proposed USA Standard) .K USA Standard, data code, calendar date, machine-to-machine data interchange, recording calendar date, data group identifier .I 1758 .T Symmetric Polynomials, (Algorithm 305 [C1]) .A McKay, S. .K symmetric polynomials, symmetric sum, unitary symmetric functions, Schur functions .I 1759 .T Transportation Problem (Algorithm 293 [H]) .A Bayer, G. .K transportation problem, linear programming .I 1760 .T Normal Curve Integral (Algorithm 304 [S15]) .A Bergson, A. .K normal curve integral, probability, special functions .I 1761 .T Chi-Squared Integral (Algorithm 299 [S15]) .A O'Brien, W. M. Wood, J. .K chi-squared integral, probability, special functions .I 1762 .T Dilogarithm (Algorithm 327 [S22]) .A Kolbig, K. S. .K dilogarithm function, special functions .I 1763 .T Roots of Low-Order Polynomial Equations (Algorithm 326 [C2]) .A Nonweiler, T. F. .K root finders, polynomial equation roots, quadratic equation roots, cubic equation roots, biquadratic equation roots, polynomial zeros .I 1764 .T Panel Discussion on Computer Appreciation .W Session 19 of the ACM 20 th Anniversary Conference on August 31, 1967, was entitled Education, Design Experiments, and Computer Appreciation. Its second half consisted of a panel discussion on computer appreciation, organized and chaired by Elliot I. Organick. The four panelists were Charles H. Davidson, Bernard A. Galler, Richard, W. Hamming, and Alan J. Perlis. After making prepared statements, the panelists were joined in discussion by Andries van Dam and Arthur B.Kohn, who had presented papers in the first half. This is a transcript of the panel discussion, condensed by Dr. Organick and edited by him and the panelists. Some remarks referred to papers by van Dam and Kahn or to the discussion during the first half of the session. Pertinent papers are included in the references. .A Organick, E. I. .K computer appreciation, students' liberal arts courses, survey courses, beginning programming, course content, computer courses dropout rates, college versus precollege, teaching and social responsibility .I 1765 .T Expenditures, Sources of Funds, and Utilization of Digital Computers for Research and Instruction in Higher Education: 1964-65 with Projections for 1968-69 .W The Southern Regional Education Board published a complete report on a survey it conducted to determine the funding and characterize the utilization of computers used for research and instruction in institutions of higher education in the United States. The sampling survey is described and the estimates for this total population are presented. .A Hamblen, J. W. .K computing centers, research, instruction, utilization, expenditures, support, sources of funds, higher education, post secondary education, colleges, universities .I 1766 .T Quasilinearization and the Estimation of Differential Operators from Eigenvalues .W Given a linear ordinary differential operator containing several unknown constants and a number of its eigenvalues, the values of the unknown constants are estimated. A precise formulation is provided, and an effective numerical procedure for solution is indicated. The results of some computational experiments are given. .A Bellman, R. E. Kagiwada, H. H. Kalaba, R. E. Vasudenvan, R. .K quasilinearization, eigenvalues, differential operators, nonlinear boundary-value problems, inverse problems,differential equations, system identification .I 1767 .T A General Purpose Graphic Language .W Interactive use of computers with graphic terminals will permit many new problems to be solved using machines. In order to handle a variety of applications, it is expedient to develop a general purpose graphic language that is useful on a number of graphic devices. A system has been designed to produce such a language quickly and cheaply. A model graphic language which has been developed with the system is presented. .A Kulsrud, H. E. .K graphic language, interactive, incremental compilation, language design, metacompiler, syntax specified language .I 1768 .T A Global Parser for Context-Free Phrase Structure Grammars .W An algorithm for analyzing any context-free phrase structure grammar and for generating a program which can then parse any sentence in the language (or indicate that the given sentence is invalid) is described. The parser is of the "top-to-bottom" type and is recursive . A number of heuristic procedures whose purpose is to shorten the basic algorithm by quickly ascertaining that certain substrings of the input sentence cannot correspond to the target nonterminal symbols are included. Both the generating algorithm and the parser have been implemented in RCA SNOBOL and have been tested successfully on a number of artificial grammars and on a subset of ALGOL. A number of the routines for extracting data about a grammar, such as minimum lengths of N-derivable strings and possible prefixes, are given and may be of interest apart from their application in this particular context. .A Unger, S. H. .K parser, syntax-directed compiler, context-free grammars, syntactic analysis, translators .I 1769 .T The Expanding World of Computers .W The onward sweep of automatic processing of information is impeded by nine principal barriers: geography, cost, problem complexity, man-machine communication, inadequate sensors, lack of understanding, distance, time, and size. The main incentive for breaching these barriers is the universal need for processing information, ever more urgent as the greater part of human work activity changes from production to service. Computer developments in hardware, programming, time-sharing, education, data communication, and displays are judged by how effectively they remove these barriers, and their barrier-smashing potentialities indicate continued rapid expansion. Problem-oriented languages are particularly effective over the entire front. Online computers and time-sharing also rate high by this measure. Education and increased understanding are basic to all progress with the computer. This complex but powerful tool is the most important one available to governments and scientists to use in studying the problems being created by the population explosion, and in analyzing possible solutions. .A Harder, E. L. .K barriers, philosophy, developments, computer-aided design, problem-oriented languages, data communication, education, computer science, forecast, survey, introduction .I 1770 .T Rules of Ethics in Information Processing .W The background and motivation for the adoption by the ACM Council on November 11, 1966, of a set of Guidelines for Professional Conduct in Information Processing are described. A brief his tory is given of ethical codes in other professions. Some reasons for and against adoption of ethical rules are considered, and several sections of the ACM Guidelines are analyzed. The purpose is to inform about this important aspect of our profession, as well as to stimulate thought and interest. .A Parker, D. B. .K ethics, professional conduct, code of ethics, ACM guidelines, professionalism, professional societies, unethical conduct .I 1771 .T CURRICULUM 68 -- Recommendations for Academic Programs in Computer Science -- A Report of the ACM Curriculum Committee on Computer science .W This report contains recommendations on academic programs in computer science which were developed by the ACM Curriculum Committee on Computer Science. A classification of the subject areas contained in computer science is presented and twenty-two courses in these areas are described. Prerequisites, catalog descriptions, detailed outlines, and annotated bibliographies for these courses are included. Specific recommendations which have evolved from the Committee's 1965 Preliminary Recommendations are given for undergraduate programs. Graduate programs in computer science are discussed and some recommendations are presented for the development of master's degree programs. Ways of developing guidelines for doctoral programs are discussed, but no specific recommendations are made. The importance of service courses, minors, and continuing education in computer science is emphasized. Attention is given to the organization, staff requirements, computer resources, and other facilities needed to implement computer science educational programs. .K computer science courses, computer science curriculum, computer science education, computer science academic programs, computer science graduate programs, computer science undergraduate programs, computer science course bibliographies .I 1772 .T USASCSOCR Dual Case Keyboard Arrangement* (Proposed USA Standard) .I 1773 .T General Purpose Alphanumeric Keyboard Arrangement for Information Interchange* (Proposed USA Standard) .I 1774 .T Program Overlay Techniques .W The general features of program overlay systems are described. Three main types -- automatic, semiautomatic and nonautomatic -- are classified, and the programming techniques are explained as a function of machine hardware and other system features. The implementation of semiautomatic overlay facility in a multiprogrammed system on the CDC 6600 is described in detail, with special reference to real time applications. .A Pankhurst, R. J. .K loaders, multiprogramming, overlay techniques, storage allocation and segmentation .I 1775 .T Adjustment of the Inverse of a Symmetric Matrix when Two Symmetric Elements are Changed (Algorithm 325 [F1]) .A Zielke, G. .K symmetric matrix, matrix inverse, matrix perturbation, matrix modification .I 1776 .T Maxflow (Algorithm 324 [H]) .A Bayer, G. .K network,liner programming, maximum flow .I 1777 .T Generation of Permutations in Lexicographic Order (Algorithm 323 [G6]) .A Ord-Smith, R. J. .K permutations, lexicographic order, lexicographic generation, permutation generation .I 1778 .T F-Distribution (Algorithm 322 [S14]) .A Dorrer, E. .K Fisher's F-distribution, Student's t-distribution .I 1779 .T t-Test Probabilities (Algorithm [S14]) .A Morris, J. .K T-test, Student's t-statistic, distribution function .I 1780 .T Harmonic Analysis for Symmetrically Distributed Data (Algorithm 320 [C6]) .A Hunter, D. B. .K harmonic analysis, cosine series, sine series, function approximation, curve fitting, trigonometric series .I 1781 .T Translator Writing systems .W A critical review of recent efforts to automate the writing of translators of programming languages is presented. The formal study of syntax and its application to translator writing are discussed in Section II. Various approaches to automating the post syntactic (semantic) aspects of translator writing are discussed in Section III, and several related topics in Section IV. .A Feldman, J. Gries, D. .K compiler, compiler-compiler, translator, translator writing systems, metacompiler, syntax, semantics, syntax-directed, meta-assembler, macroprocessor, parser, syntactic analysis, generator .I 1782 .T A Numerical Integration Formula Useful in Fourier Analysis .W A numerical integration formula is presented which uses unequal sampling intervals. The intervals are equally spaced on a log scale. Such a formulation is useful in Fourier analysis to improve accuracy and ease of usage. A complete set of formulas for numerical Fourier analysis is given. .A Meisel, W. S. .K numerical integration, Fourier analysis, integration .I 1783 .T In-and-Out Conversions .W Byan in-and-out conversion we mean that a floating-point number in one base is converted into a floating-point number in another base and then converted back to a floating-point number in the original base. For all combinations of rounding and truncation conversions the question is considered of how many significant digits are needed in the intermediate base to allow such in-and-out conversions to return the original number (when possible), or at least significant digit. .A Matula, D. W. .K floating-point numbers, significance, base conversion, rounding, truncation .I 1784 .T Practical Error Coefficients for Estimating Quadrature Errors for Analytic Functions .W All published error coefficients for estimating quadrature errors for analytic functions were computed on the assumption that the quadrature rule was exact for polynomials up to a given degree. Since these rules use rounded values for the abscissas and weights and since the true values of the integrals of some of the polynomials in question have an infinite binary expression, the quadrature rule is not exact. Hence these errors must be taken into consideration in computing practical error coefficients. .A Rabinowitz, P. .K numerical integration, quadrature, truncation error, theoretical error coefficients, practical error coefficients, integration analytical functions, roundoff error .I 1785 .T Scatter Storage Techniques .W Scatter storage techniques as a method for implementing the symbol tables of assemblers and compilers are reviewed and a number of ways of using them more effectively are presented. Many of the most useful variants of the techniques are documented. .A Morris, R. .K scatter storage, hash addressing, searching, file searching, file addressing, storage layout .I 1786 .T An Improved Hash Code for Scatter Storage .W Introduced is a hash coding method based on fixed-point division rather than multiplication or logical operations. This new method allows the hash table to have almost any length. Also a new method of handling collisions is discussed. Known as quadratic search, this method is faster than random search and free from the "clusters" that build up with a linear search. .A Maurer, W. D. .K hash code, hash table, scatter storage, searching .I 1787 .T Use of Transition Matrices in Compiling .W An algorithms is described which constructs from a suitable BNF grammar an efficient left-right recognizer for sentences of the corresponding language. The type of recognizer, used in a number of compilers, operates with a pushdown stack and with a transition matrix. Two examples illustrate how such recognizers may be used effectively for other purposes besides the usual syntax checking. .A Gries, D. .K transition matrices, compilation, translation, grammar, context-free language, formal language, parsing .I 1788 .T Toward a General Processor for Programming Languages .W Many efforts have been made to develop a better way of implementing a higher level programming language than by the construction of a whole new compiler, but so far none has proved generally satisfactory. In this paper, it is contended that a programming language is best described functionally as a body of macro instructions, and that the macro call constitutes a canonical form in terms of which a programming notation may be described. A supporting discussion of the logical and his torical role of the macro instruction is presented. Also discussed are the conflict between machine independence and object program efficiency, and the question of where the greatest difficulties lie in compiler construction. .A Halpern, M. J. .K programming language translator, programming language processor, general translator, general processor, macro instruction processor; meta processor, meta language translator, meta language processor, compiler-compiler, writing system, translator writing system .I 1789 .T Logarithm of Gamma Function (Algorithm 291 [S14]) .A Hoare, M. R. .I 1790 .T Muller's Method for Finding roots of an Arbitrary Function (Algorithm 196 [C5]) .A Whitley, V. W. .K equation roots, function zeros .I 1791 .T Triangular Factors of Modified Matrices (Algorithm 319 [F1]) .A Green, D. R. .K matrix decomposition, matrix factors, matrix modifier, matrix perturbation .I 1792 .T Exploratory Experimental Studies Comparing Online and Off line Programming Performance .W Two exploratory experiments were conducted at System Development Corporation to compare debugging performance of programmers working under conditions of on-line and off line access to a computer. These are the first known studies that measure programmers' performance under controlled conditions for standard tasks. Statistically significant results of both experiments indicated faster debugging under online conditions, but perhaps the most important practical finding involves the striking individual differences in programmer performance. Methodological problems encountered in designing and conducting these experiments are described; limitations of the findings are pointed out; hypotheses are presented to account for results; and suggestions are made for further research. .A Sackman, H. Erikson, W. J. Grant, E. E. .K online vs. off line performance, programmer/computer communication, programming experimental-empirical studies, programming cost effectiveness, programming performance, debugging effectiveness, time sharing vs. batch processing, factor analysis application, programmer trainee performance, basic programming knowledge test, experienced programmer study, analysis of variance, programmer individual differences .I 1793 .T Presentation of Alphameric Characters for Information Processing* (Proposed American National Standard) .K alphameric, handwritten input, encoding transcription, numerals, upper case, hand printed .I 1794 .T A Fast Random Number Generator for IBM 360 .A Seraphin, D. S. .K pseudorandom number, modulus, period, float, normalization, characteristic, chi-square test .I 1795 .T Optimal Code for Serial and Parallel Computation .A Fateman, R. J. .K code optimization, sequencing of operations, detection of common subexpressions .I 1796 .T Index by Subject to Algorithms, 1969 .K This 1969 index is the first supplement to the Index by Subject to Algorithms, 1960 1968 (Comm. ACM 11, 12 (Dec. 1968), 827 830). .I 1797 .T Solution of Linear programs in 0-1 (Algorithm 341 [H]) .A Proll, L. G. .K linear programming, zero-one variables, partial enumeration .I 1798 .T Coulomb Wave Functions (Algorithm 300 [S22]) .A Kolbig, K. S. .K Coulomb wave functions, wave functions, special functions, function evaluation .I 1799 .T Elementary Functions by Continued Fractions (Algorithm 229 [B1]) .A Bray, T. A. .K continued factions, Pade table .I 1800 .T PSIF (Algorithm 147 [S14]) .A Parsons, R. G. .K gamma function, logarithmic derivative, factorial function, psi function .I 1801 .T Analysis of Variance for Balanced Experiments (Algorithm 367 [G2]) .A Claringbold, P. J. .K analysis of variance, analysis of covariance, regression analysis, experimental design, balanced experiment, missing data, interblock estimate, intra block estimate .I 1802 .T Regression Using Certain Direct Product Matrices (Algorithm 366 [G2]) .A Claringbold, P. J. .K analysis of variance, analysis of covariance, regression analysis, experimental design, matrix direct product, protection operator, orthogonal matrix .I 1803 .T Complex Root Finding (Algorithm 365 [C5]) .A Bach, H. .K downhill method, complex relaxation method, complex iteration, complex equation, transcendental complex equation, algebraic complex equation .I 1804 .T Coloring Polygonal Regions (Algorithm 364 [Z]) .A Herriot, R. G. .K coloring polygonal regions, coloring planar surfaces, drawing pictures, shading enclosed regions .I 1805 .T Productivity of Multiprogrammed Computers-Progress in Developing an Analytic Prediction Method .W Multiprogramming as it is discussed here is a mode of computer operation in which two or more programs are concurrently in processor memory and proceeding, each using the same central processor unit (CPU) and input-output (I/O) channels. These programs are actually proceeding intermittently and singly, according to eligibility (readiness to proceed) and priority. It is useful to be able to represent them as proceeding continuously and simultaneously, each at an effective rate, which may be a fraction of that which it would enjoy in the absence of the other programs. The effective progress rate of each program is sensitive to many detailed characteristics of itself and its co-residents and simulation has been the best available method of predicting it. This paper presents the results of progress in developing an alternative to simulation, a simulation-tested iterative computation of these rates under certain situations. The algorithm is sensitive to most of the factors that control the phenomenon, including nonquantitative or topological features of the programs' structures. .A Lasser, D. J. .K productivity, prediction, multiprogramming, simulation, equipment evaluation, hardware, evaluation, monitor, operating system, system software, supervisors, performance, time sharing, time slicing .I 1806 .T On the Downhill Method .W The downhill method is a numerical method for solving complex equations f(z) = 0 on which the only restriction is that the function w = f(z) must be analytical. An introduction to this method is given and a critical review of relating literature is presented. Although in theory the method always converges, it is shown that a fundamental dilemma exists which may cause a breakdown in practical applications. To avoid this difficulty and to improve the rate of convergence toward a root, some modifications of the original method are proposed and a program (FORTRAN) based on the modified method is given in Algorithm 365. Some numerical examples are included. .A Bach, H. .K downhill method, complex relaxation method, complex iteration, complex equation, transcendental complex equation, algebraic complex equation .I 1807 .T Optimization of Expressions in Fortran .W A method of optimizing the computation of arithmetic and indexing expressions of a Fortran program is presented. The method is based on a linear analysis of the definition points of the variables and the branching and DO loop structure of the program. The objectives of the processing are (1) to eliminate redundant calculations when references are made to common subexpression values, (2) to remove invariant calculations from DO loops, (3) to efficiently compute subscripts containing DO iteration variables, and (4) to provide efficient index register usage. The method presented requires at least a three-pass compiler, the second of which is scanned backward. It has been used in the development of several FORTRAN compilers that have proved to produce excellent object code without significantly reducing the compilation speed. .A Busam, V. A. England, D. E. .K FORTRAN, optimization, expressions, compilers, compilation, subscripts, register allocation, DO loops, common subexpressions, invariant calculations .I 1808 .T Advanced Cryptographic Techniques for Computers .W Cryptographic techniques which can be used to maintain the confidentiality of information processed by computers are dealt with. Special emphasis is paid to the unique characteristics of computer files that make many cryptographic methods of little use. Relative security, costs, and preferred methods are included in this paper. .A Van Tassel, D. .K cryptographic, cryptanalysis, ciphers secrecy systems, security systems, confidential information processing .I 1809 .T Numerical Analysis in a Ph.D. Computer Science Program .W Numerical Analysis is the study of methods and procedures used to obtain "approximate solutions" to mathematical problems. Much of the emphasis is on scientific calculation. The difficulties of education in such a broad area center around the question of background and emphasis. The Numerical Analysis program in the Computer Science Department should emphasize an awareness of the problems of computer implementation and experimental procedures. Nevertheless, there is a need for a solid background in applied mathematics. .A Parter, S. V. .K Ph.D. program, numerical analysis, course separation, education .I 1810 .T Is Automatic "Folding" of Programs Efficient Enough To Displace Manual? .W The operation of "folding" a program into the available memory is discussed. Measurements by Brown et al. and by Nelson on an automatic folding mechanism of simple design, a demand paging unit built at the IBM Research Center by Belady, Nelson, O'Neil, and others, permitting its quality to be compared with that of manual folding, are discussed, and it is shown that given some care in use the unit performs satisfactorily under the conditions tested, even though it is operating across a memory-to-storage interface with a very large speed difference. The disadvantages of prefolding, which is required when the folding is manual, are examined, and a number of the important troubles which beset computing today are shown to arise from, or be aggravated by, this source. It is concluded that a folding mechanism will probably become a normal part of most computing systems. .A Sayre, D. .K paging, automatic paging, demand paging, folding, automatic folding, storage hierarchies, memory hierarchies, replacement algorithms, performance, measurement .I 1811 .T A Case Study in Programming for Parallel-Processors .W An affirmative partial answer is provided to the question of whether it is possible to program parallel-processor computing systems to efficiently decrease execution time for useful problems. Parallel-processor systems are multiprocessor systems in which several of the processors can simultaneously execute separate tasks of a single job, thus cooperating to decrease the solution time of a computational problem. The processors have independent instruction counters, meaning that each processor executes its own task program relatively independently of the other processors. Communication between cooperating processors is by means of data in storage shared by all processors. A program for the determination of the distribution of current in an electrical network was written for a parallel-processor computing system, and execution of this program was simulated. The data gathered from simulation runs demonstrate the efficient solution of this problem, typical of a large class of important problems. It is shown that, with proper programming, solution time when N processors are applied approaches 1/N times the solution time for a single processor, while improper programming can actually lead to an increase of solution time with the number of processors. Stability of the method of solution was also investigated. .A Rosenfeld, J. L. .K parallel-processor, parallelism, parallel programming, multiprocessor, multiprogramming, tasking, storage interference, electrical network, simulation, relaxation, Jacobi, Gauss-Seidel, convergence .I 1812 .T More on Fortran Random Number Generators .A Grosenbaugh, L. R. .K random number generation, Monte Carlo, simulation .I 1813 .T Generation of Permutations in Pseudo-Lexicographic Order (Algorithm 308 [G6]) .A Ord-Smith, R. J. .K permutations, lexicographic order, lexicographic generation, permutation generation .I 1814 .T Direct Search (Algorithm 178 [E4]) .A Smith, L. B. .K function minimization, search, direct search .I 1815 .T Direct Search (Algorithm 178 [E4]) .A Tomlin, F. K. Smith, L. B. .K function minimization, search direct search .I 1816 .T Generalized Least Squares Fit By Orthogonal Polynomials (Algorithm 296 [E2]) .A Watson, W. T. .K least squares, curve fitting, orthogonal polynomials, three-term recurrence, polynomial regression, approximation, Forsythe's method .I 1817 .T Computation of Fourier Coefficients (Algorithm 255 [C6]) .A Hall, G. Ray, V. A. .K numerical integration, Fourier coefficients, Filon's method .I 1818 .T Associated Legendre Functions of the First Kind for Real or Imaginary Arguments (Algorithm 47 [S16]) .A Cobb, S. M. .K Legendre function, associated Legendre function, real or imaginary arguments .I 1819 .T Complex Error Function (Algorithm 363 [S15]) .A Gautschi, W. .K error function for complex argument, Voigt function, Laplace continued fraction, Gauss-Hermite quadrature, recursive computation .I 1820 .T Generation of Random Permutations (Algorithm 362 [G6]) .A Robson, J. M. .K permutation, random permutation, transposition .I 1821 .T Permanent Function of a Square Matrix I and II (Algorithm 361 [G6]) .A Shriver, B. Eberlein, P. J. Dixon, R. D. .K matrix, permanent, determinant .I 1822 .T Shortest-Path Forest with Topological Ordering (Algorithm [H]) .A Dial, R. B. .K shortest path, tree, network, directed graph .I 1823 .T Factorial Analysis of Variance (Algorithm [G1]) .A Howell, J. R. .K factorial variance analysis, variance, statistical analysis .I 1824 .T APAREL-A Parse-Request Language .W APAREL is described: this language is an extension to an algorithmic language (PL/I) that provides the pattern-matching capabilities normally found only in special purpose languages such as SNOBOL4 and TMG. This capability is provided through parse-requests stated in a BNF-like format. These parse-requests form their own programming language with special sequencing rules. Upon successfully completing a parse-request, an associated piece of PL/I code is executed. This code has available for use, as normal PL/I strings the various pieces (at all levels) of the parse. It also has available as normal PL/I variables, the information concerning which of the various alternatives were successful. Convenient facilities for multiple input-output streams, the initiation of sequences of parse-requests as a subroutine, and parse-time semantic checks are also included. APAREL has proven convenient in building a powerful SYNTAX and FUNCTION macro system, an algebraic language preprocessor debugging system, an on-line command parser, a translator for Dataless Programming, and as a general string manipulator. .A Balzer, R. M. Farber, D. J. .K text processing, string processing, symbol manipulation, PL/I, BNF, syntax, parser, translator, pattern matching .I 1825 .T A Practical Method for Constructing LR(k) Processors .W A practical method for constructing LR(k) processors is developed. These processors are capable of recognizing and parsing an input during a single no-backup scan in a number of steps equal to the length of the input plus the number of steps in its derivation. The technique presented here is based on the original method described by Knuth, but decreases both the effort required to construct the processor and the size of the processor produced. This procedure involves partitioning the given grammar into a number of smaller parts. If an LR(k) processor can be constructed for each part (using Knuth's algorithm) and if certain conditions relating these individual processors are satisfied, then an LR(k) processor for the entire grammar can be constructed for them. Using this procedure, an LR(1) parser for ALGOL has been obtained. .A Korenjak, A. J. .K LR(k) grammar, syntactic analysis, parser, deterministic language, syntax-directed compiler, language processor, context-free language ALGOL .I 1826 .T A LISP Garbage-Collector for Virtual-Memory Computer Systems .W In this paper a garbage-collection algorithm for list-processing systems which operate within very large virtual memories is described. The object of the algorithm is more the compaction of active storage than the discovery of free storage. Because free storage is never really exhausted, the decision to garbage collect is not easily made; therefore, various criteria of this decision are discussed. .A Fenichel, R. R. Yochelson, J. C. .K garbage-collector, virtual memory, list-processing, storage-allocation .I 1827 .T Performance Monitoring in a Time-Sharing System .W A software measurement facility which is part of a general purpose time-sharing system is described. The Date Collection Facility (DCF) has been implemented in the Michigan Terminal System (MTS) for the System/360 model 67. It exists for the purpose of monitoring operating system and user program behavior and performance. The overall structure of MTS is outlined in order to explain the implementation of the DCF. Events in the system are identified and recorded from within the supervisor, and dumped to magnetic tape by an auxiliary program for off-line processing. Events in user programs which are unrelated to system actions are recorded with a supervisor call. The time of occurrence of each event is accurately recorded, and data items are further identified by job and type. The overhead associated with data collection and its interference with normal jobs is carefully analyzed, and both are shown to be minimal. Several examples are given of information obtained with the facility and of applications in which it has been useful. Some general guidelines are offered for the construction of future monitoring programs. .A Pinkerton, T. B. .K performance monitoring, performance measurement, program behavior, performance data, multiprogramming performance, software measurement, time-sharing performance, system evaluation, software monitor, software instrumentation .I 1828 .T Synchronization in a Parallel-Accessed Data Base .W The following problem is considered: Given a data base which can be manipulated simultaneously by more than one process, what are the rules for synchronization which will maximize the amount of parallel activity allowed. It is assumed that the data base can be represented as a graph. An example of such a data base is a hierarchy of directories for an on-line file system. Methods for synchronization of processes are examined; their validity is discussed and their performance compared. .A Shoshani, A. Bernstein, A. J. .K parallel accessing, parallel search, file search, data base, synchronization, locking, deadlock .I 1829 .T An Interactive Graphical Display Monitor in a Batch-Processing Environment with Remote Entry .W A graphic monitor program is described. It was developed at Carnegie-Mellon University for the CDC G21 computer, which is a general purpose, batch-processing system with remote entry. The existing G21 system and the graphics hardware are described. The graphic monitor is a resident auxiliary monitor which provides comprehensive managerial capability over the graphical system in response to commands from the human user. It also will respond to commands from a user program through a similar interface, where routine calls take the place of manual actions. Thus the human and program can interact on a symmetrical and equal basis through the medium of the graphic monitor. The choice made in designing the graphic monitor, given the constraints of the existing hardware and computer system, are discussed. The structure of the monitor program and the human and program interfaces are described. There is also a transient swapping version with a small resident part, and provision for swapped used submonitors. .A Bond, A. H. Rightnour, J. .K graphic monitor, man/machine interaction, graphic interface, graphic in batch environment, design of graphical system .I 1830 .T Retrieval Times for a Packed Direct Access Inverted File .A Bayes, A. J. .K information retrieval, direct access memory, data base, inverted list .I 1831 .T A Comment on Optimal Tree Structures .A Stanfel, L. E. .K information retrieval, file searching, tree structures, double chaining .I 1832 .T Minimax Logarithmic Error .A Dunham, C. B. .K logarithmic error, transformed rational approximation, square root .I 1833 .T An Ambiguity in the Description of ALGOL 60 .A Herriot, J. G. .K Ising problem, zero-one sequences .I 1834 .T An Axiomatic Basis for Computer Programming .W In this paper an attempt is made to explore the logical foundations of computer programming by use of techniques which were first applied in the study of geometry and have later been extended to other branches of mathematics. This involves the elucidation of sets of axioms and rules of inference which can be used in proofs of the properties of computer programs. Examples are given of such axioms and rules, and a formal proof of a simple theorem is displayed. Finally, it is argued that important advantages, both theoretical and practical, may follow from a pursuance of these topics. .A Hoare, C. A. R. .K axiomatic method, theory of programming, proofs of programs, formal language definition, programming language design, machine-independent programming, program documentation .I 1835 .T The IITRAN Programming Language .W The IITRAN language, developed to be used by students, and its important important features are described. IITRAN is a procedure-oriented language with a one-level block structure and a variety of data types. Several novel and powerful features are included. A discussion of design principles to be followed in a student language is given. .A Dewar, R. B. K. Hochsprung, R. R. .K languages programming languages, student programming systems, language design, high school programs, college courses .I 1836 .T A New Method for Determining Linear Precedence Functions for Precedence Grammars .W The precedence relations of a precedence grammar can be precisely described by a two-dimensional precedence matrix. Often the information in the matrix can be represented more concisely by a pair of vectors, called linear precedence functions. A new algorithm is presented for obtaining the linear precedence functions when given the precedence matrix; this algorithm is shown to possess several computational advantages. .A Bell, J. R. .K Boolean matrices, syntax, precedence grammar context-free parsing, transition matrix, precedence functions .I 1837 .T An Algol Convolution Procedure Based on the Fast Fourier Transform (Algorithm 345 [C6]) .A Singleton, R. C. .K fast Fourier transform, complex Fourier transform, multivariate Fourier transform, Fourier series, harmonic analysis, spectral analysis, orthogonal polynomials, orthogonal transformation, convolution, auto covariance, autocorrelation, cross-correlation, digital filtering, permutation .I 1838 .T Normal Curve Integral (Algorithm 304 [S15]) .A Adams, A. G. .K normal curve integral, probability, special functions .I 1839 .T Singular Value Decomposition of a Complex Matrix (Algorithm 358 [F1, 4,5]) .A Businger, P. A. Goulub, G. H. .K singular values, matrix decomposition, least squares solution, pseudoinverse .I 1840 .T An Efficient Prime Number Generator (Algorithm 357 [A1]) .A Singleton, R. C. .K prime numbers, factoring, number theory .I 1841 .T A Prime Number Generator Using The Treesort Principle (Algorithm 356 [A1]) .A Singleton, R. C. .K prime numbers, number theory, sorting .I 1842 .T An Algorithm for Generating Ising Configurations (Algorithm 355 [Z]) .A Simoes, J. M. S. .K Ising problem, zero-one sequences .I 1843 .T The Choice of Base .W A digital computer is considered, whose memory words are composed on N r-state devices plus two sign bits (two state devices). The choice of base B for the internal representation of floating-point numbers on such a computer is discussed. It is shown that in a certain sense B= r is best. .A Brown, W. S. Richman, P. L. .K floating-point, accuracy, base choice, number representations .I 1844 .T A Modular Computer Sharing System .W An alternative approach to the design and organization of a general purpose interactive multiterminal computing system is presented. The system organization described is a conceptually simple arrangement of a bank of interchangeable computers, each of which is a memory/processor pair, that are assigned to process terminal jobs as they arrive. One of the computers serves as the master or control computer and supervises the collection and distribution of messages from and to the remote terminals. In the simplest form there is a disk drive for each connected terminal. A crosspoint switching network allows any such disk drive to be connected to any computer. Thus, while each active terminal user "occupies" a dedicated disk drive, he may share the computer with many other terminal users in a simple manner. The ratio of users to computers is dependent on both the size and power of the machines used and the computation requirements of the particular mix of users. This system organization is inherently a simpler and therefore more reliable approach to time-sharing computers and has the potential of a highly available system at relatively low cost. Economic configurations are possible for a range of systems sizes that span at least one order of magnitude. Finally, problem programs developed by remote terminal users can be run on a dedicated batch system if compatible computers are used. .A Baskin, H. B. Horowitz, E. B. Tennison, R. D. Rittenhouse, L. E. .K multiple terminal systems, terminal oriented systems, multiple processor systems, high availability, conversational systems, general purpose time-sharing systems, real-time response system, modular constructed systems, modular computer-sharing systems, graphics, file switch, intercomputer communications, control computer, problem computer, roll-in, roll-out .I 1845 .T Loader Standardization for Overlay Programs .W The overlay capability is described for four of the third generation computer systems: CDC-6000, GE-635, IBM-360, and UNIVAC-1108. A critique of the first three systems is based on actual experience with a large overlaid trajectory simulation program; a short history and description of this program is presented. A standardization of minimum capabilities for loaders is recommended so that programs which must operate under more than one computer system may be easily converted and maintained. A proposal that overlay software incorporates a memory occupation specification concept instead of the conditional tree structure is delineated. This concept provides more efficient and cost-effective utilization of the memory as well as increased flexibility in program structure. .A Lanzano, B. C. .K loader, overlay, partition, region, segmentation, linkage, linkage editor, standardization, memory utilization, memory occupation, tree structure, CDC-6000, GE-635, IBM-360, UNIVAC-1108 .I 1846 .T On Simulating Networks of Parallel Processes in Which Simultaneous Events May Occur .W Some of the problems of simulating discrete event systems, particularly computer systems, on a conventional digital computer are dealt with. The systems are assumed to be described as a network of interconnected sequential processes. Briefly reviewed are the common techniques used to handle such simulations when simultaneous events do not occur, can be ignored, or can be handled by simple priority rules. Following this, the problem of dealing with simultaneous events in separate processes is introduced. An abstraction of this problem is developed which admits solution for a majority of commonly encountered problems. The technique will either find a method of simulating the parallel events or report that none can be found. In some of the latter cases it is shown to be possible to find a solution by extending the information available to the solution technique, but in many cases the technique becomes computationally unfeasible when the additional information is provided. .A Parnas, D. L. .K simulation, parallel processes, simultaneous events, picture processing, computer system simulation .I 1847 .T An Algorithm for Finding a Fundamental Set of Cycles of a Graph .W A fast method is presented for finding a fundamental set of cycles for an undirected finite graph. A spanning tree is grown and the vertices examined in turn, unexamined vertices being stored in a pushdown list to await examination. One stage in the process is to take the top element v of the pushdown list and examine it, i.e. inspect all those edges (v,z) of the graph for which z has not yet been examined. If z is already in the tree, a fundamental cycle is added; if not, the edge (v,z) is placed in the tree. There is exactly one such stage for each of the n vertices of the graph. For large n, the store required in creases as n^2 and the time as n^g where g depends on the type of graph involved. g is bounded below by 2 and above by 3, and it is shown that both bounds are attained. In terms of storage our algorithm is similar to that of Gotlieb and Corneil and superior to that of Welch; in terms of speed it is similar to that of Welch and superior to that of Gotlieb and Corneil. Testsshow our algorithm to be remarkably efficient (g=2) on random graphs. .A Paton, K. .K fundamental cycle set, graph, algorithm, cycle, spanning tree .I 1848 .T The Damped Taylor's Series Method for Minimizing a Sum of Squares and for Solving Systems of Nonlinear Equations (Algorithm 315 [E4, C5]) .A Silverman, G. .K solution of equations, least squares approximation, Newton's method .I 1849 .T Function Minimization (Algorithm 251 [E4]) .A Hamilton, P. A. Boothroyd, J. .K function minimization .I 1850 .T Generation of Permutations in Lexicographic Order (Algorithm 323 [G6]) .A Leitch, I. M. .K permutations, direct lexicographic order, reverse lexicographic order, lexicographic generation .I 1851 .T Generator of Spanning Trees (Algorithms 354 [H]) .A McIlroy, M. D. .K spanning trees, trees, graphs .I 1852 .T A Base for a Mobile Programming System .W An algorithm for a macro processor which has been used as the base of an implementation, by bootstrapping, of processors for programming languages is described. This algorithm can be easily implemented on contemporary computing machines. Experience with programming languages whose implementation is based on this algorithm indicates that such a language can be transferred to a new machine in less than one man-week without using the old machine. .A Orgass, R. J. Waite, W. M. .K bootstrapping, macro processing, machine independence, programming languages, implementation techniques .I 1853 .T Compact List Representation: Definition, Garbage Collection, and System Implementation .W Compact lists are stored sequentially in memory, rather than chained with pointers. Since this is not always convenient, the Swym system permits a list to be chained, compact, or any combination of the two. A description is given of that list representation and the operators implemented (most are similar to those of LISP 1.5). The system garbage collector attempts to make all lists compact; it relocates and rearranges all of list storage using temporary storage. This unique list-compacting garbage collection algorithm is presented in detail. Several classes of the macros used to implement the system are described. Finally, consideration is given to those design factors essential to the success of a plex processing system implementation. .A Hansen, W. J. .K data structure, data representation, list structure, list representation, list, compact list, garbage collection, relocation, storage reclamation, macro, primitive list operations, plex processing, plex, pointer, list processing system, LISP, free storage .I 1854 .T On Multiprogramming, Machine Coding, and Computer Organization .W The author feels that the interrupt feature which is available in most modern computers is a potent source of programming pitfalls and errors, and that it therefore may heavily contribute to the unreliability of programs making use of it. A programming scheme is presented which avoids the concept of the interrupt and permits the specification of concurrent (or pseudoconcurrent) activities in a supposedly more perspicuous manner. It is intended to serve as a basis for the construction of operating systems, which are prime examples of programs with concurrent activities. The scheme includes a set of basic instructions for the generation, termination, and synchronization of parallel processes. A set of routines representing these instructions and thereby simulating a hypothetical machine organization has been implemented and test on the IBM System/360. Two programs using these instructions, written in PL360, are presented. .A Wirth, N. .K multiprogramming, parallelism, interrupt, input-output, computer organization, file handling, PL360 .I 1855 .T A Program for the Syntactic Analysis of English Sentences .W A program is described which produces syntactic analyses of English sentences with respect to a transformational grammar. The main features of the analyzer are that it uses only a limited dictionary of English words and that it pursues all analysis paths simultaneously while processing the sentence from left to right. The form of representation used for the dictionary and the grammar is indicated and an outline account is given of the analysis procedure. Techniques for keeping the size of the analysis record within reasonable limits and for avoiding the need for dynamic application of certain transformational rules are described. A number of examples of output produced by the program are given. The output includes timing information. .A Dewar, H. Bratley, P. .K syntactic analysis, language processing, language analysis, parsing, analysis procedure, recognition procedure, English sentences, linguistics, psycholinguistics, transformational grammar, limited dictionary, predictive analysis .I 1856 .T The Teachable Language Comprehender: A Simulation Program and Theory of Language .W The Teachable Language Comprehender (TLC) is a program designed to be capable of being taught to "comprehend" English text. When text which the program has not seen before is input to it, it comprehends that text by correctly relating each (explicit or implicit) assertion of the new text to a large memory. This memory is a "semantic network" representing factual assertions about the world. The program also creates copies of the parts of its memory which have been found to relate to the new text, adapting and combining these copies to represent the meaning of the new text. By this means, the meaning of all text the program successfully comprehends is encoded into the same format as that of the memory. In this form it can be added into the memory. Both factual assertions for the memory and the capabilities for correctly relating text to the memory's prior content are to be taught to the program as they are needed. TLC presently contains a relatively small number of examples of such assertions and capabilities, but within the system, notations for expressing either of these are provided. Thus the program now corresponds to a general process for comprehending language, and it provides a methodology for adding the additional information this process requires to actually comprehend text of any particular kind. The memory structure and comprehension process of TLC allow new factual assertions and capabilities for relating text to such stored assertions to generalize automatically. That is, once such an assertion or capability is put into the system, it becomes available to help comprehend a great many other sentences in the future. Thus the addition of a single factual assertion or linguistic capability will often provide a large increment in TLC's effective knowledge of the world and in its overall ability to comprehend text. The program's strategy is presented as a general theory of language comprehension. .A Quillian, M. R. .K natural language processing, natural language comprehension, teachable computer program, psychological simulation, human memory simulation, computer linguistics, linguistic performance theory .I 1857 .T Filon Quadrature (Algorithm [D1]) .A Chase, S. M. Fosdick, L. D. .K quadrature, Filon quadrature, integration, Filon integration, Fourier coefficients, Fourier series .I 1858 .T An Algorithm for Filon Quadrature .W An algorithm for Filon quadrature is described. Considerable attention has been devoted to an analysis of the round-off and truncation errors. The algorithm includes an automatic error control feature. .A Chase, S. M. Fosdick, L. D. .K quadrature, Filon quadrature, integration, Filon integration, Fourier coefficients, Fourier series .I 1859 .T Error Bounds for Periodic Quintic Splines .W Explicit error bounds for periodic quintic spline interpolation are developed. The first (third) derivative of the periodic spline is shown to be a sixth (fourth) order approximation at the mesh points to the first (third) derivative of the function being interpolated. .A Hall, C. A. .K spline, interpolation, error bounds .I 1860 .T An Algol-Based Associative Language .W A high level programming language for large, complex associative structures has been designed and implemented. The underlying data structure has been implemented using a hash-coding technique. The discussion includes a comparison with other work and examples of applications of the language. .A Feldman, J. A. .K ALGOL, associative, programming language, data structure .I 1861 .T The MAD Definition Facility .W One of the first definition facilities for higher level languages is described. Users of the language can define new operators and/or data types into the MAD language, so that their use appears as if they were predefined. Information is given on how one writes definitions, as well as on much of the motivation behind the form in which definitions are written. Some conclusions are drawn about future definitional facilities. .A Arden, B. W. Galler, B. A. Graham, R. M. .K MAD, definitions, operators, macros, higher level language .I 1862 .T Computing Capabilities at Argentine and Chilean Universities .W The author reports on a trip to universities in Argentina and Chile during November 1968, describing university conditions and computing activities. As elsewhere, these universities are experiencing student discontent with the status quo and the solutions they are attempting contrast: Argentina is excluding students from participating in university government; Chile is allowing such participation. University computing service and academic activities are limited. The number of computers is small and so is the capacity, none larger than an IBM 360/40; with some exception, computing science academic programs are rare. This situation is by no means attributable to those responsible for computing developments, who strive for excellence; rather the "system" is hard to over-come. Universities, especially those with strong European traditions, adapt slowly to new academic resources and disciplines; superimposed are the severe technological and economic constraints of the developing nation. Consequently, in the absence of conscious government emphasis on strengthening computing capabilities, future progress may be retarded. .A Finerman, A. .K university education, computing science academic programs, university computing centers, surveys of computing centers, university computing capabilities, university-student relationship, Argentine universities, Chilean universities, South American universities, developing nations .I 1863 .T Minit Algorithm for Linear Programming (Algorithm 333 [H]) .A Messham, D. K. .K linear programming, dual simplex method, primal problem, dual problem .I 1864 .T Generation of Hilbert Derived Test Matrix (Algorithm 274 [F1]) .A Boothroyd, J. .K test matrix, Hilbert matrix .I 1865 .T Algol 60 Reference Language Editor (Algorithm 268 [R2]) .A Sauer, G. .K symbol manipulation .I 1866 .T Characteristic Values and Associated Solutions of Mathieu's Differential Equation (Algorithm 352 [S22]) .A Clemm, D. S. .K Mathieu's differential equation, Mathieu function, characteristic value, periodic solution, radial solution .I 1867 .T On the Expected Lengths of Sequences Generated in Sorting by Replacement Selecting .W In the replacement-selecting technique of sorting, one is interested in the ratio L(j) of the expected length of the j-th sequence generated by the technique to the number of memory cells used. Using complex-variable theory, it is shown that L(j) -> 2 and that, asymptotically, the average interval between sign changes of L(j)-2 is 2.6662. .A Hooker, W. W. .K replacement selecting, sorting, sequence lengths, asymptotic expected length, recursion relation, generating function, meromorphic function .I 1868 .T On Obtaining Correct Input:A New Approach .W Most information put into machine readable form, whether from scientific or business origins, is still keypunched. This paper is addressed toward the difficulty of obtaining correctly keypunched and key verified data and an alternative method is suggested in which the computer itself is used to rule out the possibility of errors in input. This technique is explained and illustrated by reference to a working program which involves essentially two phases: in the first phase errors are detected by the machine, and subsequently, in the second phase, they are corrected by it. .A Kennedy, M. .K correct data, correct input, data correction, keypunch, key verifier, verifier .I 1869 .T Block Structures, Indirect Addressing, and Garbage Collection .W Programming languages have included explicit or implicit block structures to provide a naming convenience for the programmer. However, when indirect addressing is used, as in SNOBOL, naming constraints may be introduced. Two modifications to SNOBOL are described, resulting in two desirable consequences: (1) naming constraints disappear even when there is indirect addressing within function definitions; and (2) there is a significant saving in the number of calls to the garbage collector, because some garbage is collected, at little expense, each time a function returns to its calling program. These modifications have been implemented as an extension to a SNOBOL dialect. .A Kain, R. Y. .K block structures, indirect addressing, garbage collection, local names, SNOBOL .I 1870 .T Some Techniques for Using Pseudorandom Numbers in Computer Simulation .W An algorithm is described by which uniform pseudorandom integers may be used to construct binary "numbers" in which the probability that each bit in the word is a 1-bit and can assume any desired parameter value. Techniques for making use of such "numbers" in simulation programming are described. .A Donnelly, T. .K random numbers, simulation, Boolean algebra, bit manipulation .I 1871 .T Automatic Contour Map .W Some methods for contour mapping by means of a digital plotter are discussed, and a new method is presented that is simple enough to be implemented by programs with a rather small number of instructions (about 120 FORTRAN IV instructions are required). Comparisons with some methods proposed by other authors are also performed, A FORTRAN IV program implementing the proposed method is available at the Istituto di Elettrotecnica ed Elettronica, Politencnico di Milano. .A Cottafava, G. LeMoli, G. .K contour map, level lines, digital plotting, function scanning .I 1872 .T Chebyshev Interpolation and Quadrature Formulas of Very High Degree (Errata) .A Salzer, H. E. .I 1873 .T Accelerating LP Algorithms .W It is shown how a novel method for computing (related) inner products can accelerate the pricing phase of LP algorithms. Other LP applications are indicated. .A Fox, B. L. .K linear programming, revised simplex method, multiple pricing, inner product .I 1874 .T Generating Pseudorandom Numbers on a Two's Complement Machine such as the IBM 360 .W The familiar multiplicative congruential generator is examined in the context of the type of two's complement arithmetic used in the IBM 360 series. Different sequences of residues are considered and relationships established among them. It is shown that a sequence of positive and negative residues may be produced more simply and economically than with the conventional approach and yet have twice the period of the latter without loss of desirable statistical properties. Another easily generated sequence involving absolute values is also shown to have twice the period but with less attractive statistical properties. The statistical properties of these sequences are given and related to previously established criteria. .A Hemmerle, W. J. .K random number, uniform distribution, pseudo-random number, random number generator, multiplicative congruential generator, power residue, two's complement arithmetic, IBM 360 arithmetic .I 1875 .T Polynomial and Spline Approximation by Quadratic Programming .W The problem of approximation to a given function, or of fitting a given set of data, where the approximating function is required to have certain of its derivations of specified sign over the whole range of approximation, is studied. Two approaches are presented, in each of which quadratic programming is used to provide both the constraints on the derivatives and the selection of the function which yields the best fit. The first is a modified Bernstein polynomial scheme, and the second is a spline fit. .A Amos, D. E. Slater, M. L. .K constant sign derivatives, Bernstein polynomials, linear concavity constraints, quadratic programming splines .I 1876 .T Generation of Test Matrices Having Certain Sign Patterns and Prescribed Positive Spectra .W A class of orthogonal transformations is presented whose members transform a given positive diagonal matrix into a matrix having one of four special sign patterns. .A Schneider, A. J. .K test matrices, positive matrices, sign patterns, orthogonal transformations, positive eigenvalues .I 1877 .T Prevention of System Deadlocks .W A well-known problem in the design of operating systems is the selection of a resource allocation policy that will prevent deadlock. Deadlock is the situation in which resources have been allocated to various tasks in such a way that none of the tasks can continue. The various published solutions have been somewhat restrictive: either they do not handle the problem in sufficient generality or they suggest policies which will on occasion refuse a request which could have been safely granted. Algorithms are presented which examine a request in the light of the current allocation of resources and determine whether or not the granting of the request will introduce the possibility of a deadlock. Proofs given in the appendixes show that the conditions imposed by the algorithms are both necessary and sufficient to prevent deadlock. The algorithms have been successfully used in the THE system. .A Habermann, A. N. .K multiprogramming, time-sharing, scheduling, resource allocation .I 1878 .T Recovery of Reentrant List Structures in SLIP .W One consequence of the reference-count-based space-recovery system employed by SLIP is that reentrant list structures are not recovered even when explicitly erased. LISP-like garbage-collection schemes are free of this impediment. They however, depend on being able to find and mark nodes that are reachable from program variables. By tracing all descendants from program variables may then be identified and collected. The list-creating function LIST of SLIP may be amended to mark those lists for which the programmer wishes to assume responsibility. Given this modification, a LISP-like garbage collector that recovers abandoned reentrant list structures may then be appended to the SLIP system. .A Weizenbaum, J. .K list processing, SLIP, garbage-collection .I 1879 .T A Note on Storage Fragmentation and Program Segmentation .W The main purpose of this paper is the presentation of some of the results of a series of simulation experiments investigating the phenomenon of storage fragmentation. Two different types of storage fragmentation are distinguished: (1) external fragmentation, namely the loss in storage utilization caused by the inability to make use of all available storage after it has been fragmented into a large number of separate blocks; and (2) internal fragmentation, the loss of utilization caused by rounding up a request for storage, rather than allocating only the exact number of words required. The most striking result is the apparently general rule that rounding up requests for storage, to reduce the number of different sizes of blocks coexisting in storage, causes more loss of storage by increased internal fragmentation than is saved by decreased external fragmentation. Described also are a method of segment allocation and an accompanying technique for segment addressing which take advantage of the above result. Evidence is presented of possible advantages of the method over conventional paging techniques. .A Randell, B. .K storage allocation, storage fragmentation, paging, segmentation, addressing .I 1880 .T Chebyshev Solution to an Overdetermined Linear System (Algorithm 328 [F4]) .A Golub, G. H. .K Chebyshev solutions, over-determined linear systems, linear equations, exchange algorithm .I 1881 .T Transpose Vector Stored Array (Algorithm 302 [K2]) .A MacLeod, I. D. G. .K matrix transposition, array transposition, vector stored array .I 1882 .T Determination of the Square Root of a Positive Definite Matrix (Algorithm 298 [F1]) .A Duke, B. J. .K matrix, symmetric matrix, positive definite matrix, matrix square root .I 1883 .T Modified Romberg Quadrature(Algorithm [D1]) .A Fair weather, G. .K numerical integration, Romberg quadrature, trapezoid values, rectangle values, error bound .I 1884 .T An Anomaly in Space-Time Characteristics of Certain Programs Running in a Paging Machine .W The running time of programs in a paging machine generally increases as the store in which programs are constrained to run decreases. Experiments, however, have revealed cases in which the reverse is true: a decrease in the size of the store is accompanied by a decrease in running time. An informal discussion of the anomalous behavior is given, and for the case of the FIFO replacement algorithm a formal treatment is presented. .A Belady, L. A. Nelson, R. A. Shedler, G. S. .K paging machines, demand paging, replacement algorithm .I 1885 .T A Computer System for Transformational Grammar .W A comprehensive system for transformational grammar has been designed and implemented on the IBM 360/67 computer. The system deals with the transformational model of syntax, along the lines of Chomsky's Aspects of the Theory of Syntax. The major innovations include a full,formal description of the syntax of a transformational grammar, a directed random phrase structure generator, a lexical insertion algorithm, an extended definition of analysis, and a simple problem-oriented programming language in which the algorithm for application of transformations can be expressed. In this paper we present the system as a whole, first discussing the general attitudes underlying the development of the system, then outlining the system and discussing its more important special features. References are given to papers which consider some particular aspect of the system in detail. .A Friedman, J. .K transformational grammar, natural language syntax, language processing, language analysis, sentence generation, lexical insertion, computational linguistics, syntax .I 1886 .T Generation of Optimal Code for Expressions via Factorization .W Given a set of expressions which are to be compiled, methods are presented for increasing the efficiency of the object code produced by first factoring the expressions, i.e. finding a set of subexpressions each of which occurs in two or more other expressions or subexpressions. Once all the factors have been ascertained, a sequencing procedure is applied which orders the factors and expressions such that all information is computed in the correct sequence and factors need be retained in memory a minimal amount of time. An assignment algorithm is then executed in order to minimize the total number of temporary storage cells required to hold the results of evaluating the factors. In order to make these techniques computationally feasible, heuristic procedures are applied, and hence global optimal results are not necessarily generated. The factorization algorithms are also applicable to the problem of factoring Boolean switching expressions and of factoring polynomials encountered in symbol manipulating systems. .A Breuer, M. A. .K factorization algorithms, code optimization, sequencing of operations, detection of common subexpressions, factorization of Boolean expressions .I 1887 .T A Recursive Relation for the Determinant of a Pentadiagonal Matrix .W A recursive relation, relating leading principal minors, is developed for the determinant of a pentadiagonal matrix. A numerical example is included to indicate its use in calculating eigenvalues. .A Sweet, R. A. .K pentadiagonal matrix, quindiagonal matrix, quindiagonal matrix, band matrix, determinant, characteristic polynomial, eigenvalues .I 1888 .T Spline Function Methods for Nonlinear Boundary-Value Problems .W The solution of the nonlinear differential equation Y"=F(x,Y,Y') with two-point boundary conditions is approximated by a quintic or cubic spline function y(x). The method is well suited to nonuniform mesh size and dynamic mesh size allocation. For uniform mesh size h, the error in the quintic spline y(x) is O(h^4), with typical error one-third that from Numerov's method. Requiring the differential equation to be satisfied at the mesh points results in a set of difference equations, which are block tridiagonal and so are easily solved by relaxation or other standard methods. .A Blue, J. L. .K boundary value problems, differential equations, finite differences, functional approximation, iterative methods, nonlinear equations, spline functions .I 1889 .T Introducing Computing to Smaller Colleges and Universities -- A Progress Report .W By technical means that are now routine, computer service for smaller colleges and universities can be provided by remote terminals of a central facility. Access, however, is not enough-effective organizational and educational methodology for introducing computing at such institutions must also be developed. The experience of two years with a statewide network involving-41 institutions is discussed. Lessons include the importance of a separate organization representing the small colleges, the necessity for on-campus training for the institutions, the need for some special programming and documentation to support such users,and the development of curriculum by evolutionary means. .A Parker Jr., L. T. Gallie, T. M. Brooks Jr., F. P. Ferrel, J. K. .K regional network, introducing computing, under-graduate education, instructional usage, academic applications, curriculum development, orientation project, regional center, consortium, remote computing .I 1890 .T Simulation of Traffic Flows in a Network .W A computer simulation program which deals with traffic flows in the network of a large area is described. Each road is segmented into blocks of several ten-meter lengths and is represented by a bidirectional list in computer memory. The movement of cars, i.e. the transfer of cars from one block to the next, is expressed by a proper formula. This formula is based on the supposition that the speed of cars in a block is determined only by the density of cars in the block, and this speed-versus-density curve is empirically given the numerical values. This simulation scheme has its excellent point in that it makes it possible to trace the dynamic behavior of traffic flows in a variety of situations, some examples of which are given for an actual area of the city of Kyoto, Japan. .A Sakai, T. Nagao, M. .K traffic simulation, traffic flow, traffic network traffic control, traffic density, intersection, signal setting, vehicle, road network, list structure, computer simulation .I 1891 .T Three-Dimensional Computer Display .W A stereographic display terminal has been produced using the raster display (BRAD) recently developed at Brookhaven. The system uses a rotating refresh memory to feed standard television monitors. To produce a stereographic display the computer calculates the projected video images of an object, viewed from two separate points. The resulting video maps are stored on separate refresh bands of the rotating memory. The two output signals are connected to separate color guns of a color television monitor, thus creating a superimposed image on the screen. Optical separation is achieved by viewing the image through color filters. The display is interactive and can be viewed by a large group of people at the same time. .A Ophir, D. Shepherd, B. J. Spinrad, R. J. .K computer graphics, three-dimensional display, swept raster display, interactive stereographic terminal, video map, color separation .I 1892 .T Degree of Multiprogramming in Page-on-Demand Systems .W A simple stochastic model is described which offers a base for understanding the relationship between the number of programs permitted to share memory (the degree of multiprogramming), drum traffic rates, and central processing unit utilization in page-on-demand, multiprogrammed, time-shared computer systems. The model preserves, as a key feature, the property of page-demand statistics which implies a "burst" of page demands at the beginning of any job or quantum execution. The model, a Markov chain, is analyzed numerically and the results are presented graphically for a wide range of key environment-descriptive parameters. Implications of the results to time-shared system design and programming are discussed, and a calculation of the optimal degree of multiprogramming for a wide range of parameters is presented graphically. .A Wallace, V. L. Mason, D. L. .K page-on-demand, demand paging, time-sharing multiprogramming, Markovian computer models, scheduling strategies, operating systems, memory management .I 1893 .T Roots of Polynomials by a Root-Squaring and Resultant routine (Algorithm 340 [C2]) .A Noltemeier, A. .K root finders, roots of polynomial equations, polynomial zeros, root-squaring operations, Graeffe method, resultant procedure, subresultant procedure, testing of roots, acceptance criteria .I 1894 .T Normal Random Deviates (Algorithm 334 [G5]) .A Knop, R. .K normal deviates, normal distribution, random number, random number generator, simulation, probability distribution, frequency distribution, random .I 1895 .T Gaussian Quadrature Formulas (Algorithm 331 [D1]) .A Hill, I. D. .K quadrature, Gaussian quadrature, numerical integration, weight function, orthogonal polynomials .I 1896 .T Regular Coulomb Wave Functions (Algorithm 292 S22]) .A Gautschi, W. .K Coulomb wave functions, wave functions, regular Coulomb wave functions .I 1897 .T Coulomb Wave Functions (Algorithm 300 [S22]) .A Kolbig, K. S. .K Coulomb wave functions, wave functions .I 1898 .T Regular Coulomb Wave Functions (Algorithm 292 [S22]) .A Kolbig, K. S. .K Coulomb wave functions, wave functions, regular Coulomb wave functions .I 1899 .T Simplex Method Procedure Employing Lu Decomposition (Algorithm 350 [H]) .A Bartels, R. H. Golub, G. H. .K simplex method, linear programming, LU decomposition, round-off errors, computational stability .I 1900 .T Clarification of Fortran Standards-Initial Progress .W In 1966 after four years of effort, FORTRAN became the first programming language standardized in the United States. Since that initial achievement, study and application of the standard specifications have revealed the need for maintenance of the standards. As the result of work initiated in 1967, an initial set of clarifying interpretations has been prepared. The nature of the maintenance, corrections to the standard specifications, and completed interpretations are reported. .K USA Standard, FORTRAN, Basic FORTRAN, programming language, standardization, language standard specification, language standard maintenance, language standard clarification, language standard interpretation, standardization committee .I 1901 .T Dynamic Space-Sharing in Computer Systems .W A formalization of relationships between space-shading program behavior, and processor efficiency in computer systems is presented. Concepts of value and cost of space allocation per task are defined and then value and cost are combined to develop a single parameter termed value per unit cost. The intent is to illustrate a possible analytic approach to the investigation of the problems of space-sharing and to demonstrate the method on sample problems. .A Belady, L. A. Kuehner, C. J. .K space-sharing, storage allocation, memory allocation, storage management, memory management, program behavior, multiprogramming, computer system design, allocation strategies, replacement strategies, demand-paging, time-sharing .I 1902 .T An Automatic Grading Scheme for Simple Programming Exercises .W A discussion is given of alterations that were made to a typical university operating system to record the results of programming exercises in three different languages, including assembly language. In this computer-controlled grading scheme provision is made for testing with programmer-supplied data and for final runs with system-supplied data. Exercises run under the scheme may be mixed with other programs, and no special recognition of exercises by the operators is necessary. .A Hext, J. B. Winings, J. W. .K automatic grading program, programming exercises .I 1903 .T Chebyshev Interpolation and Quadrature Formulas of Very High Degree .A Salzer, H. E. .K Chebyshev polynomials, Chebyshev interpolation, Chebyshev quadrature, Chebyshev points, Chebyshev zeros, interpolation, quadrature, definite integrals .I 1904 .T Rough and Ready Error Estimates in Gaussian Integration of Analytic Functions .A Rabinowitz, P. .K numerical integration, analytic functions, error estimates, Gaussian integration, tabulated error coefficients, computable error coefficients, Cauchy integral formula, Chebyshev polynomials .I 1905 .T The Simplex Method of Linear Programming Using LU Decomposition .W Standard computer implementations of Dantzig's simplex method for linear programming are based upon forming the inverse of the basic matrix and updating the inverse after every step of the method. These implementations have bad round-off error properties. This paper gives the theoretical background for an implementation which is based upon the LU decomposition, computed with row interchanges, of the basic matrix. The implementation is slow, but has good round-off error behavior. The implementation appears as CACM Algorithm 350. .A Bartels, R. H. Goulub, G. H. .K simplex method, linear programming, LU decomposition, round-off errors, computational stability .I 1906 .T Automated Printed Circuit Routing with a Stepping Aperture .W A computer program for routing interconnections on a two-sided printed circuit board with a regular pattern of lines, pins (terminals), and vias (feed-through holes) is described. In this program, each interconnection is given a planned routing-typically, down from the upper pin, through a via, and horizontally to the lower pin. From the top, a virtual aperture (i.e. a long horizontal slit) is stepped down the board. The planned routing is the basis for rerouting interconnections within the aperture to resolve conflicts for lines and vias below the aperture and to maximize the effective line usage. If a conflict has not been resolved before the aperture arrives at the lower pin,interconnections are deleted to resolve the conflict. Extensions of this technique to the control of crosstalk between routed interconnections and to the problem of obtaining 100 percent interconnect are also discussed. .A Lass, S.E. .K routing, printed circuit, interconnections, aperture, stepping aperture, computer program, circuit board, lines, vias, pins .I 1907 .T A Note on Reliable Full-Duplex Transmission over Half-Duplex Links .W A simple procedure for achieving reliable full-duplex transmission over half-duplex links is proposed. The scheme is compared with another of the same type, which has recently been described in the literature. Finally, some comments are made on another group of related transmission procedures which have been shown to be unreliable under some circumstances. .A Bartlett, K. A. Scantlebury, R. A. .K data transmission, error correction, full-duplex, half-duplex, transmission control, communications .I 1908 .T Time-Sharing and Batch-Processing: An Experimental Comparison of Their Values in a Problem - Solving Situation .W An experimental comparison of problem-solving using time-sharing and batch-processing computer systems conducted at MIT is described in this paper. This study is the first known attempt to evaluate two such systems for what may well be the predominant user population within the next decade-the professionals who, as nonprogrammers, are using the computer as an aid in decision-making and problem-solving rather than as a programming end in itself. Statistically and logically significant results indicate equal cost for usage of the two computer systems; however, a much higher level of performance is attained by time-sharing users. There are indications that significantly lower costs would have resulted if the time-sharing users had stopped work when they reached a performance level equal to that of the batch users. The users' speed of problem-solving and their attitudes made time-sharing the more favorable system. .A Gold, M. M. .K time-sharing vs batch-processing, user performance, man/machine communications, cost effectiveness, on-line vs off-line performance, decision-making performance, user/programmer behavior, programming experimental empirical studies, problem-solving, research in man/machine communications, man/machine symbiosis .I 1909 .T Computation of Jn(x) by Numerical Integration .W It is shown to be practical to compute Jn(x) by numerical integration of its integral representation using the trapezoidal rule. The error in this approximation was studied empirically. .A Stroud, A. H. Kohli, J. P. .K Bessel Function, numerical integration, trapezoidal rule .I 1910 .T An Algorithm for Solving a Special Class of Tridiagonal Systems of Linear Equations .W An algorithm is presented for solving a system of linear equation Bu=k where B is tridiagonal and of a special form. It is shown that this algorithm is almost twice as fast as the Gaussian elimination method usually suggested for solving such systems. In addition, explicit formulas for the inverse and determinant of the matrix B are given. .A Rose, D. J. .K tridiagonal, Gaussian elimination, central difference .I 1911 .T On Coordination Reduction and Sentence Analysis .W A class of coordination phenomena in natural languages is considered within the frame work of transformational theory. To account for these phenomena it is proposed that certain machinery be added to the syntactic component of a transformational grammar. This machinery includes certain rule schemata, the conditions under which they are to be applied, and conditions determining the sequence of subtrees on which they are to be performed. A solution to the syntactic analysis problem for this class of grammars is outlined. Precise specification of both the generative procedure of this paper and its inverse is given in the form of LISP function definitions. .A Petrick, S. R. Postal, P. M. Rosenbaum, P. S. .K natural languages, generative grammar, transformational theory, syntax, coordination, sentence coordination, sentence coordination, coordination reduction, syntactic analysis, grammar testing program, rule testing .I 1912 .T Simulation of Outpatient Appointment Systems .W An experimental computer program is described which simulates appointment systems employed by outpatient departments of hospitals. Both major kinds of appointment systems-individual and block-can be simulated. The purpose of the Simulator is to enable the user to evaluate the effectiveness of alternative appointment systems in a given clinical environment. .A Katz, J. H. .K simulation, scheduling, appointment system, outpatient department, medicine, health, management science, operations research .I 1913 .T Polygamma Functions with Arbitrary Precision (Algorithm 349 [S14]) .A Schwachheim, G. .K polygamma function, psi function, digamma function, trigamma function, tetragamma function, pentagamma function, special functions .I 1914 .T Matrix Scaling by Integer Programming (Algorithm 348 [F1]) .A Klimpel, R. R. .K integer programming, linear algebra, mathematical programming, matrix condition, matrix scaling .I 1915 .T An Algorithm for Hidden Line Elimination .W The algorithm presented causes the elimination of hidden lines in the representation of a perspective view of concave and convex plane-faced objects on the picture plane. All the edges of the objects are considered sequentially, and all planes which hide every point of an edge are found. The computing time increases roughly as the square of the number of edges. The algorithm takes advantage of a reduced number of concave points and automatically recognizes if only one object with no concave points is considered. In this last case, the result is obtained in a much simpler way. .A Galimberti, R. Montanari, U. .K hidden line elimination, back line recognition, three-dimensional representation, plane-faced objects, perspective view, machine rendering of solids, automatic drawing, displaying techniques, computer graphics, man/machine interaction, man/machine communication, computer-aided design .I 1916 .T Analysis of Boolean Program Models for Time-Shared, Paged Environments .W Directed graphs or their associated matrices are frequently used to represent the logical structure of sequences of computer instructions. Such techniques are used and, in addition, data references are represented in a nondirected model. The complete structural specification of a program is represented by a combined model. A transformation of the combined model yields a new model in which additional timing information is also contained. Analysis of these models prior to execution yields information valuable in determining segmentation of instructions and data for a time-shared environment, as well as for initial page loading; during execution, the analysis may be used for "look ahead" control of page turning. .A Lowe, T. C. .K time-sharing, paging, segmentation, executive, compiler, monitor, program model .I 1917 .T An Algol Procedure for the Fast Fourier Transform with Arbitrary Factors (Algorithm 339 [C6]) .A Singleton, R. C. .K fast Fourier transform, complex Fourier transform, multivariate Fourier transform, Fourier series, harmonic analysis, spectral analysis, orthogonal polynomials, orthogonal transformation, virtual core memory, permutation .I 1918 .T Distribution of Indistinguishable Objects into Distinguishable Slots (Algorithm 329 [G6]) .A Gray, M. .I 1919 .T An Efficient Algorithm for Sorting with Minimal Storage (Algorithm 347 [M1]) .A Singleton, R. C. .K sorting, minimal storage sorting, digital computer sorting .I 1920 .T F-Test Probabilities (Algorithm 346 [S14]) .A Morris, J. .K F-test, Snedecor F-statistic, Fisher Test, distribution function .I 1921 .T An Algol Convolution Procedure Based on the Fast Fourier Transform (Algorithm 345 [C6]) .A Singleton, R. C. .K fast Fourier transform, complex Fourier transform, multivariate Fourier transform, Fourier series, harmonic analysis, spectral analysis, orthogonal polynomials, orthogonal transformation, convolution, auto covariance, autocorrelation, cross-correlation, digital filtering, permutation .I 1922 .T Proposed USA Standard (Data Communication Control Procedures for the USA Standarad Code for Information Interchange) .K data communication, data communication control procedures, data communication establishment/termination procedures, data communication message transfer procedures, data communication error control procedures, data communication polling/selection procedures, communication, communication control procedures, communication establishment/termination procedures, communication message transfer procedures, communication error control procedures, communication polling/selection procedures, link, link control procedures, link establishment/termination procedures, link message transfer procedures, link error control procedures, link polling/selection procedures, data link, data link control procedures, data link establishment/termination procedures, data link message transfer procedures, data link error control procedures, data link polling/selection procedures .I 1923 .T Pseudofiles .W An approach to system interfaces for high level languages using basic input/output support facilities is described. It is shown that this technique can provide potentially inexpensive methods for programs to communicate with deeply embedded facilities such as command language processors. .A Rosin, R. F. .K operating systems, interfaces input-output, high level languages, command language .I 1924 .T Organizing Matrices and Matrix Operations for Paged Memory Systems .W Matrix representations and operations are examined for the purpose of minimizing the page faulting occurring in a paged memory system. It is shown that carefully designed matrix algorithms can lead to enormous savings in the number of page faults occurring when only a small part of the total matrix can be in main memory at one time. Examination of addition, multiplication, and inversion algorithms shows that a partitioned matrix representation (i.e. one submatrix or partition per page) in most cases induced fewer page faults than a row-by-row representation. The number of page-pulls required by these matrix manipulation algorithms is also studied as a function of the number of pages of main memory available to the algorithm. .A McKellar, A. C. Coffman Jr., E. G. .K matrix algorithms, array processing, paging algorithms, paged memory systems, virtual memory systems, array storage allocation, storage allocation .I 1925 .T Concepts of Use in Contour Map Processing .W Generalized techniques whose use can simplify the solution of problems relating to contour maps. One of these techniques makes use of the topological properties of contour maps. The topology is represented by a graphical structure in which adjacent contour lines appear as connected nodes. Another generalized technique consists of utilizing geometrical properties to determine the characteristics of straight lines drawn on the contour map. Both of these techniques have been applied to the problem of locating the ground track of an aircraft from elevation readings obtained during a flight. .A Morse, S. P. .K map, contour map, contour lines, topological properties, geometrical properties, graph of contour map, navigation .I 1926 .T Description of FORMAT, a Text-Processing Program .W FORMAT is a production program which facilitates the editing and printing of "finished" documents directly on the printer of a relatively small (64k) computer system. It features good performance, totally free-form input, very flexible formatting capabilities including up to eight columns per page, automatic capitalization, aids for index construction, and a minimum of nontext items. It is written entirely in FORTRAN IV. .A Berns, G. M. .K text processing, indexing, printing, documentation, text editing, formatting, frequency dictionary, right justification, vocabulary .I 1927 .T Information Science in a Ph.D. Computer Science Program .W This report contains recommendations on a sample course curriculum in the general area of information organization and information system design in a Ph.D. Computer Science Program. The subject area is first briefly described, followed by a listing of some desirable graduate-level courses. Suitable bibliographies are appended. .A Salton, G. .K course curriculum, graduate courses, university courses,computer science curriculum, information science, information organization, information retrieval, data retrieval, language analysis, information processing .I 1928 .T Exclusive Simulation of Activity in Digital Networks .W A technique for simulating the detailed logic networks of large and active digital systems is described. Essential objectives sought are improved ease and economy in model generation, economy in execution time and space, and a facility for handling simultaneous activities. The main results obtained are a clear and useful separation of structural and behavioral model description, a reduction of manual tasks in converting Boolean logic into a structural model, the elimination of manual processes in achieving exclusive simulation of activity, an event-scheduling technique which does not deteriorate in economy as the event queue grows in length, and a simulation procedure which deals effectively with any mixture of serial and simultaneous activities. The passage of time is simulated in a precise, quantitative fashion and systems to be simulated may be combinations of synchronous and asynchronous logic. Certain aspects of the techniques described may be used for the simulation of network structures other than digital networks. .A Ulrich, E. G. .K simulation, logical simulation, digital simulation, large systems simulation, network structures, scheduling, queuing, simultaneous activities, parallel events .I 1929 .T Images from Computers and Microfilm Plotters .W Digital computers are widely used for the processing of information and data of all kinds, including the pictorial information contained in photographs and other graphical representations. Efficient conversion facilities for putting graphical information into the computer and retrieving it in graphical form are therefore much needed. One of the most commonly employed devices for obtaining permanent graphical output from digital computers is the microfilm plotter. Regrettably, present models have no provision for producing images with a continuous gray scale or "half tones." In this note several programming techniques are described for obtaining half tone pictures from a microfilm plotter under the control of a digital computer. Illustrative examples of several methods are given. .A Schroeder, M. R. .K computer images, half tone pictures, microfilm plotters; processing .I 1930 .T Extremely Portable Random Number Generator .W Extremely portable subroutines are sometimes needed for which moderate quality and efficiency suffice. Typically, this occurs for library functions (like random number generation and in core sorting) which are not entirely universal or are not used in a standardized way. The literature on random number generators does not seem to contain an algorithm that meets requirements of this sort. An extremely portable 8-line FORTRAN program is provided which based on an important paper by Coveyou and MacPherson (1967).Using their methods, Fourier analysis is applied to the probability function for the consecutive n-tuples provided by our generator (with n less than or equal to 4). While the small modulus which must be used to maintain portability prevents the quality of the generator from being high, the generator compares well with the bounds established in the above mentioned paper. .A Kruskal, J. B. .K random number generators, random numbers, random number analysis, random generators, linear sequential generators, random number program, pseudo random numbers .I 1931 .T Interval Arithmetic Determinant Evaluation and Its Use in Testing for a Chebyshev System .W Two recent papers, one by Hansen and one by Hansen and R. R. Smith, have shown how Interval Arithmetic (I.A.) can be used effectively to bound errors in matrix computations. In the present paper a method proposed by Hasen and R. R. Smith is compared with straightforward use of I.A. in determinant evaluation. Computational results show the accuracy and running times that can be expected when using I.A. for determinant evaluation. An application using I.A. determinants in a program to test a set of functions to see if they form a Chebyshev system is then presented. .A Smith, L. B. .K interval arithmetic, range arithmetic, error bounds, determinant evaluation, Chebyshev system, mathematical proof by computer .I 1932 .T The Logarithmic Error and Newton's Method for the Square Root .W The problem of obtaining optimal starting values for the calculation of the square root using Newton's method is considered. It has been pointed out elsewhere that if relative error is used as the measure of goodness of fit, optimal results are not obtained when the initial approximation is a best fit. It is shown here that if, instead, the so-called logarithmic error is used, then a best initial fit is optimal for both types of error. Moreover, use of the logarithmic error appears to simplify the problem of determining the optimal initial approximation. .A King, R. F. Phillips, D. L. .K square root, Newton's method, relative error, logarithmic error, best fit, optimal approximation, maximal error, recurrence relation, integer root, error curve .I 1933 .T Coding the Lehmer Pseudo-random Number Generator .W An algorithm and coding technique is presented for quick evaluation of the Lehmer pseudo-random number generator modulo 2**31 - 1, a prime Mersenne number with produces 2**31 - 2 numbers, on a p-bit (greater than 31) computer. The computation method is extendible to limited problems in modular arithmetic. Prime factorization for 2**61 - 2 and a primitive root for 2**61 - 1, the next largest prime Mersenne number, are given for possible construction of a pseudo-random number generator of increased cycle length. .A Payne, W. H. Rabung, J. R. Bogyo, T. P. .K pseudo-random number, random number, modular arithmetic, uniform probability density, uniform frequency function, simulation, prime factorization, primitive roots .I 1934 .T On Arithmetic Expressions and Trees .W A description is given of how a tree representing the evaluation of an arithmetic expression can be drawn in such a way that the number of accumulators needed for the computation can be represented in a straightforward manner. This representation reduces the choice of the best order of computation to a specific problem under the theory of graphs. An algorithm to solve this problem is presented. .A Redziejowski, R. R. .K arithmetic expression, compiler design, graph theory, programming, storage minimization, topological ordering,tree .I 1935 .T Randomized Binary Search Technique .W A mathematical model is developed for the mean and variance of the number of trials to recover a given document in a randomly received list of files. The search method described is binary in nature and offers new potential for information retrieval systems. .A Arora, S. R. Dent, W. T. .K binary pattern, file examination, graph theory, information retrieval, mathematical model, partitioning, probabilistic method, random sequencing, search techniques, tree structures .I 1936 .T Variable Length Tree Structures Having Minimum Average Search Time .W Sussenguth suggests in a paper (1963) that a file should be organized as a doubly-chained tree structure if it is necessary both to search and to update frequently. Such a structure provides a compromise between the fast search/slow update characteristics of binary searching and the slow search/fast update characteristics of serial searching. His method, however, contains the limiting restriction that all terminal nodes lie on the same level of the tree. This paper considers the effect of relaxing this restriction. First, trees which have the property that a priori the filial set of each node is well defined are studied. It is proved that coding the nodes within each filial set with respect to the number of terminal nodes reachable from each is necessary and sufficient to guarantee minimum average search time. Then the more general case (that is, where the entire structure of the tree is changeable) is treated. A procedure is developed for constructing a tree with a minimum average search time. A simple closed expression for this minimum average search time is obtained as a function of the number of terminal nodes. The storage capacity required to implement the doubly-chained tree structure on a digital computer is also determined. Finally, the total cost of the structure, using Sussenguth's cost criterion, is computed. It is shown that significant improvements in both the average search time and the total cost can be obtained by relaxing Sussenguth's restriction that all terminal nodes lie on the same level of the tree. .A Patt, Y. N. .K information retrieval, file searching, tree structures, double chaining .I 1937 .T CODAS: A Data Display System .W CODAS, a Customer Oriented Data System, is a user-oriented data retrieval and display system. The command language of the system provides the user with an easy means for specifying data retrieval and display requests. Data is displayed as tables and graphs produced in a format ready for publication. In this paper the statements of the request language and the general system design are described. .A Day, R. H. Mansfield, M. K. Ellis, M. E. .K data display, information retrieval, graphic display, command languages, report program generation, management data processing .I 1938 .T Some Criteria for Time-Sharing System Performance .W Time-sharing systems, as defined in this article, are those multiaccess systems which permit a terminal user to utilize essentially the full resources of the system while sharing its time with other terminal users. It is each terminal user's ability to utilize the full resources of the system that makes quantitative evaluation of time-sharing systems particularly difficult. Six criteria are described which have been successfully used to perform first-level quantitative time-sharing system performance evaluation. .A Stimler, S. .K time-sharing performance criteria, time-sharing system operation, time-sharing performance analysis .I 1939 .T Directed Random Generation of Sentences .W The problem of producing sentences of a transformational grammar by using a random generator to create phrase structure trees for input to the lexical insertion and transformational phases is discussed. A purely random generator will produce base trees which will be blocked by the transformations, and which are frequently too long to be of practical interest. A solution is offered in the form of a computer program which allows the user to constrain and direct the generation by the simple but powerful device of restricted subtrees. The program is a directed random generator which accepts as input a subtree with restrictions and produces around it a tree which satisfies the restrictions and is ready for the next phase of the grammar. The underlying linguistic model is that at Noam Chomsky, as presented in Aspects of the Theory of Syntax. The program is written in FORTRAN IV for the IBM 360/67 and is part of a unified computer system for transformational grammar. It is currently being used with several partial grammars of English. .A Friedman, J. .K transformational grammar, natural language syntax, language processing, sentence generation, computational linguistics, syntax .I 1940 .T Calculation of a Polynomial and its Derivative Values by Horner Scheme (Algorithm 337 [C1]) .A Smith, O. K. .K function, evaluation, polynomial evaluation, ALGOL procedure, Horner's scheme .I 1941 .T F-Distribution (Algorithm 322 [S14]) .A Field, J. B. F. .K Fisher's F-distribution, Students's t-distribution .I 1942 .T Finding a Solution of N Functional Equations in N Unknowns (Algorithm 314 [C5]) .A Vandergraft, J. Mesztenyi, C. .K functional equations, interpolation, nonlinear equations, secant method .I 1943 .T Complete Elliptic Integrals (Algorithm 165 [S21]) .A Farkas, I. .K special functions, complete elliptic integral of the first kind, complete elliptic integral of the second kind .I 1944 .T Student's t-Distribution (Algorithm 344 [S14]) .A Levine, D. A. .K Student's t-Distribution, t-test, small-sample statistics, distribution function .I 1945 .T The Role of Programming in a Ph.D. Computer Science Program .W In this general paper the role of programming in advanced graduate training is discussed. Subject matter related to programming as well as programming per se is considered. The importance and application of formalism are considered and also the need for good empirical experimentation. A brief outline for a sequence of courses is included, and subject headings that have been obtained from an extensive bibliography are given. A bibliography of programming references is included. .A Arden, B. W. .K graduate-level programming, graduate programs, course content, course sequence, graduate curriculum, programming research topics, programming bibliography .I 1946 .T Computing Polynomial Resultants: Bezout's Determinant vs. Collins' Reduced P.R.S. Algorithm .W Algorithms for computing the resultant of two polynomials in several variables, a key repetitive step of computation in solving systems of polynomial equations by elimination, are studied. Determining the best algorithm for computer implementation depends upon the extent to which extraneous factors are introduced, the extent of propagation of errors caused by truncation of real coefficients, memory requirements, and computing speed. Preliminary considerations narrow the choice of the best algorithm to Bezout's determinant and Collins' reduced polynomial remainder sequence (p.r.s.) algorithm. Detailed tests performed on sample problems conclusively show that Bezout's determinant is superior in all respects except for univariate polynomials, in which case Collins' reduced p.r.s. algorithm is somewhat faster. In particular Bezout's determinant proves to be strikingly superior in numerical accuracy, displaying excellent stability with regard to round-off errors. Results of tests are reported in detail. .A Ku, S. Y. Adler, R. J. .K resultant algorithm, g.c.d. algorithm, polynomial resultant, elimination, Bezout's determinant, Sylvester's determinant, reduced p.r.s. algorithm, Euclidean algorithm, multivariate polynomial equations .I 1947 .T Object code Optimization .W Methods of analyzing the control flow and data flow of programs during compilation are applied to transforming the program to improve object time efficiency. Dominance relationships, indicating which statements are necessarily executed before others, are used to do global common expression elimination and loop identification. Implementation of these and other optimizations in OS/360 FORTRAN H are described. .A Lowry, E. S. Medlock, C. W. .K compilers, data flow analysis, dominance, efficiency, FORTRAN, graph theory, loop structure, machine instructions, object code, optimization, redundancy elimination, register assignment, System/360 .I 1948 .T Computers in Group Theory: a Survey .W Computers are being applied to an increasingly diverse range of problems in group theory. The most important areas of application at present are coset enumeration, subgroup lattices, automorphism groups of finite groups, character tables, and commutator calculus. Group theory programs range from simple combinatorial or numerical programs to large symbol manipulation systems. In this survey the more important algorithms in use are described and contrasted, and results which have been obtained using existing programs are indicated. An extensive bibliography is included. .A Cannon, J. J. .K group theory, coset enumeration, subgroup lattices, automorphism groups, character tables, commutator calculus, topology, crystallography, permutation groups, Abelian groups, discrete mathematics, non-numerical programming, symbol manipulation, survey .I 1949 .T Finiteness Assumptions and Intellectual Isolation of Computer Scientists .A Wagner, R. A. .K Algol vs. Fortran, finiteness assumptions, intellectual isolation, integer variable range, memory finiteness, finite word size .I 1950 .T Efficient Handling of Binary Data .A Raduchel, W. J. .K binary variables, dummy variables, bit strings, cross-tabulations .I 1951 .T Estimates of Distributions of Random Variables for Certain Computer Communications Traffic Models .W A study of multiaccess computer communications has characterized the distributions underlying an elementary model of the user-computer interactive process. The model used is elementary in the sense that many of the random variables that generally are of interest in computer communications studies can be decomposed into the elements of this model. Data were examined from four operational multiaccess systems, and the model is shown to be robust; that is each of the variables of the model has the same distribution independent of which of the four systems is being examined. It is shown that the gamma distribution can be used to describe the discrete variables. Approximations to the gamma distribution by the exponential distribution are discussed for the systems studied. .A Fuchs, E. Jackson, P. E. .K computer communications, time-sharing, operating systems, optimization models .I 1952 .T Index by Subject to Algorithms, 1970 .I 1953 .T Exponential Integral Ei(x) (Algorithms 385 $S13)) .A Redish, K. A. .K ANSI Fortran standard .I 1954 .T Eigenvalues and Eigenvectors of a Real Symmetric Matrix (Algorithm 384 $F2)) .A Stewart, G. W. .K real symmetric matrix, eigenvalues, eigenvectors, QR algorithm .I 1955 .T Characteristic Values and Associated Solutions of Mathieu's Differential Equation (Algorithm 352 $S22)) .A Sale, A. H. J. .K Mathieu's differential equation, Mathieu function, characteristic value, periodic solution, radial solution .I 1956 .T Optimum Merging from Mass Storage .W An algorithm is displayed which yields the merge orders such that the total read time, defined to be the sum of seek time plus data-transfer time, is minimized for a sort using mass storage. The analysis is parameterized in terms of the ratio of seek time to the time it takes to fill available core with records, and the file size in units of core lengths; and thus it can be applied to any conventional CPU/mass storage combination. An explicit formula for total read time is derived, in terms of the parameters, which correlates very well with the total read time calculated using the optimum merge orders yielded by the algorithm. The formula involves the roots of a simple transcendental equation. A short table of these roots is included. Numerical results are graphically displayed for a wide range of the parameters. It is found that the normalized read time for optimum merging on a given hardware configuration is proportional to the file length times the logarithm of the file length. .A Black, N. A. .K sorting, merging, optimum merging, mass storage, sort timing, drum-merging, access time .I 1957 .T The List Set Generator: A Construct for Evaluating Set Expressions .W The list set generator is defined and algorithms for its use are given. The list set generator is a construct which may be added to a list processing system or any system that handles sets. It efficiently generates the set which results from any expression involving sets and set operators. The efficiency derives from evaluating the expression as a whole and in parallel, rather than evaluating subexpressions and then using those sets to arrive at the final result. .A Shapiro, S. C. .K set manipulating, list processing, set generation, sets, lists, file processing .I 1958 .T Improving Round-off in Runge-Kutta Computations with Gill's Method .W A Runge-Kutta-Gill scheme in common use is based on an incomplete adaptation for floating point operations of Gill's method. An improved version reduces round-off error significantly. In this note the heart of the scheme is presented in Fortran language. It is then shown how an improved version of the method can be obtained with the addition of two Fortran statements. The two version is a significant improvement. A numerical example comparing the two is included. .A Thompson, R. J. .K Runge-Kutta methods, ordinary differential equations, round-off error, error analysis .I 1959 .T An Interrupt Based Organization for Management Information Systems .W A programming structure, language constructs, and a supervisory system organization are proposed for the design and coding of large shared data base systems. The bases for this organization are a generalized interrupt structure and the newly introduced concept of "file tagging," which is the process of associating program structures and interrupt generating conditions with items in the data base. An algorithm for resolving conflicts which arise in scheduling the interrupt processing routines is presented. DPL, a programming language and supervisory system in which these concepts are implemented, is used to illustrated the new organization which is proposed for management information systems. .A Morgan, H. L. .K management information systems, integrated data processing, supervisors, interrupts monitoring systems, supervisory systems, interrupt scheduling, parallel processing .I 1960 .T Process Management and Resource Sharing in the Multiaccess System ESOPE .W The main design principles of the multiaccess system ESOPE are described. Emphasis is placed on basic ideas underlying the design rather than on implementation details. The main features of the system include the ability given to any user to schedule his own parallel processes using system primitive operations, the file-memory relationship, and the allocation-scheduling policy, which dynamically takes into account recent information about user behavior. .A Betourne, C. Boulenger, J. Ferrie, J. Kaiser, C. Krakowiak, S. Mossiere, J. .K time-sharing, multiprogramming, process scheduling, resource allocation .I 1961 .T An Efficient Search Algorithm to Find the Elementary Circuits of a Graph .W A theoretically most efficient search algorithm is presented which uses an exhaustive search to find all of the elementary circuits of a graph. The algorithm can be easily modified to find all of the elementary circuits with a particular attribute such as length. A rigorous proof of the algorithm is given as well as an example of its application. Empirical bounds are presented relating the speed of the algorithm to the number of vertices and the number of arcs. The speed is also related to the number of circuits in the graph to give a relation between speed and complexity. Extensions to undirected and s-graphs are discussed. .A Tiernan, J. C. .K algorithm, graph theory, circuit search algorithm, path search algorithm, searching .I 1962 .T GROOVE-A Program to Compose, Store, and Edit Functions of Time .W A program which makes possible creating, storing, reproducing, and editing functions of time is described. The functions are typical of those generated by human beings. Multiple functions (up to 14) are produced for long periods of time (up to several hours) at sufficiently high sampling rates to describe fast human reactions (up to 200 samples per second). The functions can be used for a variety of purposes such as the control of machine tools or sound synthesizers or anything a person normally controls. The program operates on a small computer (DDP-224). Functions are stored on a disk file. Functions may be created by real-time human inputs to the computer which can interact with already stored functions and computed functions. Real-time feedback from the process being controlled is an important link in the system. The environment for effective man-machine interaction has been carefully nurtured. .A Mathews, M. V. Moore, F. R. .K computer music, music, real-time control, digital control, time functions, interactive software, hybrid systems, conductor program .I 1963 .T Condition Numbers of PEI Matrices .A Rokne, J. .K matrices, condition numbers, Pei matrices, eigenvectors, eigenvalues .I 1964 .T Comment on the Working Set Model for Program Behavior .A Bernstein, A. .K demand paging, working set, paging rate, multiprogramming .I 1965 .T Correction to "Logical" Arithmetic on Computers with Two's Complement Binary Arithmetic .A Ehrman, J. R. .K binary arithmetic, unsigned operand arithmetic, maximum significance arithmetic, full-precision arithmetic .I 1966 .T A Generalized Method for Generating Argument/Function Values .A Wilson, W. J. .K mapping function, decision hierarchy, table look-up .I 1967 .T An Improved Algorithm to Produce Complex Primes (Algorithm 401 $A1)) .A Bratley, P. .K number theory, prime numbers, complex numbers .I 1968 .T Eigenvalues and Eigenvectors of a Real General Matrix (Algorithm 343 $F1)) .A Knight, W. Mersereau, W. .K eigenvalues, eigenvectors, latent roots, Householder's method, QR algorithm, inverse iteration .I 1969 .T Increasing the Efficiency of Quicksort (Algorithm 402 $M1)) .A Van Emden, M. H. .K sorting, quicksort .I 1970 .T Unrecorded Magnetic Tape for Information Interchange (9 Track-200 and 800 CPI, NRZI and 1600 CPI, PE)* (Proposed American National Standard) .K input-output, magnetic tape, information interchange, measurement, instrumentation, phase encoded recording .I 1971 .T Recorded Magnetic Tape for Information Interchange (1600 CPI, Phase Encoded)* (Proposed American National Standard) .K input-output, magnetic tape, information interchange, measurement, instrumentation, phase encoded recording .I 1972 .T A Nonrecursive List Compacting Algorithm .W A simple nonrecursive list structure compacting scheme or garbage collector suitable for both compact and LISP-like list structures is presented. The algorithm avoids the need for recursion by using the partial structure as it is built up to keep track of those lists that have been copied. .A Cheney, C. J. .K list compacting, garbage collection, compact list, LISP .I 1973 .T The Linear Quotient Hash Code .W A new method of hash coding is presented and is shown to possess desirable attributes. Specifically, the algorithm is simple, efficient, and exhaustive, while needing little time per probe and using few probes per lookup. Performance data and implementation hints are also given. .A Bell, J. R. Kaman, C. H. .K hashing, hash code, scatter storage, calculated address, search, table, lookup, symbol table, keys .I 1974 .T NEATER2: A PL/I Source Statement Reformatter .W NEATER2 accepts a PL/I source program and operates on it to produce a reformatted version. When in the LOGICAL mode, NEATER2 indicates the logical structure of the source program in the indentation pattern of its output. Logic errors discovered through NEATER2 logical analysis are discovered much more economically than is possible through compilation and trial runs. A number of options are available to give the user full control over the output format and to maximize the utility of NEATER2 as an aid during the early stages of development of a PL/I source deck. One option, USAGE, causes NEATER2 to insert into each logical unit of coding a statement which will case the number of times each one is executed to be recorded during execution. This feature is expected to provide a major aid in optimization of PL/I programs. .A Conrow, K. Smith, R. G. .K logical analysis of PL/I source, reformatting of PL/I source, documentation aid, execution time usage data .I 1975 .T A Multiple-Precision Division Algorithm .W A generalized division algorithm for use with positive integral operands is presented. Depending upon the algebraic relationship of the first two ciphers of the divisor, one or at most two adjustments to the original divisor and dividend must be performed before the division operation can be initiated. The uniqueness of this method will cause each trial cipher in the quotient to be either equal to or one greater than its final replacement. .A Mifsud, C. J. .K multiple-precision, division, adjustment, generalize .I 1976 .T Multi-attribute Retrieval with Combined Indexes .W In this paper a file organization scheme designed to replace the use of the popular secondary index filing scheme (or inverted files on secondary key fields) is described. Through the use of redundancy and storing keys (or access numbers of the records) that satisfy different combinations of secondary index values in "buckets," it is possible to retrieve all keys satisfying any input query derived from a subset of fields by a single access to an index file, although each bucket may be used for many combinations of values and a combination of buckets may be required for a given query. The method which, in its degenerate case, becomes the conventional secondary index filing scheme works similarly but has the following advantages: (1) the elimination of multiple accesses in many cases; (2) the elimination of false drops; (3) the elimination of computer time to perform intersection of key sets each qualified for one secondary index field only; and (4) the avoidance of long strings of keys when an index field appearing in a query has very few possible values. Redundancy, in some cases, is the same as the secondary indexing method. In the general case, trade-off between the number of accesses for query and redundancy exists. .A Lum, V. Y. .K file organization, secondary index files, inverted files, information retrieval, data management, access method, secondary keys, storage with buckets, rapid retrieval, balanced filing scheme, elimination of false drops, combining indexes, query, multi-attribute retrieval .I 1977 .T An Interactive Display for Approximation by Linear Programming .W An interactive program with a graphical display has been developed for the approximation of data by means of a linear combination of functions (including splines) selected by the user. The coefficients of the approximation are determined by linear programming so as to minimize the error in either the L1 or L-infinity norm. Auxiliary conditions such as monotonicity or convexity of the approximation can also be imposed. This interactive system is described and several examples of its use are given. .A LaFata, P. Rosen, J. B. .K approximation, data fitting, functional approximation, linear programming, interactive graphical display, spline functions .I 1978 .T The Use of Interactive Graphics To Solve Numerical Problems .W With the advent of on-line (time-sharing) computer systems and graphic terminals, we have available a new dimension in numerical problem solving capabilities. Rather than simply use the new power to achieve fast turnaround, we can develop interactive routines which are easy to use and also take advantage of the insight and visual capabilities of the human problem solver. Several on-line systems for general purpose mathematical problem solving have already been implemented as well as some special purpose systems for solving problems in a particular area such as ordinary differential equations. The advantage of restricting the problem area is that the interface with a user can be greatly simplified. In this paper we discuss some of the advantages accrued by such systems and design considerations for interactive routines. Furthermore, an implementation of an on-line least squares data-fitting program, PEG, is presented with results obtained from empirical data. In conclusion, area for future work in this field are discussed. .A Smith, L. B. .K interactive graphics, computer graphics, graphics, least squares, data-fitting, interactive computing, on-line mathematics .I 1979 .T Numerical Inversion of Laplace Transforms (Algorithm 368 $D5)) .A Stehfest, H. .K Laplace transform inversion, integral transformations, integral equations .I 1980 .T An Efficient Algorithm for Sorting with Minimal Storage (Algorithm 347 $M1)) .A Peto, R. .K sorting, ranking, minimal storage sorting, digital computer sorting .I 1981 .T Normal Curve Integral (Algorithm 304 $S15)) .A Holmgren, B. .K normal curve integral, probability, special functions .I 1982 .T Modified Havie Integration (Algorithm 400 $D1)) .A Wallick, G. C. .K numerical integration, Havie integration, Romberg quadrature, modified Romberg-quadrature, trapezoid values, rectangle values .I 1983 .T Spanning Tree $H) (Algorithm 399) .A Seppanen, J. J. .K graph, tree, spanning tree .I 1984 .T Tableless Date Conversion $Z) (Algorithm 398) .A Stone, R. A. .K date, calendar .I 1985 .T An Integer Programming Problem $H) (Algorithm 397) .A Chang, S. K. Gill, A. .K integer programming, change making problem .I 1986 .T Student's t-Quantiles $S14) (Algorithm 396) .A Hill, G. W. .K Student's t-statistic, quantile, asymptotic approximation .I 1987 .T Student's t-Distribution $S14) (Algorithm 395) .A Hill, G. W. .K Student's t-statistic, distribution function, approximation, asymptotic expansion .I 1988 .T A Formalism for Translator Interactions .W A formalism is presented for describing the actions of processors for programming languages-compilers, interpreters, assemblers-and their interactions in complex systems such as compiler-compilers or extendible languages. The formalism here might be used to define and answer such a question as "Can one do bootstrapping using a meta-compiler whose metaphase is interpretive?" In addition an algorithm is presented for deciding whether or not a given system can be produced from a given set of component processors. .A Earley, J. .K translator, compiler, interpreter, bootstrapping, language processor, compiler-compiler .I 1989 .T Transition Network Grammars for Natural Language Analysis .W The use of augmented transition network grammars for the analysis of natural language sentences is described. Structure-building actions associated with the arcs of the grammar network allow for the reordering, restructuring, and copying of constituents necessary to produce deep-structure representations of the type normally obtained from a transformational analysis, and conditions on the arcs allow for a powerful selectivity which can rule out meaningless analyses and take advantage of semantic information to guide the parsing. The advantage of this model for natural language analysis are discussed in detail and illustrated by examples. An implementation of an experimental parsing system for transition network grammars is briefly described. .A Woods, W. A. .K computational linguistics, grammars, grammar models, linguistics, natural language analysis, parsing, semantic interpretation, transition network grammars, transformational grammars .I 1990 .T Numerical Constants (Algorithm) .A Dunham, C. B. .K numerical algorithm, numerical constants .I 1991 .T On the Number of Automorphisms of a Singly Generated Automaton .A Bavel, Z. .K automata, finite automata, singly generated automata, automorphisms, generators, length of state, minimal-length generators, orbit .I 1992 .T Comment on Bell's Quadratic Quotient Method for Hash Code Searching .A Lamport, L. .K hashing, hash code, scatter storage, calculated address, clustering, search, symbol table, keys, table look-up .I 1993 .T Regular Coulomb Wave Functions (Algorithm 292 $S22)) .A Cody, W. J. Paciorek, K. A. .K Coulomb wave functions, wave functions, regular Coulomb wave functions .I 1994 .T Decision Table Translation $H) (Algorithm 394) .A Dial, R. B. .K Decision table, decision table translation .I 1995 .T Special Series Summation with Arbitrary Precision $C6) (Algorithm 393) .A Abdali, S. K. .K function evaluation, series summation, approximation .I 1996 .T Systems of Hyperbolic PDE $D3) (Algorithm 392) .A Smith, R. R. McCall, D. .K hyperbolic p.d.e., characteristic, extrapolation, second order p.d.e., quasilinear p. d. e. .I 1997 .T Increasing the Efficiency of Quicksort .W A method is presented for the analysis of various generalizations of quicksort. The average asymptotic number of comparisons needed is shown to be an log^2(n). A formula is derived expressing a in terms of the probability distribution of the "bound" of a partition. This formula assumes a particularly simple form for a generalization already considered by Hoare, namely, choice of the bound as median of a random sample. The main contribution of this paper is another generalization of quicksort, which uses a bounding interval instead of a single element as bound. This generalization turns out to be easy to implement in a computer program. A numerical approximation shows that a = 1.140 for this version of quicksort compared with 1.386 for the original. This implies a decrease in number of comparisons of 18 percent; actual tests showed about 15 percent saving in computing time. .A van Emden, M. H. .K sorting, quicksort, information content, entropy, distribution of median .I 1998 .T Complex Matrix Inversion Versus Real .W A comparison of complex matrix with real matrix inversion is made. It is shown that the complex inversion can be up to twice as fast as the real inversion. Further, the rounding error bound for complex inversion is about one-eighth that of real, for Gaussian elimination. Using extended inner product accumulation the bound is half of the real system. .A Ehrlich, L. W. .K complex matrix inversion, matrix inversion, inversion, rounding errors, rounding error bound, error bounds, complex rounding error bounds .I 1999 .T Optimal Starting Approximations for Generating Square Root for Slow or No Divide .W On machine with slow or no division, it is preferable to use an iterative scheme for the square root different from the classical Heron scheme. The problem of optimal initial approximants is considered, and some optimal polynomial initial approximations are tabulated. .A Wilson, M. W. .K square root, Newton-Raphson iteration, optimal approximants .I 2000 .T A Variation of the Goodman-Lance Method for the Solution of Two-Point Boundary Value Problems .W A recently published method for the interpolative solution of nonlinear equations is improved, and applied to give a significant variation of the Goodman-Lance method for the solution of two-point boundary value problems. The resulting method applies in particular to the numerical solution of optimal control problems in the Euler-Lagrange formulation. Quantitative estimates are presented which indicate that the variation is nearly twice as fast on some problems in the latter context. .A Kimble, G. W. .K Goodman-Lance, boundary-value problems, Newton's method, nonlinear equations, optimal control, optimization, ordinary differential equations, secant method, interpolative solution, orthogonal matrices .I 2001 .T Integrating Square Roots .W Differential equation of the (y')^2 = f(y) are difficult to integrate numerically because of the singularity at points where f(y) vanishes. A simple trick removes the singularity. .A Moler, C. B. Solomon, L. P. .K quadrature, differential equations .I 2002 .T AMESPLOT-A Higher Level Data Plotting Software System .W AMESPLOT is an extensible software system designed to make the display of data as simple, painless, and neat as possible. The system described is hardware-independent and has been implemented on a variety of installations, of different manufacturers, having diverse configurations. The elements common to all types of data plots are outlined and the way in which these elements may be combined into a system based on simple modules is demonstrated. These modules are specified independently and are independent of the axis systems or other attributes of the plot. This enables plots of any complexity to be constructed by adding or replacing modules. The basic syntax of AMESPLOT is outlined, and a brief description is given of its current utility software, consisting of "macros" to produce self-scaled plots, formal tablets of text-interspersed with subplots, map coastlines, and 3-D plots. The system was formulate d in a way such that the user could supply the minimum of information, and it should be fully integrable with user's program written in most conventional higher languages. The functions of positioning, locating, and scaling (in the layout of multiple subplots) of axes, labels, and all other elements of the plot are handled automatically by the software system unless the user specifies otherwise. The structuring of plots from multiple, independent, self-contained subplots is described. Transformation, projection, scaling, rotation, or shifting of entire plots or subplots by the action of one or more simple modules is possible. The user may interact freely with AMESPLOT at three levels, enabling him to construct his own data markers, alphabetic characters, and transformations, and to produce a variety of artistic and other effects. .A Hirschsoln, I. .K computer graphics, data potting, data display syntax, hardware independent software, display device independent software, plot elements, self-scaled plots, user interaction, tablet organization, map display, projection .I 2003 .T An Interactive Software System for Computers-Aided Design: An Application to Circuit Project .W The characteristics of an interactive software system, intended to constitute an interface between designer and computer during various steps of the design process, are presented. The main emphasis is given to the description of the features of the two high level user oriented languages, operating at different levels, on which the interaction is based. The first one is IMOL, an interactive monitor language, which is designed to perform the overall and control functions of the software system; its design criteria provide the user with commands which are both simple and efficient in order to perform all the functions needed in computer-aided circuit design. The second one is COIF, a circuit oriented graphic language, which is designed to describe, generate, and manipulate graphic problem specifications; it is an extension of Fortran with graphic-type variables, so that the designer who is familiar with Fortran need not learn a new language. The application to computer-aided circuit design is in particular examined; on the other hand, the adopted design criteria provide sufficient generality to extend the use of the two languages to different computer-assisted applications. .A Bracchi, G. Somalvico, M. .K interaction, graphics, computer graphics, computer-aided design, circuit design, software system, software organization, language, monitor language, graphic language, extended Fortran .I 2004 .T A Procedure for Generation of Three-dimensional Half-toned Computer Graphics Presentations .W A description is given of an algorithm for producing computer generated half-tone presentations of three-dimensional polygonal surface structures. This algorithm achieves a significant increase in speed of computation over the Warnock algorithm developed at the University of Utah and implemented also on the Coordinated Science Laboratory CDC 1604 computer system at the University of Illinois. The history leading to the algorithm development and then the algorithm itself are described. Results are presented and are compared with computer runs achieved by the Warnock approach. An extension of the procedure to variable position illumination sources is also given. .A Bouknight, W. J. .K half-tone computer graphics, line-scan image processing, hidden surface, polygonal surface structure presentations .I 2005 .T Proposed Revision of American National Standard X3.21-1967, "Rectangular Holes in Twelve-Row Punched Cards"* .K tabulating-card, Hollerith card, keypunch, information processing .I 2006 .T Proposed American National Standard .A Kerpelman, C. .K State identifiers, State abbreviation, States of the United States, data elements, data codes, numeric codes, geopolitical subdivisions, geographic codes .I 2007 .T Algorithms Policy/Revised August 1970 .I 2008 .T Gaussian Quadrature Formulas (Algorithm 331 $D1)) .A Wise Jr., W. R. .K quadrature, Gaussian quadrature, numerical integration, weight function, orthogonal polynomials, Newton's method, successive deflation .I 2009 .T Simpson's Rule for Multiple Integration (Algorithm 233 $D1)) .A Proll, L. G. .K numerical integration, multiple integration, Simpson's rule .I 2010 .T Unitary Symmetric Polynomials $Z) (Algorithm 391) .A McKay, J. .K symmetric polynomials, unitary symmetric polynomials .I 2011 .T Sequency Ordered Walsh Functions $S22) (Algorithm 390) .A Hubner, H. .K Walsh functions, sequency ordered Walsh functions .I 2012 .T Binary Ordered Walsh Functions $S22) (Algorithm 389) .A Hubner, H. .K Walsh functions, binary ordered Walsh functions .I 2013 .T Rademacher Function $S22) (Algorithm 388) .A Hubner, H. .K Rademacher function .I 2014 .T Function Minimization and Linear Search $E4) (Algorithm 387) .A Fielding, K. .K function minimization, relative minimum, quasi-Newton method .I 2015 .T A Technique for Generating Almost Optimal Floyd-Evans Productions for Precedence Grammars .W A technique is developed for generating almost optimal Floyd-Evans productions given a precedence grammar. A graph formulation is used for the problem of merging productions. The productions generated correspond to the minimum cost inverse-arborescence of that graph. The validity of the technique is demonstrated for weak precedence grammars defined here, but the productions mechanically generated for any precedence grammar can often be modified in such a way that correct, almost optimal parsers are obtained. .A Ichbiah, J. D. Morse, S. P. .K translator writing systems, syntactic analysis, Floyd-Evans productions, precedence grammars, translator optimization, merger algorithm, minimum cost inverse-arborescence, graph theory .I 2016 .T The Instrumentation of Multics .W An array of measuring tools devised to aid in the implementation of a prototype computer utility is discussed. These tools include special hardware clocks and data channels, general purpose programmed probing and recording tools, and specialized measurement facilities. Some particular measurements of interest in a system which combines demand paging with multiprogramming are described in detail. Where appropriate, insight into effectiveness (or lack there of) of individual tools is provided. .A Gintell, J. W. Saltzer, J. H. .K instrumentation, performance measurement, multiprogramming systems, measuring tools, system analysis, Multics, metering, event tracing, demand paging, script driven measurement .I 2017 .T Sorting in a Paging Environment .W This sorting study was part of an extensive measurement project undertaken on the M44/44X, an experimental paging system which was conceived and implemented at IBM Research in order to explore the virtual machine concept. The study was concerned with the implementation of sorting procedures in the context of the dynamic paging environment characteristic of virtual memory machines. Descriptions of the experimental sort programs and analysis of the performance measurement results obtained for them are presented. The insight gained from the experimental effort is used to arrive at a set of broad guidelines for writing sort programs for a paging environment. .A Brawn, B. S. Gustavson, G. Mankin, E. S. .K sorting, merging, virtual machines, paging systems, dynamic storage allocation, measurement of systems program behavior, performance evaluation, memory management .I 2018 .T Full Table Quadratic Searching for Scatter Storage .W The quadratic residue search method for hash tables avoids much of the clustering experienced with a linear search method. The simple quadratic search only accesses half the table. It has been shown that when the length of the table is a prime of the form 4n+3, where n is an integer, the whole table may be accessed by two quadratic searches plus a separate access for the original entry point. A search method is presented which is computationally simple, has all the advantages of the quadratic search, and yet accesses all the table in one sweep. .A Day, A. C. .K quadratic residue, search method, hash tables, scatter storage, dictionary look-up, quadratic search, searching, hashing, hash code, clustering, collisions .I 2019 .T Normalization Techniques for Hand printed Numerals .W Family of pattern standardization techniques based on geometrical projection is applied to a file of digitized hand printed numerals obtained from sales clerks. The principle involves transforming a quadrilateral specified in terms of the convex hull of each pattern into a square. The amount of overlap within each class of characters versus the amount between classes is used to evaluate the degree of normalization achieved with respect to other published methods including size and shear normalization through moments. .A Nagy, G. Tuong, N. .K pattern recognition, character recognition, normalization, projective transformation, central projection, hand printed characters, handwriting, linear transformation, size normalization, mapping, pattern preprocessor .I 2020 .T The Allocation of Computer Resources-Is Pricing the Answer? .W The widespread use of complex third generation computing systems has led to a much broader concern about the means by which the resources of these systems are allocated among the user community. One means that is suggested more and more frequently is a pricing procedure. In this paper the manner in which one would like to allocate computing resources is considered, and then the extent to which a pricing mechanism fits this mold is discussed. Inasmuch as pricing must serve as a rationing mechanism at times, consideration is given to the means by which prices can be adjusted flexibly in order to make a dynamic allocation of resources. Consideration is also given to the means by which users can be insulated from the harmful effects of frequent price fluctuations. Although the subject of pricing has been given a lot of attention recently, a number of misconceptions persist about its purpose and its operation. An attempt is made to clarify some of these misunderstandings and to highlight the advantages and disadvantages and to highlight the advantages and disadvantages of pricing. Two illustrative pricing systems are also discussed in order to demonstrate the applicability of pricing in quite different environments. .A Nielsen, N. R. .K allocation mechanisms, charging, computer pricing, costing, flexible pricing, pricing, priority charges, resource allocation, user motivation .I 2021 .T A Comment on Axiomatic Approaches to Programming .A Hunt, B.R. .K axiomatic method, proofs of programs, homomorphic structure in programming .I 2022 .T Note on an Anomaly in Paging .A Pomeranz,J. E. .K paging machines, demand paging, replacement algorithm .I 2023 .T A Note on Data Base Deadlocks .A Baecker, H. D. .K data base, synchronization, locking, deadlock, reference count .I 2024 .T Comments on a Paper by Lowe .A Sattley, K. Millstein, R. .K automatic segmentation, program connectivity .I 2025 .T Student's t-Distribution; Jacobi Polynomials; Modified Romberg Quadrature; Factorial Analysis of Variance; (Algorithms 332,344,351,359) .A Sale, A. H. J. .K Fortran standards .I 2026 .T Exponential Integral (Algorithm 385 $S13)) .A Ng, E. W. .I 2027 .T Ricatti-Bessel Functions of First and Second Kind (Algorithm 22 $S17)) .A Bray, T. .K Ricatti-Bessel functions, Bessel functions of fractional order, spherical Bessel functions .I 2028 .T Greatest Common Divisor of n Integers and Multipliers $A1) (Algorithm 386) .A Bradley, G. H. .K greatest common divisor, Euclidean algorithm, number theory, diophantine equations .I 2029 .T Exponential Integral $S13) (Algorithm 385) .A Paciorek, K. A. .K exponential integral, special functions, rational Chebyshev approximation .I 2030 .T Context-Sensitive Parsing .W This paper presents a canonical form for context-sensitive derivations and a parsing algorithm which finds each context-sensitive analysis once and only once. The amount of memory required by the algorithm is essentially no more than the required to store a single complete derivation. In addition, a modified version of the basic algorithm is presented which blocks infinite analyses for grammars which contain loops. The algorithm is also compared with several previous parsers for context-sensitive grammars and general rewriting systems, and the difference between the two types of analyses is discussed. The algorithm appears to be complementary to an algorithm by S. Kuno in several respects, including the space-time trade-off and the degree of context dependence involved. .A Woods, W. A. .K context-sensitive grammars, context-sensitive parsing, formal grammars, formal language theory, parsing, parsing algorithms, recognition algorithms .I 2031 .T Algorithm and Bound for the Greatest Common Divisor of n Integers .W A new version of the Euclidean algorithm for finding the greatest common divisor of n integers a(i) and multipliers x(i) such that gcd = x(1)a(1) + ... + x(n)a(n) is presented. The number of arithmetic operations and the number of storage locations are linear in n. A theorem of Lame that gives a bound for the number of iterations of the Euclidean algorithm for two integers is extended to the case of n integers. An algorithm to construct a minimal set of multipliers is presented. A Fortran program for the algorithm appears as Comm. ACM Algorithm 386. .A Bradley, G. H. .K greatest common divisor, Euclidean algorithm, number theory, diophantine equations .I 2032 .T File Structures Using Hashing Functions .W A general method of file structuring is proposed which uses a hashing function to define tree structure. Two types of such trees are examined, and their relation to trees studied in the past is explained.Results for the probability distributions of path lengths are derived and illustrated. .A Coffman Jr., E. G. Eve, J. .K Data structures, tree structures, file structures, scatter tables, hashing functions, information retrieval .I 2033 .T Space/Time Trade-offs in Hash Coding with Allowable Errors .W In this paper trade-offs among certain computational factors a given set of messages. Two new hash-coding methods are examined and compared with a particular conventional hash-coding method. The computational factors considered are the size of the hash area (space), the time required to identify a message as a nonmember of the given set (reject time), and an allowable error frequency. The new methods are intended to reduce the amount of space required to contain the hash-coded information from that associated with conventional methods. The reduction in space is accomplished by exploiting the possibility that a small fraction of errors of commission may be tolerable in some applications, in particular, applications in which a large amount of data is involved and a core resident hash area is consequently not feasible using conventional methods. In such applications, it is envisaged that overall performance could be improved by using a smaller core resident hash area in conjunction with the new methods and, when necessary, by using some secondary and perhaps time-consuming test to "catch" the small fraction of errors associated with new methods. An example is discussed which illustrates possible areas of application for the new methods. Analysis of the paradigm problem demonstrates that allowing a small number of test messages to be falsely identified as members of the given set will permit a much smaller hash area to be used without increasing reject time. .A Bloom, B. H. .K hash coding, hash addressing, scatter storage, searching, storage layout, retrieval trade-offs, retrieval efficiency, storage efficiency .I 2034 .T The Mobile Programming System: STAGE2 .W STAGE2 is the second level of a bootstrap sequence which is easily implemented on any computer. It is a flexible, provided by STAGE2 are summarized, and the implementation techniques which have made it possible to have STAGE2 running on a new machine with less than one man-week of effort are discussed. The approach has been successful on over 15 machines of widely varying characteristics. .A Waite, W. M. .K bootstrapping, macro processing, machine independence, programming languages, implementation techniques .I 2035 .T Conversational Access to a 2048-Word Machine .W LAP6 is an on-line system running on a 2048-word LINC which provides full facilities for text editing, automatic filing and file maintenance, and program preparation and assembly. It focuses on the preparation and editing of continuously displayed 23,040-character text strings (manuscripts) which can be positioned anywhere by the user and edited by simply adding and deleting lines as though working directly on an elastic scroll. Other features are available through a uniform command set which itself can be augmented by the user. The machine, although small, aids program design by providing display scope and premarked randomly addressable LINC tapes as standard items, in an environment similar to that of a sophisticated terminal. The tapes are logically similar to a disk. Priority was given to the design of efficient tape algorithms to minimize the limitations of the small memory. Techniques developed for handling scroll editing, filing, and the layered system structure are outlined. LAP6 is used by about 2000 people in 11 countries. Its design was strongly influenced by performance criteria established in interviews held with LINC users themselves during the specification period. .A Wilkes, M. A. .K conversational computer access, display editing, display oriented system, filing algorithms, LAP6, layering, LINC, man-machine communication, on-line editing, on-line efficiency, on-line environment, scroll editing, small machine system, tape filing, tape oriented system, text editing .I 2036 .T An Interactive Command Generating Facility .W A facility to permit conversationally controlled tasks to be executed in a noninteractive environment is proposed. A means by which programs can generate interactive time-sharing commands and receive the corresponding output response is presented. The commands will be invoked as if they had been typed at a console keyboard. It is argued that this facility will help overcome some of the current limitations in man-computer communication. A set of functions to accomplish the above which could be embedded into any string processing language is suggested, and necessary information pertinent to implementation of the facility on existing time-sharing systems is given. .A Grant, C. A. .K time-sharing, command languages, pseudo-teletype, interaction, conditional job control, operating systems .I 2037 .T Permutations of a Set with Repetitions (Algorithm 383 $G6)) .A Chase, P. J. .K permutations and combinations, permutations .I 2038 .T Combinations of M Out of N Objects (Algorithm 382 $G6)) .A Chase, P. J. .K permutations and combinations, permutations .I 2039 .T Permanent Function of a Square Matrix I and II (Algorithm 361 $G6)) .A Shriver, B. Eberlein, P. J. Dixon, R. D. .K matrix, permanent, determinant .I 2040 .T Modified Romberg Quadrature (Algorithm 351 $D1)) .A Wallick, G. C. .K numerical integration, Romberg quadrature, modified Romberg quadrature, trapezoid values, rectangle values .I 2041 .T Shellsort (Algorithm 201 $M1)) .A Chandler, J. P. Harrison, W. C. .K sorting, minimal storage sorting, digital computer sorting .I 2042 .T Treesort 3 (Algorithm 245 $M1)) .W The certification of an algorithm can take the form of a proof that the algorithm is correct. As an illustrative but practical example, Algorithm 245, TREESORT 3 for sorting an array, is proved correct. .A London, R. L. .K proof of algorithms, debugging, certification, metatheory, sorting, in-place sorting .I 2043 .T Eigenvalues and Eigenvectors of a Real Symmetric Matrix $F2) (Algorithm 384) .A Stewart, G. W. .K real symmetric matrix, eigenvalues, eigenvectors, QR algorithm .I 2044 .T Permutations of a Set with Repetitions (Algorithm 383 $G6)) .A Chase, P. J. .K permutations and combinations, permutations .I 2045 .T Combinations of M Out of N Objects (Algorithm 382 $G6)) .A Chase, P. J. .K permutations and combinations, permutations .I 2046 .T A Relational Model of Data for Large Shared Data Banks .W Future users of large data banks must be protected from having to know how the data is organized in the machine (the internal representation). A prompting service which supplies such information is not a satisfactory solution. Activities of users at terminals and most application programs should remain unaffected when the internal representation of data is changed and even when some aspects of the external representation are changed. Change in data representation will often be needed as a result of changes in query, update, and report traffic and natural growth in the types of stored information. Existing noninferential, formatted data systems provide users with tree-structured files or slightly more general network models of the data. In Section 1, inadequacies of these models are discussed. A model based on n-ary relations, a normal form for data base relations, and the concept of a universal form for data base relations, and the concept of a universal data sublanguage are introduced. In Section 2, certain operations on relations (other than logical inference) are discussed and applied to the problems of redundancy and consistency in the user's model. .A Codd, E. F. .K data bank, data base, data structure, data organization, hierarchies of data, networks of data, relations, derivability, redundancy, consistency, composition, join, retrieval language, predicate calculus, security, data integrity .I 2047 .T Incorporating Origin Shifts into the QR Algorithm for Symmetric Tridiagonal Matrices .W The QR iteration for the eigenvalues of a symmetric tridiagonal matrix can be accelerated by incorporating a sequence of origin shifts. The origin shift may be either subtracted directly from the diagonal elements of the matrix or incorporated by means of an implicit algorithm. Both methods have drawbacks: the direct method can unnecessarily degrade small eigenvalues, while the implicit method can effectively loose the shift and thereby retard the convergence. This paper presents a new method which has neither drawback. .A Stewart, G. W. .K eigenvalues, eigenvectors, QR method, origin shifts, symmetric tridiagonal matrix .I 2048 .T Comparison of Several Adaptive Newton-Cotes Quadrature Routines in Evaluating Definite Integrals with Peaked Integrands .W This report compares the performance of five different adaptive quadrature schemes, based on Newton-Cotes (2N + 1) point rules (N = 1, 2, 3, 4, 5), in approximating the set of definite integrals INTEGRAL$1/(x^2 + p^2)) dx with relative accuracy e. .A Hillstrom, K. E. .K adaptive Newton-Cotes quadrature, quadrature scheme comparison, definite integral evaluation, adaptive numerical in tegration, Newton-Cotes integration, peaked integrand integration, quadrature efficiently plot, New-Cotes rules applications, Newton-Cotes rules modifications .I 2049 .T Accurate Floating-Point Summation .W This paper describes an alternate method for summing a set of floating-point numbers. Comparison of the error bound for this method with that of the standard summation method shows that it is considerably less sensitive to propagation of round-off error. .A Linz, P. .K summation, floating-point addition, round-off error, round-off propagation .I 2050 .T Automatic Parsing for Content Analysis .W Although automatic syntactic and semantic analysis is not yet possible for all of an unrestricted natural language text, some applications, of which content analysis is one, do not have such a stringent coverage requirement. Preliminary studies show that the Harvard Syntactic Analyzer can produce correct and unambiguous identification of the subject and object of certain verbs for approximately half of the relevant occurrences. This provides a degree of coverage for content analysis variables which compares favorably to manual methods, in variables which compares favorably to manual methods, in which only a sample of the total available text is normally processed. .A Damerau, F. J. .K Content analysis, parsing, syntactic analysis, natural language processing, information retrieval, language analysis, text processing .I 2051 .T A PL/I Program to Assist the Comparative Linguist .W A practical PL/I program is described which can assist comparative linguists to determine the regular sound correspondences between genetically related languages. The investigator must arrange data for input by aligning pairs of suspected cognates. The program tabulates the correspondences, and uses list processing techniques to sort and count them. Each pair of words is then assigned a relative value that is a function of the total frequency in the data of each correspondence found in that pair of words. The output is a list of all correspondence types with their frequency of occurrence in the data, and a separate listing of each correspondence with all word-pairs showing that correspondence (unless their relative value is below an arbitrarily chosen cutoff point). The article explains the usefulness, as well as the limitations, of the programs, and illustrates its use with a small portion of hypothetical data. .A Frantz, D. G. .K comparative linguistics, natural language processing, comparative method, historical linguistics, diachronic linguistics, genetic relationship, sound change, sound correspondence, regular correspondence, list processing .I 2052 .T Scheduling to Reduce Conflict in Meetings .W Conflicts in scheduling can be treated as defining an undirected linear graph independently of the relation of the activities in conflict to additional constraints of time and space. Each connected component of such a graph, which can be found by an algorithm described by Gotlieb and Corneil, corresponds to a set of events that must be scheduled at different times. .A Grimes, J. E. .K allocation, conflict matrix, connected component, scheduling, spanning tree, undirected linear graph .I 2053 .T On the Conversion of Decision Tables to Computer Programs .W The use of execution time diagnostics in pinpointing ambiguities in decision tables is discussed. It is pointed out that any attempt at resolving ambiguities at compile time will, in general, be impossible. It is shown that, as a consequence, tree methods of converting decision tables to programs are inadequate in regard to ambiguity detection. Two algorithms for programming decision tables whose merits are simplicity of implementation and detection of ambiguities at execution time are presented. The first algorithm is for limited entry decision tables and clarifies the importance of proper coding of the information in the decision table. The second algorithm programs a mixed entry decision table directly without going through the intermediate step of conversion to a limited entry form, thereby resulting in storage economy. A comparison of the algorithms and others proposed in the literature is made. Some features of a decision table to Fortran IV translator for the IBM 7044 developed by the authors are given. .A Muthukrishnan, C. R. Rajaraman, V. .K decision tables, diagnostic aids, system analysis, business applications .I 2054 .T On the Feasibility of Voice Input to an On-line Computer Processing System .W An on-line digital computer processing system is considered in which an ordinary telephone is the complete terminal device, input to the computer being provided as a sequence of spoken words, and output to the user being audio responses from the machine. The feasibility of implementing such a system with a FORTRAN-like algebraic compiler as the object processor is considered. Details of a specific word recognition program are given. This technique depends on three simplifying restrictions, namely, a "small" vocabulary set, "known" speakers, and a "moment of silence" between each input word. Experimental results are presented giving error rates for different experimental conditions as well as the machine resources required to accommodate several users at a time. The results show that at this time it is both economically and logically feasible to handle at least 40 users at a time with an IBM 360/65 computer. .A Elder, H. A. .K speech recognition, word recognition, pattern-matching, pattern recognition, time-sharing, remote access, voice input, speech input, telephone input/output, acoustic signal, spoken-word input, talking to computers, man-machine interaction .I 2055 .T Subroutine to Perform In-Situ Transposition of a Rectangular Matrix (Algorithm 380) .A Lachenmaier, R. .K rectangular matrix, transpose .I 2056 .T Gomory (Algorithm 263A $H)) .A Proll, L. G. .K linear programming, integer variables, dual method .I 2057 .T Random Vectors Uniform in Solid Angle (Algorithm 381 $G5)) .A Knop, R. E. .K random number, random vector, random number generator, probability distribution, frequency distribution, simulation, Monte Carlo .I 2058 .T In-Situ Transposition of a Rectangular Matrix (Algorithm 380 $F1)) .A Laflin, S. Brebner, M. A. .K rectangular matrix, transpose .I 2059 .T A Language for Treating Graphs .W A language for the representation of graph is described, and the formulation of graph operations such as node and/or link deletion or insertion, union, intersection, comparison, and traversal of graphs is given. Graphs are represented by linked lists. The language is syntactically defined as an extension to ALGOL 60, and it is translated into ALGOL by means of a syntax-driven compiler. Application areas for this language are operation research, network problems, control theory, traffic problems, etc. .A Crespi-Reghizzi, S. Morpurgo, R. .K graphs, oriented, nonoriented, multiple, colored graph, language extended ALGOL, operator-precedence, syntax-driven compiler, operation research, network, traffic .I 2060 .T GEDANKEN-A Simple Typeless Language Based on the Principle of Completeness and the Reference Concept .W GEDANKEN is an experimental programming language with the following characteristics. (1) Any value which is permitted in some context of the language is permissible in any other meaningful context. In particular, functions and labels are permissible results of functions and values of variables. (2) Assignment and indirect addressing are formalized by introducing values, called reference, which in turn possess other values. The assignment operation always affects the relation between some reference and its value, (3) All compound data structures are treated as functions. (4) Type declarations are not permitted. The functional approach to data structures and the use of references insure that any process which accepts some data structure will accept any logically equivalent structure, regardless of its internal representation. More generally, any data structure may be implicit; i.e. it may be specified by giving an arbitrary algorithm for computing or accessing its components. The existence of label variables permits the construction of coroutines, quasi-parallel processes, and other unorthodox control mechanisms. A variety of programming examples illustrates the generality of the language. Limitations and possible extensions are discussed briefly. .A Reynolds, J. C. .K programming language, data structure, reference, assignment, coroutine, quasi-parallel process, typeless language, applicative language, lambda calculus, list processing, nondeterministic algorithm .I 2061 .T An Algorithm for the Construction Of Bounded-Context Parsers .W An algorithm is described which accepts an arbitrary context-free grammar and constructs a bounded-context parser for it whenever such a parser exists. In the first part of the paper the definition of a context-free grammar and the working of a bounded-context parser are recalled. The notion of reduction class for a context-free grammar is then introduced and its connection with the structure of a bounded-context parser is indicated. Next, pushdown automata which generate the different reduction classes of a context-free grammar are defined. Finally, the algorithm is described; it essentially carries out an exhaustive study of all possible runs of the pushdown automata generating the reduction classes. In the second part, the utility of the algorithm is discuss ed in the light of the experience gained from its use in compiler design. The algorithm is claimed to be particularly useful in the simultaneous design of a language and a compiler for it. .A Loeckx, J. .K bounded-context parsing, bounded-context syntactic analysis, parser construction, syntactical analyzer construction, generators, compiler compilers, compiler writing systems, translator writing systems metacompilers, context-free grammars, formal languages, pushdown automata .I 2062 .T The Application of Sequential Sampling to Simulation: An Example Inventory Model .W Four different sequential sampling procedures are applied to the analysis of data generated by a computer simulation experiment with a multi-item inventory model. For each procedure the cost of computer time required to achieve given levels of statistical precision is calculated. Also the cost of computer time using comparable fixed sample size methods is calculated. The computer costs of fixed sample size procedures versus sequential sampling procedures are compared. .A Sasser, W. E. Burdick, D. S. Graham, D. A. Naylor, T. H. .K simulation, inventory models, sequential sampling, models, experimental design .I 2063 .T Translation Equations (Errata) .A Vere, S. .I 2064 .T Operations on Generalized Arrays with the Genie Compiler .W Operations on vectors, matrices, and higher dimensional storage arrays are standard features of most compilers today. The elements of such structures are usually restricted to be scalars. For many sophisticated applications this restriction can impose cumbersome data representations. An efficient system has been devised and implemented which allows the elements of multidimensional arrays to themselves be multidimensional arrays. This system was developed from a storage structure in which the location, length, and content of each array is described by a codeword which can be interpreted by the system. Code words may describe arrays containing more codewords, thus providing all needed descriptive information for hyperstructures of any form. .A Sitton, G. A. .K multidimensional arrays, matrix operations, storage control, subscripting, compilers .I 2065 .T A Programming System for the On-line Analysis of Biomedical Images .W A preliminary description of the software for a computer-display system is given with special emphasis on the man-machine interaction. This system is intended for a wide variety of biomedical applications. As an example, the methods are applied to the karyotyping of chromosomes. The system is separated into four programming tasks: picture transformations, file maintenance, picture structuring, and display management. Picture structuring is considered as the vehicle for man-machine communication. A prototype data format for pictures, called a picture-form, is developed. Structure operators are defined which manipulate picture-forms to produce new pictures-forms. Many of the ideas are taken from the symbolic mathematical laboratory at MIT conceived by Marvin Minsky. .A Hodes, L. .K image processing, biomedical image processing, on-line image processing, semiautomatic image processing, data structure, structure operators, picture processing, biomedical picture processing, on-line picture processing, semiautomatic picture processing, semiautomatic karyotyping, karyotyping, list processing picture processing .I 2066 .T An Algol Construction for Procedures as Parameters of Procedures .A Knight, K. R. .K Algol, procedures, parameters, side effects .I 2067 .T Comment on Lawler's Multilevel Boolean Minimization .A DeVries, R. C. .K multilevel logic design, generalized prime implicants, minimal forms, minimization, incompletely specified functions .I 2068 .T Comment on Multiprogramming Under a Page on Demand Strategy .A Smith, J. L. .K multiprogramming, paging, modeling .I 2069 .T Comments on a Paper by Wallace and Mason .A Heess Jr., W. F. .K page-on-demand, demand paging, time-sharing multiprogramming, Markovian computer models, scheduling strategies, operating systems, memory management .I 2070 .T A Formal System for Information Retrieval from Files .A Hsiao, D. Harary, F. .I 2071 .T Filon Quadrature (Algorithm 353 $D1)) .A Fosdick, L. D. Einarsson, Bo .K quadrature, Filon quadrature, integration, Filon integration, Fourier coefficients, Fourier series .I 2072 .T Modified Romberg Quadrature (Algorithm 351 $D1)) .A Cook, N. D. .K numerical integration, Romberg quadrature, trapezoid values, rectangle values, error bound .I 2073 .T Solution of Linear Programs in 0-1 Variables by Implicit Enumeration (Algorithm 341 $H)) .A Guignard, M. M. .K linear programming, zero-one variables, partial enumeration .I 2074 .T Sqank (Algorithm 379 $D1)) .A Lyness, J. N. .K numerical integration, integration rule, adaptive integration, automatic integration, Simpson's rule, numerical quadrature, quadrature, quadrature rule, adaptive quadrature, automatic quadrature, round-off error control .I 2075 .T Discretized Newton-Like Method for Solving a System of Simultaneous Nonlinear Equations (Algorithm 378 $C5)) .A Pankiewicz, W. .K Newton's method, nonlinear equations, interpolating polynomials .I 2076 .T Cubic Splines on Uniform Meshes .W A very simple procedure is presented for constructing cubic splines, periodic or nonperiodic, on uniform meshes. Arcs of two cubics suffice to construct a basis of cardinal splines. An algorithm is given which requires only minimal storage and computation and permits easy trade-off of one against the other. .A Nilson, E. N. .K simple spline representation, cardinal splines, uniform mesh splines .I 2077 .T The Cyclical Majority Problem .W The problem of the cyclical majority is presented and some new, simulated results for 3, 4, 5, ..., 40 issues ad 3, 5, 7, ..., 37 judges are reported. .A Pomeranz, J. E. Weil Jr., R. L. .K Arrow's paradox, cyclical majority, simulation, voter's paradox, voting paradox .I 2078 .T Representations for Space Planning .W Problems involving the arrangement of objects in two- or three-space where the objective function primarily consists of derivatives of the distance between objects or their arrangement are called space planning problems. The representational requirements for this problem area are defined and compared with current computer graphic languages. Four alternative data structures that allow automated space planning are described and compared. .A Eastman, C. M. .K automated design, data structures, computer graphics, computer-aided design, engineering design, architectural design, robots .I 2079 .T On Multiprogramming, Machine Coding, and Computer Organization .A Wirth, N. .I 2080 .T The Nucleus of a Multiprogramming System .W This paper describes the philosophy and structure of a multiprogramming system that can be extended with a hierarchy of operating systems to suit diverse requirements of program scheduling and resource allocation. The system nucleus simulates an environment in which program execution and input/output are handled uniformly as parallel, cooperating process es. A fundamental set of primitives allows the dynamic creation and control of a hierarchy of processes as well as the communication among them. .A Hansen, P. B. .K multiprogramming, operating systems, parallel processes, process concept, process communication, message buffering, process hierarchy, process creation, process removal .I 2081 .T Some Complete Calculi for Matrices .W A matrix calculus is introduced with the intention of developing data structures suitable for a high level algorithmic language for mathematical programming. The paper investigates how the special structure of matrices can be described and utilized for efficient computing by saving memory space and superfluous operations. Sequences of Matrices (and sequences of sequences of matrices) are considered, and matrix operators areext ended to sequence operators and cumulative operators. Algorithms are given which use symbol manipulation of matrix expressions so as to find the forms best suited for computation. These forms are called normal forms. Several completeness results are obtained in the sense that for each expression an equivalent expression in normal form can be found within a specified calculus. .A Bayer, R. Witzgall, C. .K complete calculus, data structures, linear programming, matrix, matrix concatenation, matrix sequences, programming languages, sequence operations, symbol manipulation .I 2082 .T Syntax-Directed Documentation For PL 360 .W The language PL 360, together with its phrase structure grammar, is used as a concrete basis for illustrating an idea called syntax-directed documentation. This idea is (1) to use the phrase structure of a program to define the structure of a formal documentation for that program; (2) to use the syntactic types and identifiers in the resulting structure to trigger the automatic formation of questions to the programmer, whose answers will become part of that documentation; and (3) to provide automatic storage and retrieval facilities so that other programmers who want to understand or modify the program can access the resulting documentation, which is cross-indexed in various ways by syntactic types and objects. A small PL 360 program, already found in the literature, is worked out as an example. .A Mills, H. D. .K documentation, syntax analysis, PL 360, enforced documentation, indexed documentation, automatic interrogation, phase structured grammar, syntax-directed documentation, syntax processing .I 2083 .T Creation and Control of Internal Data Bases Under a Fortran Programming Environment .W A method is described for the definition of a user's COMMON structure and the automatic generation of the necessary COMMON, DIMENSION, EQUIVALENCE, and type declarations for each of the user's routines. The definition for the COMMON is contained in an easy to modify form, thus allowing the control of general communications of data between routines. The described system has been implemented on the IBM 7094, CDC 6000 series, and the IBM 360. The method has proved to be invaluable for the definition and control of COMMON in many large-scale programs. .A DeSalvio, A. J. Purdy, J. G. Rau, J. .K data base, Fortran, common, common equivalencing, subroutine communication, data communication .I 2084 .T A Note on the Complement of Inherently Ambiguous Context-Free Languages .A Maurer, H. A. .K ambiguity, inherent ambiguity, complement, context-free language, Chomsky-language, phrase structure language, production system, type 2 language, bounded language .I 2085 .T Comment on a Paging Anomaly .A Dempster, J. R. H. .K paging machines, demand paging, replacement algorithm .I 2086 .T Another Method of Converting from Hexadecimal to Decimal .A Kailas, M. V. .K binary-decimal conversion, computer arithmetic categories .I 2087 .T A Number System for the Permutations .A Pager, D. .K permutation, ordering, number, number system, p-number, combinatorial .I 2088 .T Netflow (ALgorithm 336 $H)) .A Bray, T. A. Witzgall, C. .K capacitated network, linear programming, minimum-cost flow, network flow, out-of-kilter .I 2089 .T Prime Number (Algorithm 310 $A1)) .A Rapp, D. G. Scott, L. D. .K prime numbers, generator .I 2090 .T Symbolic Expansion of Algebraic Expressions (Algorithm 377 $R2)) .A Levine, M. J. .K algebra, symbolic algebra, symbolic multiplication, algebraic distribution, algebraic multiplication, distribution algorithm, multiplication algorithm, product algorithm, polynomial distribution, polynomial expansion .I 2091 .T PDEL-A Language for Partial Differential Equations .W Conventional computer methods available to solve continuous system problems characterized by partial differential equations are very time-consuming and cumbersome. A convenient, easy to learn and to use, high level problem oriented language to solve and study partial differential equation problems has been designed; a practical translator for the language has also been designed, and a working version of it has been constructed for a significant portion of the language. This Partial Differential Equation Language, PDEL, is outlined, and the highlights of the translator are briefly summarized. .A Cardenas, A. F. Karplus, W. J. .K problem oriented or digital simulation language, partial differential equations, translator, PL/1, preprocessor PL/1, finite difference algorithms .I 2092 .T A Deductive Question-Answer for Natural Language Inference .W The question-answering aspects of the Protosynthex III pro totype language processing system are described and exemplified in detail. The system is written in LISP 1.5 and operates on the Q-32 time-sharing system. The system's data structures and their semantic organization, the deductive question-answering formalism of relational properties and complex-relation-forming operators, and the question-answering procedures which employ these features in their operation are all described and illustrated. Examples of the system's performance and of the limitations of its question-answering capability are presented and discussed. It is shown that the use of semantic information in deductive question answering greatly facilitates the process, and that a top-down procedure which works from question to answer enables effective use to be made of this information. It is concluded that the development of Protosynthex III into a practically useful system to work with large data bases is possible but will require changes in both the data structures and the algorithms used for question answering. .A Schwarcz, R. M. Burger, J. F. Simmons, R. F. .K question answering, natural language, Protosynthex III, LISP, semantics, artificial intelligence, computational linguistics, language processing, fact retrieval .I 2093 .T A Comparison of Error Improvement Estimates for Adaptive Trapezoid Integration .W Various simple choices of error improvement estimates for the trapezoid rule are studied to demonstrate a comparison procedure which is relatively independent of the profusion of adaptive search and stopping strategies. Comparisons are based on x^r, `; the inclusion of the noninteger powers makes this more realistic than the usual polynomial based comparison. Behavior near the singularity was found to be the dominant factor, and a new estimate, based on a constant curvature assumption and parametric differences, was considered slightly better than the other choices considered. .A Schweikert, D. G. .K adaptive integration, error improvement estimate, trapezoid rule, nonpolynomial error criteria .I 2094 .T On an Algorithm for Nonlinear Minimax Approximation .W Certain nonlinear minimax approximation problems are characterize d by properties which permit the application of special algorithms, mainly based on the exchange algorithms of Remes (1934, 1935), for their solution. In this paper the application to problems of this type of a general nonlinear algorithm due to Osborne and Watson (1969) is considered. Examples are given to illustrate that this algorithm can give satisfactory results and, in particular, can successfully solve problems which lead to difficulties with the more conventional specialist method. .A Watson, G. A. .K minimax approximation, nonlinear approximation, linear programming .I 2095 .T Measurements of Segment Size .W Distributions of segment sizes measured under routine operating con ditions on a computer system which utilizes variable sized segments (the Burroughs B5500) are discussed. The most striking feature of the measurements is the large number of small segments-about 60 percent of the segments in use contain less than 40 words. Although the results are certainly not installation independent, and although they are particularly influenced by features of the B5500 ALGOL system, they should be relevant to the design of new computer systems, especially with respect to the organization of paging schemes. .A Batson, A. Ju, S. Wood, D. C. .K storage allocation, segmentation, segment sizes, page sizes, paging, resource allocation, memory allocation, core utilization .I 2096 .T Experiments with the M & N Tree-Searching Program .W The M & N procedure is an improvement to the mini-max backing-up procedure widely used in computer program for game-playing and other purposes. It is based on the principle that it is desirable to have many options when making decisions in the face of uncertainty. The mini-max procedure assigns to a MAX (MIN) node the value of the highest (lowest) valued successor to that node. The M & N procedure assigns to a MAX (MIN) node some function of the M (N) highest (lowest) valued successors. An M & N procedure was written in LISP to play the game of kalah, and it was demonstrated that the M & N procedure is significantly superior to the mini-max procedure. The statistical significance of important conclusions is given. Since information on statistical significance has often been lacking in papers on computer experiments in the artificial intelligence field, these experiments can perhaps serve as a model for future work. .A Slagle, J. R. Dixon, J. K. .K artificial intelligence, heuristic program, tree searching, LISP, kalah, game playing, decision theory, mini-max backing-up procedure, backing-up procedures .I 2097 .T A Program to Teach Programming .W The TEACH system was developed at MIT to ease the cost and improve the results of elementary instruction in programming. To the student, TEACH offers loosely guided experience with a conversational language which was designed with teaching in mind. Faculty involvement is minimal. A term of experience with TEACH is discussed. Pedagogically, the system appears to be successful; straightforward reimplementation will make it economically successful as well. Similar programs of profound tutorial skill will appear only as the results of extended research. The outlines of his research are beginning to become clear. .A Fenichel, R. R. Weizenbaum, J. Yochelson, J. C. .K elementary programming, computer-assisted learning, UNCL, TEACH .I 2098 .T t-Test Probabilities (Algorithm 321); Student's t-Distribution (Algorithm 344) .A Hill, G. W. Loughhead, M. .K t-test, Student's t-statistic, distribution function, approximation .I 2099 .T Eigenvalues and Eigen vectors of a Real General Matrix (Algorithm 343 $F)) .A Knoble, H. D. .K norm, characteristic equation, degenerate eigen-system, diagonalizable matrix, defective matrix .I 2100 .T Ortho (Algorithm 127 $F5)) .A Barrodale, I. .K orthogonalization, approximation .I 2101 .T Least Squares Fit By f(x) = Acos(Bx+C) (Algorithm 376 $E2)) .A Spath, H. .K nonlinear least squares fit .I 2102 .T Fitting Data To One Exponential (Algorithm 375 $E2)) .A Spath, H. .K nonlinear least squares fit .I 2103 .T Restricted Partition Generator (Algorithm 374 $A1)) .A White, J. S. .K partitions, restricted partitions, sums of integers, restricted sums .I 2104 .T Number of Doubly Restricted Partitions (Algorithm 373 $A1)) .A White, J. S. .K partitions, restricted partitions, sums of integers, restricted sums .I 2105 .T An Interactive Computer System Using Graphical Flowchart Input .W An interactive computer system operational on a graphical computer terminal is described. This system was designed to demonstrate a method of programming by computer interpretation of a flowchart. The user draws a description of a sampled-data system and specifies description is transmitted to a large scale computer. The design is simulated, and a graphic representation of the processed signal is returned to the scope. A successful design may require numerous modifications of the original design. A graphical interactive system provides an environment to perform this iterative process efficiently and effectively. .A Robins, M. F. Beyer, J. D. .K simulation program, graphical input-output sampled data systems .I 2106 .T Computer Education in a Graduate School of Management .W Several years of experience have led to the belief that the creative design and evaluation of management information systems requires a thorough understanding of the related computer technology. Concepts such as paging and priority interrupt systems can best be explained at the machine language level. Any machine used for exposition should fulfill several criteria. It should: (1) raise as few spurious issues as possible; (2) allow, without undue effort, the solution of interesting problems; (3) be capable of exposing all outstanding issues of significance, capable of exposing all outstanding issues of significance, within the chosen machine; (4) be seful for pursuing issues in great depth when appropriate; (5) not be committed to the equipment provided by any manufacturer; (6) be able to provide the student with diagnostic aids to a great depth; (7) allow the student ready access to the machine; (8) be capable of extension to expose new issues as they come along. We have constructed a simulated machine and its associated software which meets these criteria. This system, called the PRISM system, is documented by a primer and a reference manual. .A Ness, D. N. Green, R. S. Martin, W. A. Moulton, G. A. .K education, simulation, machine language, management information systems, interpreters .I 2107 .T The Quadratic Quotient Method: A Hash Code Eliminating Secondary Clustering .W Secondary clustering as a cause of hash code inefficiency is discussed, and a new hashing method based on its elimination is presented. Comparisons with previous methods are made both analytically and empirically. .A Bell, J. R. .K hashing, hash code, scatter storage, calculated address, clustering, search, symbol table, collisions, keys, table look-up .I 2108 .T A Variation on Sorting by Address Calculation .W The principles of address calculation and merging are combined to yield an efficient sorting technique. Detailed flowcharts of the most important program steps are included. The characteristics of the proposed sort are discussed. .A Jones, B. .K sorting, address calculation, merging, order, sequence creation .I 2109 .T The Use of Quadratic Residue Research .W A quadratic residue search method has previously been suggested to avoid the clustering usually encountered when hash address collisions occur and linear search methods are used. The search size, because of the property of quadratic residues, is limited to one half of the storage table. It is shown that for some classes of prime numbers the complement of the set of quadratic residues can easily be determined and hence the entire table of size p, where p is that prime number, can be searched. .A Radke, C. E. .K quadratic residue, search method, hash addressing, address clustering, scatter storage, file searching, file addressing, hash coding, quadratic search, random search, storage layout, searching .I 2110 .T An Efficient Context-free Parsing Algorithm .W A parsing algorithm which seems to be the most efficient general context-free algorithm known is described. It is similar to both Knuth's LR(k) algorithm and the familiar top-down algorithm. It has a time bound proportional to n^3 (where n is the length of the string being parsed) in general; it has a n^2 bound for unambiguous grammars; and it runs in linear time on a large class of grammars, which seems to include most practical context-free programming language grammars. In an empirical comparison it appears to be superior to the top-down and bottom-up algorithms studied by Griffiths and Petrick. .A Earley, J. .K syntax analysis, parsing, context-free grammar, compilers, computational complexity .I 2111 .T Spelling Correction in Systems Programs .W Several specialized techniques are shown for efficiently incorporating spelling correction algorithms in to compilers and operating systems. These include the use of syntax and semantics information, the organization of restricted keyword and symbol tables, and the consideration of a limited class of spelling errors. Sample 360 coding for performing spelling correction is presented. By using systems which perform spelling correction, the number of debugging runs per program has been decreased, saving both programmer and machine time. .A Morgan, H. L. .K spelling correction, error correction, debugging, compilers, operating systems, diagnostics, error detection, misspelling, lexical analysis systems programming .I 2112 .T Translation Equations .W Input limited transduction expressions, or translation equations, are used to describe the syntax and left-context sensitive semantics for context-free languages. A formal procedure is given for deriving from a set of translation equations the specifications for a pushdown translator. The translator consists of Mealy form finite-state automata interacting by means of a pushdown stack. Within the framework described string recognition and parsing may be treated as special cases of the translation problem. .A Vere, S. .K automata, Turing machines, regular expression, transduction expression, context-free languages, translation, recognizers, parsing, meta-compilers, pushdown transducer, syntax directed compilers, finite state automata .I 2113 .T The Multistore Parser for Hierarchical Syntactic Structures .W A syntactic parser is described for hierarchical concatenation patterns that are presented to the analyzer in the form of linear strings. Particular emphasis is given to the system of "significant addresses" by means of which processing times for large-scale matching procedures can be substantially reduced. The description makes frequent use of examples taken from the fully operational implementation of the parser in an experimental English sentence analyzer. By structuring an area of the computer's central core storage in such a way that the individual locations of bytes and bits come to represent the data involved in the matching procedure, the shifting of information is reduced to a minimum, and the searching of lists is eliminated altogether. The matches are traced by means of binary masks and the state of single bits determines the operational flow of the procedure. The method could be implemented with any interpretive grammar, provided it can be expressed by the functional classification of the items composing the input hierarchical structures. .A von Glasersfeld, E. .K parsing, syntactic analysis, natural-language analysis, linguistic data processing, computational linguistics, correlational grammar, structure recognition, pattern recognition, matching procedures, tree-structure interpretation, machine translation, automatic abstracting .I 2114 .T A Formal System for Information Retrieval from Files .W A generalized file structure is provided by which the concepts of keyword, index, record, file, directory, file structure, directory decoding, and record retrieval are defined and from which some of the frequently used file structures such as inverted files, index-sequential files, and multilist files are derived. Two algorithms which retrieve records from the generalized file structure are presented. .A Hsiao, D. .K attribute-value pair, index, keyword, record, record address, K-pointer, K-list, file, directory, generalized file structure, inverted file, index-sequential-file, multilist file, description, file search, directory search, serial processing of lists, prime keyword, parallel processing of lists .I 2115 .T Fortran Tausworthe Pseudorandom Number Generator .A Payne, W. H. .K random numbers, pseudorandom numbers, shift register sequences .I 2116 .T Interchange Rolls of Perforated Tape for Information Interchange* (Proposed American National Standard) .K interchange, rolls, perforated tape, tape, information interchange, directional markers, leaders, trailers, roll-up tape, 9-track paper tape, dimensions .I 2117 .T Representation for Calen dar Date for Machine-to-Machine Data Interchange* (Proposed American National Standard) .K calendar date, machine-to-machine interchange, month, year, day, representation coded .I 2118 .T An Efficient Algorithm for Sorting with Minimal Storage (Algorithm 347 $M1)) .A Griffin, R. Redish, K. A. .K sorting,minimal storage sorting, digital computer sorting .I 2119 .T Derivatives (Algorithm 282 $S22)) .A Gautschi, W. Klein, B. J. .K recursive computation, successive derivatives, error control .I 2120 .T An Algorithm to Produce Complex Primes, Csieve (Algorithm 372 $A1)) .A Dunham, K. B. .K primes, complex numbers .I 2121 .T Partitions in Natural Order (Algorithm 371 $A1)) .A McKay, J. K. S. .K partitions,number theory .I 2122 .T General Random Number Generator (Algorithm 370 $G5)) .A Butler, E. L. .K random number generator, probability density function, transformation, cumulative density function .I 2123 .T Generator of Random Numbers Satisfying the Poisson Distribution (Algorithm 369 $G5)) .A Schaffer, H. E. .K Poisson distribution, random number generator .I 2124 .T Numerical Inversion of Laplace Transforms (Algorithm 368 $D5)) .A Stehfest, H. .K Laplace transform inversion, integral transformations, integral equations .I 2125 .T A Note on Minimal Length Polygonal Approximation to a Digitized Contour .W A method for extracting a smooth polygonal contour from a digitized image is illustrated. The ordered sequence of contour points and the connection graph of the image are first obtained by a modified Ledley algorithm in one image scan. A minimal perimeter polygon subjected to specified constraints is then chosen as the approximating contour. The determination of the minimal polygon can be reduced to a nonlinear programming problem, solved by an algorithm which takes into account the weak bonds between variables. Some examples are presented, and the corresponding computing times are listed. .A Montanari, U. .K digitized image, connection tree, minimal polygon, optimal approximation, nonlinear programming .I 2126 .T Experience with an Extensible Language .W An operational extensible language system is described. The system and its base language are appraised with respect to efficiency, flexibility, and utility for different categories of users. .A Irons, E. T. .K programming languages, extensible, compiler, bootstrapping, ambiguity .I 2127 .T Natural Language Question-Answering Systems: 1969 .W Recent experiments in programming natural language question-answering systems are reviewed to summarize the methods that have been developed for syntactic, semantic, and logical analysis of English strings. It is concluded that at least minimally effective techniques have been devised for answering questions from natural language subsets in small scale experimental systems and that a useful paradigm has evolved to guide research efforts in the field. Current approaches to semantic analysis and logical inference are seen to be effective beginnings but of questionable generality with respect either to subtle aspects of meaning or to applications over large subsets of English. Generalizing from current small-scale experiments to language-processing systems based on dictionaries with thousands of entries-with correspondingly large grammars and semantic systems-may entail a new order of complexity and require the invention and development of entirely different approaches to semantic analysis and questions answering. .A Simmons, R. F. .K question-answering, natural language, artificial intelligence,language processing, fact retrieval, semantics .I 2128 .T A Processor Allocation Method for Time-Sharing .W A scheduling algorithm is proposed which is intended to minimize changes of tasks on processors and thereby reduce over-head. The algorithm also has application to more general resource allocation problems. It is implemented by means of a method for efficiently handling dynamically changing segmented lists. .A Mullery, A. P. Driscoll, G. C. .K time sharing, resource allocation, scheduling algorithms, monitors, dynamic allocation, processor allocation, multiprogramming, multiprocessing, time slicing, scheduling, conversational systems, interactive systems .I 2129 .T Recursive Computation of Certain Derivatives-A Study of Error Propagation .W A brief study is made of the propagation of errors in linear first-order difference equations. The recursive computation of successive derivatives of (e^x)/x and (cos x)/x is considered as an illustration. .A Gautschi, W. .K recursive computation, successive derivatives, error propagation .I 2130 .T Automatic Segmentation of Cyclic Program Structures Based on Connectivity and Processor Timing .W Time-shared, multiprogrammed, and overlayed batch systems frequently require segmentation of computer programs into discrete portions. These program portions are transferred between executable and peripheral storage whenever necessary; segmentation of program s in a manner that reduces the frequency of such transfers is the subject of this paper. Segmentation techniques proposed by C. V. Ramamoorthy are subject to limitations that arise when the preferred segment size is not compatible with the physical restrictions imposed by the available computing equipment. A generalization of Ramamoorthy's suggestions is made in order to allow their application when circumstances are other than ideal. .A Lowe, T. C. .K automatic segmentation, cyclic program structures, loops, paging, multiprogramming, loaders, assemblers, compilers, time-sharing, program connectivity .I 2131 .T Rapid Computation of Weights of Interpolatory Quadrature Rules [D1] (Algorithm 417) .A Gustafson, S. .K divided differences .I 2132 .T Rapid Computation of Coefficients of Interpolation Formulas [E1] (Algorithm 416) .A Gustafson, S. .K divided differences, Newton's interpolation formula .I 2133 .T Algorithm for the Assignment Problem (Rectangular Matrices) [H] (Algorithm 415) .A Bourgeois, F. Lassalle, J. C. .K operations research, optimization theory, assignment problem, rectangular matrices .I 2134 .T An Extension of the Munkres Algorithm for the Assignment Problem to Rectangular Matrices .W 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. .A Bourgeois, F. Lassalle, J. .K operations research, optimization theory, assignment problem, rectangular matrices, algorithm .I 2135 .T Rapid Computation of General Interpolation Formulas and Mechanical Quadrature Rules .W Let f have n continuous on a closed interval [a,b] and let L be a linear functional. The attempt is made to approximate L (f) with L (Q) where Q is a polynomial, approximating f. Algorithms are developed for rapid computation of L (Q) for a wide class of selections of Q which includes the Lagrangian and Hermitian rules as special cases. .A Gustafson, S. .K linear functionals, divided differences, Newton's interpolation formula .I 2136 .T A Note on "A Modification of Nordsieck's Method Using an 'Off-Step' Point" .A Blumberg, J. W. Foulk, C. R. .K ordinary differential equations, multi-step methods, predictor, corrector, round-off error, Nordsieck's method, Gragg-Stetter modification .I 2137 .T New LISP Techniques for a Paging Environment .W The system described herein employs the block concept, and that of global and local variables, in addition to the methods applied in most LISP systems. Also, a new means of list representation is used: "local sequential" for lists created during compilation, and "block level sequential" for those created dynamically. A new garbage collection algorithm has been introduced to make lists as compact as possible; partial garbage collection is performed after each block exit instead of total garbage collection when storage is exhausted. The algorithm does not use the customary flagging procedure. This combination of features has eliminated the need for a free list, and effectively minimizes the number of pages used at any moment. .A Rochfeld, A. .K LISP, list processing, paging, virtual memory, garbage collection, core fragmentation, compact list structures, block, segment .I 2138 .T BLISS: A Language for Systems Programming .W 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. .A Wulf, W. A. Russell, D. B. .K programming languages, implementation language, systems programming, data structures .I 2139 .T Implementation of the Substring Test by Hashing .W A technique is described for implementing the test which determines if one string is a substring of another. When there is low probability that the test will be satisfied, it is shown how the operation can be speeded up considerably if it is preceded by a test on appropriately chosen hash codes of the strings. .A Harrison, M. C. .K substring, hashing, subset, signature, information compression, information retrieval, searching .I 2140 .T Retrieval-Update Speed Tradeoffs Using Combined Indices .W 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. .A Mullin, J. K. .K file organization, combined index files, inverted files, information retrieval, query, multi-attribute retrieval, file update .I 2141 .T Algorithmic Selection of the Best Method for Compressing Map Data Strings .W The best of a dozen different methods for compressing map data is illustrated. The choices are generated by encoding data strings-sequence of like codes-by three methods and in four directions. Relationships are developed between compression alternatives to avoid comparing all of them. The technique has been used to compress data from forest resource maps, but is widely applicable to map and photographic data reduction. .A Amidon, E. L. Akin, G. S. .K data compression, map storage, information retrieval, input/output, run coding, data reduction .I 2142 .T Reconstruction of Pictures from Their Projections .W 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. .A Gordon,R. Herman, G. T. .K approximation, biomedical image processing, efficient encoding, image processing, linear programming, mathematical programming, Monte Carlo techniques, optimization, picture compression, picture description, picture processing, stereology, X-ray analysis .I 2143 .T Chebyshev Approximation of Continuous Functions by a Chebyshev System of Functions [E2] (Algorithm 414) .A Bolub, G. H. Smith, L. B. .K approximation, Chebyshev approximation, Remex algorithm .I 2144 .T On Accurate Floating-Point Summation .W The accumulation 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 qN t-digit floating-point numbers. Each of these is then added to the appropriate one of n auxiliary t-digit accumulators. Finally, the accumulators are added together to yield the computed sum. In all, qN+n-1 t-digit floating-point additions are performed. Under usual conditions, the relative error in the computed sum is at most [(t+1)/v]B^(1-t) for some v. Further, with an additional q+n-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 n are q=2 and n=32. In this case, (*) becomes N <= 32,768, and we have [(t+1)/v]B^(1-t) = 4x16^-13. .A Malcolm, M. A. .K floating-point summation, error analysis .I 2145 .T Automation of Etching-Pattern Layout .W HELP (Heuristic Etching-Pattern Layout Program) is an application program developed to computerize the tedious and error-prone although vitally important wiring design of printed circuit boards. HELP helps automate a design stage one step closer to production than logical design. It can be used to design wiring patterns of two-layer circuit boards on which ICs in dual-in-line packages as well as discrete components such as transistors and resistors have been placed. HELP employs two methods of wiring. One is the heuristic method, which simulates human approaches to wiring design, and the other is the theoretically interesting but time-consuming method of maze-running, based on the Lee's algorithm. HELP performs more than 90 percent of required wiring by the heuristic path with respect to a performance function for each point-to-point, and point-to-line connection. It can bring the number of successful wiring connections very close to 100 percent. .A Aramaki, I. Kawabata, T. Kazuhiko, A. .K heuristic etching-pattern layout, wiring design of printed circuit board, maze-running, Lee's algorithm .I 2146 .T Optimizing the Polyphase Sort .W Various dispersion algorithms for the polyphase sorting procedure are examined.The optimum algorithm based on minimizing the total number of unit strings read is displayed. The logic of this algorithm is rather complicated; hence, several other new dispersion algorithms with more straightforward logic are presented. Of the simple dispersion algorithms discussed, the Horizontal is best. It does approximately one-fourth to one and one-half percent less reading and writing than most algorithms in use today. An additional two and one-fourth to three percent improvement can be achieved by utilizing the Modified Optimum Algorithm. This algorithm is relatively straightforward, but it requires a fairly close estimate of the total number of unit strings before the dispersion begins. .A Shell, D. L. .K sorting, polyphase sorting, dispersion algorithms, optimum dispersion algorithm, repetition operator .I 2147 .T Using Computers in Higher Education: Past Recommendations, Status, and Needs .W Data from a survey conducted with National Science foundation support, which was published in December 1970, is reviewed, and it is pointed out that, with regard to computers in higher education, national goals stated in the Rosser and Pierce Reports have not been attained. Quality was lacking in hardware or courses in nearly half of the associate and bachelor's degree programs in data processing, computer science, etc., offered in 1966-67. A plea is made for continuing studies on status and goals for computing in higher education, improvement of degree programs, and a national testing laboratory for educational technology. .A Hamblen, J. W. .K higher education, computers, degree programs, national goals, testing laboratory, educational technology .I 2148 .T The Composition of Semantics in Algol 68 .W The main features of Algol 68 are explained from a semantic point of view. It is shown how the language permits the composition of values and actions, i.e. ultimately programs, from a minimum set of primitives with a few fundamental recursive rules of composition. The associated syntax is briefly reviewed. An attempt has been made to obtain a structured and simple introduction to both Algol 68 and its orthogonal design. .A Branquart, P. Lewi, J. Sintzoff, M. Wodon, P. L. .K programming primitives, programming languages, Algol, semantics, recursive composition, design of programming languages, data structures .I 2149 .T ENTCAF and ENTCRE: Evaluation of Normalized Taylor Coefficients of an Analytic Function [C5] (Algorithm 413) .A Lyness, J. N. .K Taylor coefficients, Taylor series, Cauchy integral, numerical integration, numerical differentiation, interpolation, complex variable, complex arithmetic, fast Fourier transform .I 2150 .T Concurrent Control with "Readers" and "Writers" .W 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 of 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. .A Courois, P. J. Heymans, F. Parnas, D. L. .K mutual exclusion, critical section, shared access to resources .I 2151 .T User Program Measurement in a Time-Shared Environment .W A general discussion of the measurement of software systems is followed by a description of a hardware and software scheme for measuring user programs in a time-shared environment. The TX-2 computer at MIT Lincoln Laboratory was used for the implementation of such a system and the characteristics of this implementation are reported. A scenario showing the system in use is presented. Finally, it is shown how other time-sharing systems may provide similar measuring facilities. .A Nemeth, A. G. Rovner, P. D. .K operating systems, multiprogramming systems, time-sharing systems, software measurement, user program measurement, measurement technology, TX-2 computer, virtual computers, performance improvement .I 2152 .T Display Procedures .W 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 aversion of the EULER language in which display procedures were implemented. .A Newman, W. M. .K computer graphics, programming languages, display files .I 2153 .T Experiments with an Automated Instructional System for Numerical Methods .W A computer system was developed at Purdue University to teach portions of an undergraduate course in numerical methods. Each instructional unit or lesson is divided into three modes of instruction which allow the student to press from a computer-controlled presentation to a student-controlled investigation. The system is designed as a classroom-independent course of study, and has been used for two semesters by students in lieu of conventional classroom instruction. Initial measures of effectiveness, student acceptance, and operational cost are the result of testing the system independent of instructor intervention. The system is operational on a CDC 6500 with teletype terminals. .A Oldehoeft, A. E. Conte, S. D. .K computer-assisted instruction, numerical methods, CAI, instructional systems .I 2154 .T Clarification of Fortran Standards-Second Report .W In 1966, after four years of effort, Fortran became the first programming language standardized in the United States. Since that initial achievement study and application of the standard specifications have revealed the need for maintenance of the standards. As the result of work initiated in 1967, an initial set of clarifying interpretations was prepared and this clarification was published in Communications of the ACM in May 1969. That work has continued and has resulted in the preparation of this second set of clarifying interpretations. The nature of the maintenance and the new set of corrections to and interpretations of the standard specifications are reported. .A ANSI Subcommittee X3J3 .K American National Standard, Fortran, Basic Fortran, programming language, standardization, language standard specification, language standard maintenance, language standard clarification, language standard interpretation, standardization committee .I 2155 .T Toward an Understanding of Data Structures .W 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, an 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. .A Earley, J. .K data structures, graph, implementation, semantic formalism, programming language .I 2156 .T Comment on Cheney's List-Compaction Algorithm .A Fenichel, R. R. .K LISP, garbage collector, virtual memory, list processing, storage allocation .I 2157 .T Average Binary Search Length for Dense Ordered Lists .A Flores, I. Madpis, G. .K searching, binary searching, record retrieval .I 2158 .T A Stopping Criterion for the Newton-Raphson Method in Implicit Multistep Integration Algorithms for Nonlinear Systems of Ordinary Differential Equations .A Liniger, W. .K ordinary differential equations, linear multistep formulas, Newton-Raphson method, stopping criterion .I 2159 .T A Note on Best One-Sided Approximations .A Phillips, D. L. .K best approximation, one-sided approximation, logarithmic, error, relative error .I 2160 .T Canonical Structure in Attribute Based File Organization .W 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 of 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. .A Wong, E. Chiang, T. C. .K address calculation, atoms of Boolean algebra, attributes, Boolean functions, Boolean queries, file organization, information retrieval, inverted file, key words, multilist, queries, searches .I 2161 .T An Algorithm for the Blocks and Cutnodes of a Graph (Corrigendum) .A Paton, K. .I 2162 .T An Efficient Bit Table Technique for Dynamic Storage Allocation of 2^n-word Blocks .W An efficient bit table technique for dynamic storage allocation of 2^n-word blocks, which requires a minimized amount of memory for bookkeeping purposes, is described. The technique has been tested in an implementation of the list processing language L^6. A number of ideas incorporated in the processor are also described. .A Isoda, S. Goto, E. .K bit table, dynamic storage allocation, buddy system, L^6, list processing, free storage .I 2163 .T Education Related to the Use of Computers in Organizations .W 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. .A Teichroew, D. .K education, information analysis, systems design, business data processing .I 2164 .T Symbolic Integration: The Stormy Decade .W Three approaches to symbolic integration in the 1960's are described. The first, from artificial intelligence, led to Slagle's SAINT and to a large degree to Moses' SIN. The second, from algebraic manipulation, led to Manove's implementation and to Horowitz' and Tobey's reexamination of the Hermite algorithm for integrating rational functions. The third, from mathematics, led to Richardson's proof of the unsolvability of the problem for a class of functions and for Risch's decision procedure for the elementary functions.Generalizations of Risch's algorithm to a class of special functions and programs for solving differential equations and for finding the definite integral are also described. .A Moses, J. .K integration, symbolic integration, definite integrals, rational functions .I 2165 .T General Relativity and the Application of Algebraic Manipulative Systems .W The paper describes some applications of symbolic algebra systems to problems of general relativity including the derivation of the field equations, the Petrov classification of a metric, and the solution of the field equations in the presence of matter in a simple case. Attention is drawn to the strictly algebraic difficulties encountered in this work. .A Barton, D. Fitch, J. P. .K symbolic mathematics,nonnumerical mathematics, general relativity, algebraic manipulation, equation manipulation .I 2166 .T Automated Algebraic Manipulation in Celestial Mechanics .W In this paper we consider some of the applications of automated algebraic manipulation which have been made in celestial mechanics. Particular attention is paid to the use of Poisson series, and a typical problem in perturbation theory is described. The requirements of processors for use in celestial mechanics are considered and compared with those for general manipulation packages. Some future directions for research using these systems are briefly outlined. To illustrate the relative simplicity of the algorithm required in celestial mechanics, a typical integration problem is considered in an appendix. .A Jefferys, W. H. .K series manipulation, automated algebra, celestial mechanics .I 2167 .T Algebraic Simplification: A Guide for the Perplexed .W Algebraic simplification is examined first from the point of view of a user who needs to comprehend a large expression, and second from the point of view of a designer who wants to construct a useful and efficient system. First we describe various techniques akin to substitution. These techniques can be used to decrease thesize of an expression and make it more intelligible to a user. Then we delineate the spectrum of approaches to the design of automatic simplification capabilities in an algebraic manipulation system. Systems are divided into five types. Each type provides different facilities for the manipulation and simplification of expressions. Finally we discuss some of the theoretical results related to algebraic simplification. We describe several positive results about the existence of powerful simplification algorithms and the number-theoretic conjectures on which they rely. Results about the nonexistence of algorithms for certain classes of expressions are included. .A Moses, J. .K algebraic manipulation, algebraic simplification, canonical simplification .I 2168 .T List Tracing in Systems Allowing Multiple Cell-Types .W List-processing systems have each allowed the use of only a single size and configuration of list cell. In this paper a system is described which allows the use of arbitrarily many different sizes and configurations of list cells, possibly not specified until run time. .A Fenichel, R. R. .K list-processing, storage allocation, LISP, SLIP, based storage, pointers .I 2169 .T The Altran System for Rational Function Manipulation-A Survey .W Altran is a complete system for symbolic computation with rational functions in several variables with integer coefficients. It has been designed and implemented to handle large problems with ease and efficiency. Considerable effort has been spent to ensure a minimum amount of machine dependence in the implementation, thus permitting the system to be installed quickly and easily on a variety of computing machines. In this paper a brief description of the language, run time data structures, and implementation is given. .A Hall Jr., A. D. .K symbolic algebra, rational function manipulation, polynomial manipulation, interpreters, translators .I 2170 .T Applications of Symbol Manipulation in Theoretical Physics .W This paper surveys the applications of symbolic computation techniques to problems in theoretical physics. Particular emphasis is placed on applications in quantum electrodynamics where the most activity has occurred. .A Hearn, A. C. .K symbol manipulation, algebraic simplification, computational physics, quantum electrodynamics .I 2171 .T Solution of Simultaneous Nonlinear Equations .A Raduchel, W. J. .K nonlinear equations .I 2172 .T Graph Plotter [J6] (Algorithm 412) .A Cermak, J. .K plot, graph, line printer plot .I 2173 .T Three Procedures for the Stable Marriage Problem [H] (Algorithm 411) .A McVitie, D. G. Wilson, L. B. .K assignment problems, assignment procedures, combinatorics, discrete mathematics, operations research, stable marriage problem, university entrance .I 2174 .T The Stable Marriage Problem .W 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. .A McVitie, D. G. Wilson,L. B. .K assignment problems, assignment procedures, combinatorics, discrete mathematics, operational research, stable marriage problem, university entrance .I 2175 .T Subexpression Ordering in the Execution of Arithmetic Expressions .W An arithmetic expression can often be broken down into its component subexpressions. Depending on the hardware environment in which the expression is to be executed, these subexpressions can be evaluated in serials, in parallel, or in a combination of these modes. This paper shows that expression execution time can be minimized only if consideration is given to the ordering of the subexpressions. In particular, subexpressions should be executed in order of decreasing memory and processor time requirements. This observation is valid for configurations ranging from a uniprocessor with an unbuffered main memory to multiprocessor with a "cache" buffer memory. If the number of subexpressions which can be executed in parallel exceeds the number of available processors, then execution of some of these subexpressions must be postponed. A procedure is given which combines this requirement with the earlier ordering considerations to provide an optimal execution sequence. .A Ramamoorthy, C. V. Gonzalez, M. J. .K parallel processing, cache, arithmetic expressions, subexpression ordering, computational trees, compilers .I 2176 .T Buffer Allocation in Merge-Sorting .W A fixed buffer allocation for merge-sorting is presented here which minimizes the number of input-output operations for a given order of merge. When sorting on movable arm disks, the number of seeks is equal to the number of input-output operations, and the seek time usually controls the sort time. First some standard terminology is introduced. Then the input buffer allocation method is described, followed by an analysis of the improvement to be expected over more conventional allocation. This analysis makes use of a particular distribution function. An analysis of a completely different distribution is given which yields similar results. This suggests that the results do not depend on a particular distribution function. An optimum output buffer size is also determined. It is concluded that this buffering allocation can significantly reduce the time of merge sorting on movable arm disks when the input data are not random, and that this output buffer allocation should be used whether the data is random or not. .A Ferguson, D. E. .K file, item, string, merge sort, seek time, gamma distribution function .I 2177 .T An Algorithm for the Blocks and Cutnodes of a Graph .W An efficient method is presented for finding blocks and cutnodes of an arbitrary undirected graph. The graph may be represented either (i) as an ordered list of edges or (ii) as a packed adjacency matrix. If w denotes the word length of the machine employed, the storage (in machine words) required for a graph with n nodes and m edges increases essentially as 2(m+n) in case (i), or (n^2)/win case (ii). A spanning tree with labeled edges is grown, two edges finally bearing different labels if and only if they belong to different blocks. For both representations the time required to analyze a graph on n nodes increases as n^G where G depends on the type of graph, 1 <= G <= 2, and both bounds are attained. Values of G are derived for each of several suitable families of test graphs, generated by an extension of the web grammar approach. The algorithm is compared in detail with that proposed by Read for which 1 <= G <= 3. .A Paton, K. .K algorithm, block, block-cutpoint-tree, cutnode, fundamental cycle set, graph, lobe, lobe decomposition graph, separable, spanning tree, web grammar .I 2178 .T A Language Extension for Graph Processing and Its Formal Semantics .W A simple programming language "extension," Graspe, for processing directed graphs is defined. Graspe consists of a type of directed graph data structure and a set of primitive operations for manipulating these structures. Graspe may be most easily implemented by embedding it in a host language. Emphasis is placed both on Graspe itself and on its method of definition. Commonly, the definition of a language involves definition of the syntactic elements and explanation of the meaning to be assigned them (the semantics). The definition of Graspe here is solely in terms of its semantics; that is, the data structures and operations are defined precisely but without assignment of a particular syntactic representation. Only when the language is implemented is assignment of an explicit syntax necessary. An example of an implementation of Graspe embedded in Lisp is given as an illustration. The advantages and disadvantages of the definition of a language in terms of its semantics are discussed. .A Pratt, T. W. Friedman, D. P. .K graph processing, programming language, formal semantics, directed graph, Lisp, network, data structure, flowchart, syntax, language definition .I 2179 .T Simple LR(k) Grammars .W 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. .A DeRemer, F. L. .K context-free grammar, LR(k) grammar, precedence grammar, syntactic analysis, parsing algorithm, parser, finite-state machine, deterministic pushdown automaton .I 2180 .T A Programmer Training Project .W A project is described whose purpose is to train selected black residents of the Albany-Schenectady area in computer programming and arrange for jobs for them in the computer field. Both the organization and curriculum of the course are discussed. .A Bernstein, A. J. .K programmer training, job opportunities, Fortran .I 2181 .T The State of Computer Oriented Curricula in Business Schools 1970 .W The ACM Committee on Computer Education for Management, supported by a National Science Foundation Grant, is established to appraise the state of the art and to develop a series of recommendations for improving computer education for management. To provide the Committee with material for its study of curricular needs, five regional meetings in the United States were held in 1970, at each of which a broad cross section of invited academicians and practitioners considered the state of curricula in business schools. Three topics were covered: curricula for the general manager; computer-related material in required and functional courses; and curricula for students concentrating on computer-based information systems. An analysis of the minutes of the meetings revealed a common set of experiences which raised similar pedagogic and economic issues. This presentation gives a summary of the discussions; a condensation of the pedagogic and substantive concerns raised; and consideration of the resource allocation issues involved. Preliminary to the Committee's recommendations for improving computer education for management, this report has been prepared to provide the participants and the administrators of their institutions with background information for the ongoing task of course development. Chairman of the ten-man Committee is Daniel Teichroew (The University of Michigan). .A McKenney, J. L. Tonge, F. M. .K university programs, management education, curriculum design, business administration curricula, graduate business school resource planning .I 2182 .T Interrupt Driven Programming .A Zelkowitz, M. .K interrupts, supervisors, monitors, debugging, parallel processing, associative memories, microprogramming .I 2183 .T Binary Summation .A Walker, R. J. .K summation, binary summation, floating-point addition, round-off errors .I 2184 .T On the Meaning of Names in Programming Systems .W It is assumed that there is a similarity of function between the data names of a programming language and the file names of an operating system. The two functions are discussed in terms of the same basic concepts in order to identify the extent to which they overlap. It is suggested that there is some similarity between the idea of a file directory and a storable object of type context. Manipulations with contexts are then discussed at length. It is noted that there is a simple extension of Church's Lambda notation that deals nicely with these ideas of context manipulation. Whereas a function can be regarded as the abstraction based upon the first two terms of the expression Lambda(name list)(expression)(value list), it is found that a context can be viewed as an abstraction based upon the first two terms in the equivalent expression Mu(name list)(value list)(expression). .A Fraser, A. G. .K file, operating system, programming language, functions, names, context, file directory, file dictionary, lambda calculus, theory of programming .I 2185 .T A Note on Compiling Fixed Point Binary Multiplications .W An algorithm is developed for compiling, as a sequence of shifts, additions,and subtractions, many fixed point binary multiplications involving a constant. The most significant characteristics of the algorithm are the simplicity of the test which determines if the algorithm should be applied and the degree to which it "suggests" efficient object code. .A Glaswin, H. T. .K compiling multiplications, fixed point arithmetic .I 2186 .T Numerical Properties of the Ritz-Trefftz Algorithm for Optimal Control .W In this paper the Ritz-Trefftz algorithm is applied to the computer solution of the state regulator problem. The algorithm represents a modification of the Ritz direct method and is designed to improve the speed of solution and the storage requirements to the point where real-time implementation becomes feasible. The modification is shown to be more stable computationally than the traditional Ritz approach. The first concern of the paper is to describe the algorithm and establish its properties as a valid and useful numerical technique. In particular such useful properties as definiteness and reasonableness of condition are established for the method. The second part of the paper is devoted to a comparison of the new techniques with the standard procedure of numerically integrating a matrix Riccati equation to determine a feedback matrix. The new technique is shown to be significantly faster for comparable accuracy. .A Bosarge Jr., W. E. Johnson, O. G. .K splines, regulator problem, control theory, numerical analysis .I 2187 .T Computer Science: A Conceptual Framework for Curriculum Planning .W Two views of computer science are considered: a global view which attempts to capture broad characteristics of the field and its relationships to other fields, and a local view which focuses on the inner structure of the field. This structure is presented in terms of the kinds of knowledge, problems, and activities that exist within the discipline, as well as the relations between them. An approach to curriculum planning in computer science is presented which is guided by the structure of the field, by the fact that change is an important feature of the situation, and by the expectation that computer science will continue to increase its working contacts with other disciplines. .A Amarel, S. .K computer science, curriculum planning, education .I 2188 .T An Approach to the Optimum Design of Computer Graphics Systems .W Display system designers are faced with the difficult task of selecting major subsystems in an intelligent way. Each subsystem is chosen from large numbers of alternatives; the selection is based on considerations such as system response time, system cost, and the distribution of data storage and processing between the graphics processor and its supporting data processing system. The work reported here develops an objective, quantitative design procedure and helps give a better understanding of now to configure display systems. This is accomplished by means of a mathematical model of a computer driven graphics system. The parameters of the model are functions of the capabilities of the graphics hardware and of the computational requirements of the graphics application. The model can be analyzed using numerical queueing analysis or simulation to obtain an average response time prediction. By combining the model with an optimization, the best graphics system configuration, subject to a cost constraint, is found for several applications. The optimum configurations are in turn used to find general display system design guidelines. .A Foley, J. D. .K design guidelines, graphic display systems, mathematical model, optimum system design, queueing model .I 2189 .T Generation of Rosary Permutations Expressed in Hamiltonian Circuits .W Systematic generation of a specific class of permutations fundamental to scheduling problems is described. In a nonoriented complete graph with n vertices, Hamitonian circuits equivalent to .5(n - 1)! specific permutations of n elements, termed rosary permutations, can be defined. Each of them corresponds to two circular permutations which mirror-image each other, and is generated successively by a number system covering 3*4*...*(n-1) sets of edges. Every set of edges {E[k]}, 1 <= E[k] <= k, 3 <= k <= (n-1) is determined recursively by constructing a Hamiltonian circuit with k vertices from a Hamiltonian circuit with k-1 vertices, starting with the Hamiltonian circuit of 3 vertices. The basic operation consists of transposition of a pair of adjacent vertices where the position of the pair in the permutation is determined by {E[k]}. Two algorithms treating the same example for five vertices are presented. It is very easy to derive all possible n! permutations from the .5(n - 1 )! rosary permutations be cycling the permutations and by taking them in the reverse order-procedures which can be performed fairly efficiently by computer. .A Harada, K. .K permutation, graph theory, scheduling, combinatorial algebra .I 2190 .T Function Minimization .A House, F. R. .I 2191 .T ALGORITHM 410 Partial Sorting [M1] .A Chambers, J. M. .K sorting, partial sorting order statistics .I 2192 .T Another Recursion Induction Principle .W 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. .A Morris Jr., J. H. .K recursion, induction, correctness, proofs, compiler correctness .I 2193 .T On Implementation of Label Variables .W Variables of label mode are conventionally implemented with a technique which fails to trap certain programming errors. Fine-grained calendar clocks have recently become available; these allow implementation of label variables via a new technique which traps all programming errors of this variety. .A Fenichel, R. R. .K labels, compiler, interpreter, go to, transfer .I 2194 .T How To Keep the Addresses Short .W An algorithm is presented for minimizing the sum of the lengths of the blocks of coding produced by an assembler or compiler when (1) the length of each computer instruction is assumed to be either "long" or "short" ("long," if the memory location addressed is more than a predetermined distance from the current location; "short," otherwise), and (2) there are blocks of instructions whose beginnings (origins) are separated by prespecified amounts. For example, some computers permit either 8-bit addressing (interpreted relative to the location counter) or full 16-bit addressing of all of memory. When assembling or compiling two or more blocks of instructions which have many mutual references in such a computer, there is no simple iterative procedure for keeping as many of the addresses short as possible. This paper demonstrates that a wide class of problems of this type can be formulated as covering problems solvable by means of elementary arithmetic operations on the column vectors of a ternary matrix. .A Richards, D. L. .K addressing, assembler, covering problem, integer programming, variable-length addressing .I 2195 .T On the Optimal Detection of Curves in Noisy Pictures .W A technique for recognizing systems of lines is presented. In this technique 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. The method described is suitable for parallel processing because the operations relative to each state can be computed in parallel, and the number of stages is equal to the length N of the curves (or to log2 N if the approximate method is used). .A Montanari, U. .K picture processing, picture recognition, picture description, curve detection, line detection, edge detection,optimal detection, heuristic methods, global recognition, parallel processing, dynamic programming, interaction graph, secondary optimization problem .I 2196 .T A Man-Machine Approach Toward Solving the Traveling Salesman Problem .W The traveling salesman problem belongs to an important class of scheduling and routing problems. It is also a subproblem in solving others, such as the warehouse distribution problem. It has been attacked by many mathematical methods with but meager success. Only for special forms of the problem or for problems with a moderate number of points can it be solved exactly, even if very large amounts of computer time are used. Heuristic procedures have been proposed and tested with only slightly better results. This paper describes 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 in many of today's heuristics, but it is asked to organize the data for the human so that the human can solve the problem easily. The technique used in this paper seems to point to new directions in the field of man-machine interaction and in the field of artificial intelligence. .A Krolak, P. Felts, W. Marble, G. .K heuristic procedures, computer-aided heuristic technique, man-machine interaction, artificial intelligence, assignment problem, mask of the assignment, rubber band tour generator, interaction process, traveling salesman problem .I 2197 .T The Merit of Regional Computing Networks .W One of the suggested means for stimulating the spread of computing capabilities in institutions of higher learning is through the construction of regional computing networks. One such network has been constructed in the San Francisco Bay Area by Stanford University. This paper reports upon the lessons learned from the operation of the network over the past two years. A major impact of the network was not so much the computer power delivered to the schools as the awakening of computing awareness and the fostering of capability development at these schools. The expertise and assistance from the central facility as well as the sharing of ideas among the participants were other important benefits. Both the quality and variety of services provided by the central facility were found to play a key role in the effectiveness of the network. A regional network brings many benefits and should not be judged as a purveyor of raw computer power alone. .A Nielsen, N. R. .K computer sharing, computer utility, cooperative networks, curriculum development, educational computing, network computing, regional computing networks, remote computing, shared computing .I 2198 .T Introduction to "Feature Analysis of Generalized Data Base Management Systems" .W This paper is a separately published introduction to a main report which analyzes the features of generalized data base management systems. This introduction gives a review of the current state of the art in these systems and discusses the differences and similarities between capabilities found in host language systems and those found in self-contained systems. After some discussion of the problems of data independence and binding,the four user levels are identified and described. Technical problems facing future designers are described. The first of these is that of handling existing stored data and the next is that of providing more complex data structures than those already available in conventional programming languages. The problem of high level interrogation and update functions acting on network structures is mentioned, followed by a discussion of the problem of catering to a high volume of transactions initiated from terminals by parametric users-the lowest level of user. The use of Cobol as a basis for further development work is considered at some length with respect to data structures, host language capabilities, and self-contained capabilities. This section also assesses the effect of the Data Base Task Group proposals. The final section outlines the ten major topics in the main body of the full report. .A Codasyl Systems Committee .K data base management systems, programming languages, data structures, storage structures, information retrieval, transaction processing .I 2199 .T A Sparse Matrix Package (Part I) [F4] (Algorithm 408) .A McNamee, J. M. .K matrix, sparse matrix, matrix manipulation .I 2200 .T On Complement Division .W The division algorithm theorem is expressed in a form that permits it to serve as the basis for devising division operations that produce both quotient and remainder in complement form. Algorithms for division yielding complement results are derived for numbers represented in any base greater than one. Both radix and radix-less-one complementation schemes are considered. The binary form of the algorithms thus includes both two's and one's complement implementation. The problem of quotient overflow for complement results is dealt with as is that of selecting an appropriate form of the remainder condition for complement division. .A Stein, M. L. Munro, W. D. .K division algorithm, complement arithmetic, complement division, one's complement arithmetic, two's complement arithmetic .I 2201 .T Animator: An On-Line Two-dimensional Film Animation System .W Animator is a computer animation system which was designed to overcome some of the inherent disadvantages associated with conventional computer animation techniques.The DEC-338 serves as an input terminal for movie making, allowing the trial and error design of picture sequences in a conversational mode. During all stages on the system input elements (light pen, pushbuttons, and teletype) is maintained. At the user's request, this record is sent to the IBM 360/75 where the S-D 4020 instructions necessary to produce the same sequence of pictures can be generated. It is anticipated that one of the primary contributions of Animator will be the provision of a facility which will allow any professor to produce his own expository film strips. .A Talbot, P. A. Carr III, J. W. Coulter Jr., R. R. Hwang, R. C. .K computer graphics, computer animation, on-line systems, two-dimensional languages, CRT, microfilm recorder .I 2202 .T Dynamic Microprogramming: Processor Organization and Programming .W A dynamically microprogrammed processor is characterized by a small (4^k 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. .A Tucker, A. B. Flynn, M. J. .K microprogramming,read-write microstorage, subroutine linkage, execution speed .I 2203 .T Key-to-Address Transform Techniques: A Fundamental Performance Study on Large Existing Formatted Files .W The results of a study of eight different key-to-address transformation methods applied to a set of existing files are presented. As each method is applied to a particular file, load factor and bucket size are varied over a wide range. In addition, appropriate variables pertinent only to a specific method take on different values. The performance of each method is summarized in terms of the number of accesses required to get to a record and the number of overflow records created by a transformation. Peculiarities of each method are discussed. Practical guidelines obtained from the results are stated. Finally, a proposal for further quantitative fundamental study is outlined. .A Lum, V. Y. Yuen, P. S. T. Dodd, M. .K hashing, hashing techniques, hashing methods, hash coding, keys, key transformation, key-to-address transformation, direct addressing, direct access method, randomizing, random access,file addressing, file organizations, file structures, scatter storage, search, collisions, clusters, information retrieval .I 2204 .T Program Development by Stepwise Refinement .W 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. .A Wirth, N. .K education in programming, programming techniques, stepwise program construction .I 2205 .T DIFSUB for Solution of Ordinary Differential Equations [D2] (Algorithm 407) .A Gear, C. W. .K differential equations, stiff differential equations .I 2206 .T Exact Solution of Linear Equations Using Residue Arithmetic [F4] (Algorithm 406) .A Howell, J. .K residue arithmetic, symmetric residue, modulus, mixed-radix representation, symmetric mixed-radix representation, mixed-radix conversion, prime number, linear equations, Gaussian elimination, matrix inversion, determinant, adjoint matrix, ill-condition .I 2207 .T The Automatic Integration of Ordinary Differential Equations .W 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. .A Gear, C. W. .K differential equations, stiff equations, integration, step control, order control .I 2208 .T Storage Utilization in a Memory Hierarchy When Storage Assignment Is Performed by a Hashing Algorithm .W The utilization of storage is studied in a two-level memory hierarchy. The first storage level, which is the fast store, is divided into a number of storage areas. When an entry is to be filed in the hierarchy, a hashing algorithm will attempt to place the entry into one of these areas. If this particular area is full, then the entry will be placed into the slower second-level store, even though other areas in the first-level store may have space available. Given the N entries have been filed in the entire hierarchy, an expression is derived for the expected number of entries filed in the first-level store.This expression gives a measure of how effectively the first-level store is being used. By means of examples, storage utilization is then studied as a function of the hashing algorithm, the number of storage areas into which the first-level store is divided and the total size of the first-level store. .A Williams, J. G. .K hashing algorithms, memory allocation, memory hierarchy, memory utilization, storage allocation, storage hierarchy, storage utilization .I 2209 .T A Scheduling Algorithm for a Computer Assisted Registration System .W This paper presents the scheduling algorithm used in the Computer Assisted Registration System at the University of Tennessee. Notation is defined and the logic of the algorithm necessary to implement educational policy is described. Results from the first term's implementation are presented. .A Winters, W. K. .K computer assisted registration, scheduling algorithm, timetable .I 2210 .T Toward Automatic Program Synthesis .W 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 inefficiency. 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. .A Manna, Z. Waldinger, R. J. .K artificial intelligence, answer extraction, automatic program synthesis, mathematical induction principle, problem solving, theorem proving .I 2211 .T Scanned-Display Computer Graphics .W 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. .A Noll, A. M. .K computer graphics, scanned-display, scan conversion, raster displays .I 2212 .T F-DISTRIBUTION .A Tolman, H. .K Fisher's F-distribution, Student's t-distribution .I 2213 .T Roots of Matrix Pencils: The Generalized Eigenvalue Problem [F2] (Algorithm 405) .A Dell, A. M. Weil, R. L. Thompson, G. L. .K eigenvalues, matrix roots, pencil roots .I 2214 .T Complex Interval Arithmetic .W Complex interval arithmetic is defined using real interval arithmetic. Complex interval division is defined so as to assure smallest possible resulting intervals. .A Rokne, J. Lancaster, P. .K real intervals, real interval arithmetic, complex intervals, complex interval arithmetic .I 2215 .T Application of Game Tree Searching Techniques to Sequential Pattern Recognition .W A sequential pattern recognition (SPR) procedure does not test all the features of a pattern at once. Instead, it selects a feature to be tested. After receiving the result of that test, the procedure either classifies the unknown pattern or selects another feature to be tested, etc. Medical diagnosis is an example of SPR. In this paper the authors suggest that SPR be viewed as a one-person game played against nature (chance). Virtually all the powerful techniques developed for searching two-person, strictly competitive game trees can easily be incorporated either directly or by analogy into SPR procedures. In particular, one can incorporate the "mini average backing-up procedure" and the "gamma procedure," which are the analogues of the "minimax backing-up procedure" and the "alpha-beta procedure," respectively. Some computer simulated experiments in character recognition are presented. The results indicate that the approach is promising. .A Slagle, J. R. Lee, R. C. T. .K sequential pattern recognition, game tree searching, game against nature, gamma procedure, mini average backing-up procedure, dynamic programming, branch-and-bound approach, optimal solution .I 2216 .T On the Probability Distribution of the Values of Binary Trees .W An integral equation is derived for the generating function for binary tree values, the values reflecting sorting effort. The analysis does not assume uniformly distributed branching ratios, and therefore is applicable to a family of sorting algorithms discussed by Hoare, Singleton, and van Emden. The solution to the integral equation indicates that using more advanced algorithms in the family makes only minor reductions in the expected sorting effort, but substantially reduces the variance in sorting effort. Statistical tests of the values of several thousand trees containing up to 10,000 points have given first, second, and third moments of the value distribution function in satisfactory agreement with the moments computed from the generating function. The empirical tests, as well as the analytical results, are in agreement with previously published results for the first moment in the cases of uniform and nonuniform distribution of branching ratio, and for the second moment in the case of uniform distribution of branching ratio. .A Hurwitz Jr., H. .K binary trees, sorting, statistical analysis .I 2217 .T Experiments in Automatic Learning for a Multipurpose Heuristic Program .W An automatic learning capability has been developed and implemented for use with the MULTIPLE (MULTIpurpose Program that LEarns) heuristic tree-searching program, which is presently being applied to resolution theorem-proving in predicate calculus. MULTIPLE's proving program (PP) uses two evaluation functions to guide its search for a proof of whether or not a particular goal is achievable. Thirteen general features of predicate calculus clauses were created for use in the automatic learning of better evaluation functions for PP. A multiple regression program was used to produce optimal coefficients for linear polynomial functions in terms of the features. Also, automatic data-handling routines were written for passing data between the learning program and the proving program, and for analyzing and summarizing results. Data was generally collected for learning (regression analysis) from the experience of PP. A number of experiments were performed to test the effectiveness and generality of the learning program. Results showed that the learning produced dramatic improvements in the solutions to problems which were in the same domain as those used for collection learning data. Learning was also shown to generalize successfully to domains other than those used for data collection. Another experiment demonstrated that the learning program could simultaneously improve performance on problems in a specific domain and on problems in a variety of domains. Some variations of the learning program were also tested. .A Slagle, J. R. Farrell, C. D. .K learning, theorem-providing, heuristic, automatic learning, self-modifying,tree-searching, artificial intelligence, problem-solving, adaptive, LISP, multiple regression, resolution .I 2218 .T An Analysis of Some Time-Sharing Techniques .W The effectiveness of certain time-sharing techniques such as program, relocation, disk rotational delay minimization, and swap volume minimization is investigated. Summary data is presented, and the findings are discussed. The vehicle for this investigation was a SIMULA based simulation model reflecting an early framework for a planned Burroughs B6500 time-sharing system. Inasmuch as the B6500 system is based upon the use of variable sized segments and a dynamic overlay procedure, data is also presented which provides some indication of the effectiveness of this type of organization in a time-sharing environment. The design characteristics and operational capabilities of the simulation model are also described. .A Nielsen, N. R. .K B6500, bulk core usage, operating system model, relocation, rotational delay minimization, simulation, swap volume minimization, system simulation, time-sharing .I 2219 .T A Policy-Driven Scheduler for a Time-Sharing System .W The service received by a process from a time-sharing operating system can be characterized by a resource count SUM{w[i]R[ij]} where R[ij] is the number of units of service received by process i from resource i and w[i] is the cost per unit of the service. Each class of users can be characterized by a policy function which specifies the amount of service a user who belongs to this class should receive as a function of time. Priority changes dynamically as a function of the difference between the service promised to the user by the policy function and the service he actually receives. A scheduling and swapping algorithm which keeps the resource count of each process above its policy function will provide the specified level of service. Overhead can be reduced by avoiding swaps of process which have received at least his level of service. The algorithm has been implemented in a general purpose operating system, and it has provided significantly better service to interactive and to batch jobs than the previous scheduler. .A Bernstein, A. J. Sharp, J. C. .K scheduler, time-sharing, operating system, resource allocation and swapping .I 2220 .T Conversion of Limited-Entry Decision Tables to Computer Programs-A Proposed Modification to Pollack's Algorithm .W Pollack has proposed an algorithm for converting decision tables into flowcharts which minimize subsequent execution time when compiled into a computer program. Two modifications of this algorithm are proposed. The first relies on Shannon's noiseless coding theorem and the communications concept of entropy but does not completely test the ELSE Rule. The second modification completely tests the ELSE Rule but results in more executions than the first modification. Both modifications result in modification guarantees a globally optimal solution. .A Shwayder, K. .K coding, decision table, entropy, information theory, noiseless channel, sorting .I 2221 .T Comment on the Conversion of Decision Tables to Computer Programs .A Pollack, S. L. .K decision tables, diagnostic aids, system analysis, business applications .I 2222 .T Comment on London's Certification of Algorithm 245 .A Redish, K. A. .K proof of algorithms, debugging, certification, metatheory, sorting, in-place sorting .I 2223 .T Minit Algorithm For Linear Programming (Algorithm 222 [H]) .A Kolm, A. Dahlstrand, T. .K linear programming, dual simplex method, primal problem, dual problem .I 2224 .T Complex Gamma Function [S14] (Algorithm 404) .A Lucas Jr., C. W. Terrill, C. W. .K gamma function, poles of gamma function, Stirling's asymptotic series, recursion formula, reflection formula .I 2225 .T Circular Integer Partitioning [A1] (Algorithm 403) .A Coleman, M. W. Taylor, M. S. .K partitions, combinatorics, statistical design of experiments .I 2226 .T Further Evidence for the Analysis of Algorithms for the Zero-One Programming Problem .W The purpose of this note is to report computational experience additional to that recently summarized by Gue et al, with two algorithms for the zero-one linear programming problem. An error in Gue's paper is corrected. The utility of one of the algorithms as a suboptimizer is indicated. .A Proll, L. G. .K operations research, integer programming, zero-one variables, algorithms .I 2227 .T Proof of a Program: FIND .W A proof is given of the correctness of the algorithm "Find." First, a 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. .A Hoare, C. A. R. .K proofs of programs, programming methodology, program documentation, program correctness, theory of programming .I 2228 .T Comments on Prevention of System Deadlocks .W 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. .A Holt, R. C. .K multiprogramming, time-sharing, scheduling, resource allocation, deadlock, lockout, deadly embrace, knotting .I 2229 .T Construction of Rational and Negative Powers of a Formal Series .W Some methods are described for the generation of fractional and negative powers of any formal series, such as Poisson series or Chebyshev series. It is shown that, with the use of the three elementary operations of addition, subtraction, and multiplication, all rational (positive and negative) powers of a series can be constructed. There are basically two approaches: the binomial theorem and the iteration methods. Both methods are described here, and the relationship between them is pointed out. Some well-known classical formulas are obtained as particular cases, and it is shown how the convergence properties of these formulas can be improved with very little additional computations. Finally, at the end of the article, some numerical experiments are described with Chebyshev series and with Fourier series. .A Brucke, R. A. .K series expansion, series inversion, root extraction, binomial theorem, Newton iterations, Chebyshev series, Poisson series, Fourier series .I 2230 .T A Language for Treating Geometric Patterns in a Two-dimensional space .W In this paper CADEP, a problem-oriented language for positioning geometric patterns in a two-dimensional space, is presented. Although the language has been specifically designed for the automatic generation of integrated circuit masks, it turns out to be well suited also for such other placement problems as architecture design, urban planning, logical and block diagram representation. The design criteria, the structure, and the specific features of CADEP are illustrated. .A Bracchi, G. Ferrari, D. .K graphic language, problem-oriented language, two-dimensional patterns, graphic display, Fortran extension, layout problems, integrated circuit, architecture design, urban planning .I 2231 .T The Reconstruction of Binary Patterns from Their Projections .W Given the horizontal and vertical projections of a finite binary pattern f, can we construct the original pattern f? In this paper we give a characterization of patterns that are reconstructable from their projection. 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 X n and that a pattern similar to an ambiguous pattern can also be constructed in time m X n, where m, n are the dimensions of the pattern frame. .A Chang, S. .K pattern reconstruction, image reconstruction, data compression, pattern recognition, integral geometry .I 2232 .T Pattern Width at a Given Angle .W That the pattern feature "width as a function of angle" possesses several possible interpretations is demonstrated in this paper, which is a review of the width concept in pattern recognition and the geometrical concept itself. The object of the work is to clarify how the word description can be made precise so that computer algorithms for feature extraction may be obtained; the focus is on the theoretical subject matter. The results consist of a set-theoretic definition of width-at-angle, a theorem relating it to the pattern boundary radius vector, and descriptions of alternate widths. All widths are calculated for an illustrative example; graphical and tabular comparisons are given. Substantial variation in width-at-angle magnitude is found. The principal conclusion is that the set-theoretic width-at-angle is a useful pattern feature when it can be easily computed. Further investigation of the information contained in only part of a width function is recommended for cases where computation of width-at-angle is difficult. .A Klinger, A. .K feature extraction, pattern recognition,figure properties, picture processing, integral geometry, width-at-angle, extent, integral projections, linear pattern measures, width functions .I 2233 .T Signature Simulation and Certain Cryptographic Codes .W Three cyphers allegedly authored by Thomas Jefferson Beale in 1822 have been the subject of intensive study for over 100 years. Generations of cryptanalysts have expended untold man-years, thus far without success, attempting tode code them; vast armies of fortune hunters and treasure seekers have devoted Herculean labors to digging up the rolling hills of Virginia trying to locate the promised bonanza. The history of pertinent activities would fill volumes, yet serious students of cryptography have always had nagging doubts about the cyphers' authenticity. It has been alleged that the "known solution" to Cypher Number Two: 115, 73, 24, 818, 37, 52, 49,...("I have deposited in the County of Bedford about four miles from Buford's in an excavation or vault...") with the aid of an unsanitized version of the Declaration of Independence was merely a superb, imaginative, and grandiose hoax perpetrated ages ago for whatever reasons. Modern computer technology could obviously perform signature analyses the process of encoding itself so as to yield new clues and deeper insights into their construction. For the benefit of the uninitiated, the encoding method used in the second cypher employs a specified document whose words are simply numbered consecutively, and first letters of these words are sought out at random to match the letters of these words are sought out at random to match the letters of the clear text or message. The sequence of numbers corresponding to these matches is then written down as the final code. While primitive, the process has the advantage of relative security until the source document becomes known; at that moment the cypher can be decoded even by second graders. The work now completed with the help of our UNIVAC 1108 includes numerous analytical studies of the Beale cyphers and various types of simulations. For example, we have turned the entire process of simulated encoding by various schemes over to the machine and analyzed the signatures of these synthetic codes; we have also encoded various messages by hand, using different texts and a variety of methods to obtain their signatures. These simulations provide convincing evidence that the signatures are both process and data dependent; they indicate also very strongly that Mr. Beale's cyphers are for real and that it is merely a matter of time before someone finds the correct source document and locates the right vault in the common-wealth of Virginia. .A Hammer, C. .K Thomas Jefferson Beale, codes, cryptanalysis, cyphers, decoding, Declaration of Independence, encoding, Magna Carta, pseudotext, signature, simulation .I 2234 .T Roots of Matrix Pencils (Algorithm R405) .A Heiberger, R. M. .K eigenvalues, matrix roots, pencil roots .I 2235 .T Decision Table Translation (Algorithm R394) .A Marshall, D. R. T. .K decision table, decision table translation .I 2236 .T Remarks on Characteristic Values and Associated Solutions of Mathieus Differential Equation, Exponential Integral, and Systems of Hyperbolic P.D.E. (Algorithms R352, R385, R392) .A Frisch, M. J. .K ANSI Fortran standard .I 2237 .T BANDSOLVE (Algorithm R195) .A Schuegraf, E. .I 2238 .T Least Squares Surface Fit (Algorithm R176) .A Schuegraf, E. .I 2239 .T Squank (Algorithm C379) .A Hallet, P. Mund, E. .K numerical integration, integration rule, adaptive integration, automatic integration, Simpson's rule, numerical quadrature, quadrature rule, adaptive quadrature, automatic quadrature, round-off error control .I 2240 .T Pseudo-Random Numbers [G5] (Algorithm C266) .A Sullins, W. L. .K pseudo-random numbers, testing random number generators .I 2241 .T Product Type Three-point Gauss-Legendre-Simpson's Integration [D1] (Algorithm A439) .A Boland, W. R. .K numerical integration, product type quadrature, Gaussian quadrature, Simpson's rule .I 2242 .T Product Type Two-Point Gauss-Legendre-Simpson's Integration [D1] (Algorithm A438) .A Boland, W. R. .K numerical integration, product type quadrature, Gaussian quadrature, Simpson's rule .I 2243 .T Product Type Simpson's Integration [D1] (Algorithm A437) .A Boland, W. R. .K numerical integration, product type quadrature, Simpson's rule .I 2244 .T Product Type Trapezoidal Integration (Algorithm A436) .A Boland, W. R. .K numerical integration, product type quadrature, trapezoidal integration .I 2245 .T Trace-Driven Modeling and Analysis of CPU Scheduling in Multiprogramming System .W Microscopic level job stream data obtained in a production environment by an event-driven software probe is used to drive a model of a multiprogramming computer system. The CPU scheduling algorithm of the model is systematically varied. This technique, called trace-driven modeling, provides an accurate replica of a production environment for the testing of variations in the system. At the same time alterations in scheduling methods can be easily carried out in a controlled way with cause and effects relationships being isolated. The scheduling methods tested included the best possible and worst possible methods, the traditional methods of multiprogramming theory, round-robin, first-come-first-served, etc., and dynamic predictors. The relative and absolute performances of these scheduling methods are given. It is concluded that a successful CPU scheduling method must be preemptive and must prevent a given job from holding the CPU for too long a period. .A Sherman, S. Baskett III, F. Browne, J. C. .K scheduling, CPU scheduling,multiprogramming, performance measurement, trace driven models .I 2246 .T Levels of Language for Portable Software .W An increasing amount of software is being implemented in a portable form. A popular way of accomplishing this is to encode the software in a specially designed machine-independent language and then to map this language, often using a macro processor, into the assembly language of each desired object machine. The design of the machine-independent language is the key factor in this operation. This paper discusses the relative merits of pitching this language at a high level or a low level, and presents some comparative results. .A Brown, P. J. .K portable software, level of language, machine independent, macro processor, efficiency .I 2247 .T On the Criteria To Be Used in Decomposing Systems into Modules .W This paper discusses modularization as a mechanism for improving the flexibility ad comprehensibility of a system while allowing the shortening of its development time. The effectiveness of a "modularization" is dependent upon the criteria used in dividing the system into modules. A system design problem is presented and both a conventional and unconventional decomposition are described. It is shown that the unconventional decompositions have distinct advantages for the goals outlined. The criteria used in arriving at the decompositions are discussed. The unconventional decomposition, if implemented with the conventional assumption that a module consists of one or more subroutines, will be less efficient in most cases. An alternative approach to implementation which does not have this effect is sketched. .A Parnas, D. L. .K software, modules, modularity, software engineering, KWIC index, software design .I 2248 .T A New Method for the Solution of the Cauchy Problem for Parabolic Equations .W An integral equation representation is given for parabolic partial differential equations. When the equations are defined in unbounded domains, as in the initial value (Cauchy) problem, the solution of the integral equation by the method of successive approximation has inherent advantages over other methods. Error bounds for the methods are of order h^(3/2) and h^(7/2) (his the increment size) depending on the finite difference approximations involved. .A Moore, J. Robinson, P. .K parabolic equations, the Cauchy problem, method of successive approximations .I 2249 .T A Comparison of Multivariate Normal Generators .W Three methods for generating outcomes on multivariate normal random vectors with a specified variance-covariance matrix are presented. A comparison is made to determine which method requires the least computer execution time and memory space when utilizing the IBM 360/67. All methods use as a basis a standard Gaussian random number generator. Results of the comparison indicate that the method based on triangular factorization of the covariance matrix generally requires less memory space and computer time than the other two methods. .A Barr, D. R. Sezak, N. L. .K random number generator, normal distribution, multivariate normal distribution, multivariate normal generator .I 2250 .T Computer Methods for Sampling from the Exponential and Normal Distributions (Corrigendum) .A Ahrens, J. H. Dieter, U. .I 2251 .T Weighted Increment Linear Search for Scatter Tables .W A new linear search for hash tables whose increment step is a function of the key being addressed is presented. Comparisons with known methods are given, in terms of efficiency and computation complexity. In particular, the new method applies to tables of size n = 2^r. It allows full table searching, and practically eliminates primary clustering at a very low cost. .A Luccio, F. .K linear search, weighted increment search, scatter storage, hash table, key, hash address, clustering, search length .I 2252 .T A Method for Incrementally Compiling Languages with Nested Statement Structure .W A method of incremental compilation is presented which applies especially to programming languages in which statements can be nested (such as Algol and PL/I). The method permits editing of the source language using a general purpose text editor, and incremental processing of changes without frequent recompilation of entire routines. The essential points of the method are: (1) the syntax of the language is restricted insof ar as which constructs may occur on lines; (2) an internal data structure (called the skeleton) is maintained to represent the statement structure; (3) the recompilation is partially batched in the sense that recompilation of modified lines does not occur until the last of a set of editing commands has been received; and (4) the parsing and compilation are factored into two parts, that done on individual lines and that done globally to handle the relationships between the lines. .A Earley, J. Caizergues, P. .K incremental compiler, interactive programming language .I 2253 .T Index Ranges for Matrix Calculi .W The paper describes a scheme for symbolic manipulation of index expressions which arise as a by-product of the symbolic manipulation of expressions in the matrix calculi described by the authors in a previous paper. This scheme attempts program optimization by transforming the original algorithm rather than the machine code. The goal is to automatically generate code for handling the tedious address calculations necessitated by complicated data structures. The paper is therefore preoccupied with "indexing by position." The relationship of "indexing by name" and "indexing by position" is discussed. .A Bayer, R. Witzgall, C. .K address calculations, algorithm transformation, compilation, data structures, indexing by name, indexing by position, index domain, index map, index range, matrix expressions, normal form, programming languages, program optimization, range operations, symbolic manipulation, syntactic analysis, well-formed expressions .I 2254 .T Dynamic Partitioning for Array Languages .W The classical process of partitioning an array into subarrays is extended to a more useful array language operation. Various modes of partitioning are defined for different types of arrays, so that subarrays may vary over the original array in a nearly arbitrary manner. These definitions are motivated with several realistic examples to illustrate the value of partitioning for array languages. Of general interest is the data structure for partitioning. This consists of dynamic tree structures which are used to derive and maintain the array control information. These are described in sufficient detail to be of value in the design of other array languages. The description presented in this paper is implemented in a new array language, OL/2, currently under development at the University of Illinois. .A Phillips, J. R. Adams, H. C. .K dynamic partitioning, array partitioning array language, data structure, tree structure, programming language design, array control blocks, partition control blocks .I 2255 .T Comments on Moorer's Music and Computer Composition .A Smoliar, S. W. .K artificial intelligence, heuristic programming, models of cognitive processes, computer music, computer composition, music theory .I 2256 .T Further Comments on Dijkstra's Concurrent Programming Control Problem .A Eisenberg, M. A. McGuire, M. R. .K critical section, concurrent programming control, multiprocessing .I 2257 .T A Note on Optimal Doubly-Chained Trees .A Kennedy, S. .K file searching, doubly-chained tree, binary search tree .I 2258 .T Additional Results on Key-to-Address Transform Techniques: A Fundamental Performance Study on Large Existing Formatted Files .A Lum, V. Y. Yuen, P. S. T. .K hashing, hashing techniques, hashing methods, hash coding, keys, key transformation, key-to-address transformation, direct addressing, direct access method, randomizing, random access file organization, file search, scatter storage, information retrieval .I 2259 .T Modified Incomplete Gamma Function [S14] (Algorithm A435) .A Fullerton, W. .K modified incomplete Gamma function, incomplete Gamma function, chi-square distribution function, Poisson distribution function .I 2260 .T Exact Probabilities for R x C Contingency Tables [G2] (Algorithm A434) .A March, D. L. .K probability, contingency table, test of significance .I 2261 .T An Approximate Method for Generating Symmetric Random Variables .W A method for generating values of continuous symmetric random variables that is relatively fast, requires essentially no computer memory, and is easy to use is developed. The method, which uses a uniform zero-one random number source, is based on the inverse function of the lambda distribution of Turkey. Since it approximates many of the continuous theoretical distributions and empirical distributions frequently used in simulations, the method should be useful to simulation practitioners. .A Ramberg, J. S. Schmeiser, B. W. .K simulation, Monte Carlo, probability, statistics, approximations, random variables, random numbers, moments, distribution .I 2262 .T Garbage Collection for Virtual Memory Computer Systems .W In list processing there is typically a growing demand for space during program execution. This paper examines the practical implications of this growth within a virtual memory computer system, proposes two new garbage collection techniques for virtual memory systems, and compares them with traditional methods by discussion and by simulation. .A Baecker, H. D. .K garbage collection, virtual memory, list processing, paging, segmentation, page tables .I 2263 .T The Conversion of Limited-Entry Decision Tables to Optimal and Near-Optimal Flowcharts: Two New Algorithms .W Two new algorithms for deriving optimal and near-optimal flowcharts from limited entry decision tables are presented. Both take into account rule frequencies and the time needed to test conditions. One of the algorithms, called the optimum-finding algorithm, leads to a flowchart which truly minimizes execution time for a decision table in which simple rules are already contracted to complex rules. The other one, called the optimum-approaching algorithm, requires many fewer calculations but does not necessarily produce the optimum flowchart. The algorithms are first derived for treating decision tables not containing an ELSE-rule, but the optimum-approaching algorithm is shown to be equally valid for tables including such a rule. Both algorithms are compared with existing ones and are applied to a somewhat large decision table derived from a real case. From this comparison two conclusions are drawn. (1) The optimum-approaching algorithm will usually lead to better results than comparable existing ones and will not require more, but usually less, computation time.(2) In general, the greater computation effort needed for applying the optimum-finding algorithm will not be justified by the small reduction in execution time obtained. .A Verhelst, M. .K decision table, flowcharting, preprocessor, optimal programs, search .I 2264 .T Derived Semantics for Some Programming Language Constructs .W The constructs of a simple programming language are introduced and described informally in terms of values and side-effects. A translator is defined which translates the language into flowcharts for a simple machine. The action of the machine in executing a flowchart is defined. A proof is constructed that the effect of translating and executing any program can be expressed solely in terms of the value and side-effect of the program. During the course of constructing the proof, formal definitions of the concepts of value and side-effect are derived in order to make the proof rigorous. Correctness of the implementation involves checking that the definitions derived in the step above are an acceptable formalization of the informal description given in the first step. .A Henderson, P. .K lambda calculus, formal description, program correctness, programming languages, semantics .I 2265 .T A Model for Type Checking .W Most current programming languages treat computation over different classes of objects (e.g. numbers, strings, labels and functions). For correct compilation and execution, the following question then arises: is a program properly constructed so that its operations and operands are compatible? The activity of answering this question is usually called type checking. This paper attempts to isolate the notion of type checking and presents a partial solution to the type checking problem based on the notions of abstraction and application of functions. In particular, a program is mapped into an expression within a decidable subset of the Lambda calculus, which characterizes the type relations within the program and eliminates all other information. The determination of the type-wise correctness or incorrectness of the program is resolved by reducing its corresponding Lambda calculus expression to one of two normal forms, the constant "correct" for a type-wise correct program or the constant "error". An application to type checking in Algol 60 is made, and the attendant problems faced for any notion of type checking are discussed. .A Ledgard, H. F. .K type checking, types, Lambda calculus, models for programming languages, syntax, semantics, compiler writing, language implementation, formal definition .I 2266 .T A Highly Parallel Algorithm for Approximating All Zeros of a Polynomial with Only Real Zeros .W An algorithm is described based on Newton's method which simultaneously approximates all zeros of a polynomial with only real zeros. The algorithm, which is conceptually suitable for parallel computation, determines its own starting values so that convergence to the zeros is guaranteed. Multiple zeros and their multiplicity are readily determined. At no point in the method is polynomial deflation used. .A Patrick, M. L. .K parallel numerical algorithms, real polynomials, real zeros, Newton's method, starting values, guaranteed convergence .I 2267 .T Algorithms To Reveal Properties of Floating-Point Arithmetic .W Two algorithms are presented in the form of Fortran subroutines. Each subroutine computes the radix and number of digits of the floating-point numbers and whether rounding or chopping is done by the machine on which it is run. The methods are shown to work on any "reasonable" floating-point computer. .A Malcolm, M. A. .K floating-point arithmetic, high-level languages, philosophy of language design .I 2268 .T A Comparative Study of Computer Programs for Integrating Differential Equations .W A study comparing the performance of several computer programs for integrating systems of ordinary differential equations is reported. The integration methods represented include multistep methods (predictor-correctors), single-step methods (Runge-Kutta) and extrapolation methods (both polynomial and rational). The testing procedure is described together with the evaluation criteria applied. A set of test problems on which the programs were tested is included in an appendix. For the particular problems and criteria used in the investigation it was found that a program based on rational extrapolation showed the best performance. .A Fox, P. .K ordinary differential equations, integration, program comparison, certification, validation .I 2269 .T Tableless Date Conversion (Algorithm R398) .A Robertson, J. D. .K date, calendar, Fortran statement function, arithmetic statement function .I 2270 .T Interpolation and Smooth Curve Fitting Based on Local Procedures [E2] (Algorithm A433) .A Akima, H. .K interpolation, polynomial, slope of curve, smooth curve fitting .I 2271 .T Aesthetics and the Human Factor in Programming (Corrigendum) .A Ershov,A. P. .I 2272 .T Sorting by Natural Selection .W A family of sorting algorithms is proposed, the members of which make fuller use of the memory space and thus yield longer sorted strings. Extensive simulation results are presented, and various implications and further applications are discussed. .A Frazer, W. D. Wong, C. K. .K algorithms, sorting by replacement selection, expected string length .I 2273 .T Conversion of Decision Tables By Rule Mask Method Without Rule Mask .W Two algorithms for generating computer programs from decision tables are described. The algorithms allow handling limited entry, extended entry, and mixed entry tables. The algorithms are based on the rule mask method but need not have the masks at execution time. They perform the logical operations immediately rather than at the end of the interpreting process. Execution time can be considerably reduced by instantly marking rules which are not applicable (Algorithms 1 and 2) or conditions which are already tested (Algorithm 2). The new algorithms combine to a certain degree the advantages of mask methods with those of tree methods. .A Dathe, G. .K decision tables, rule mask, rule mask method, rule mask technique, program generator .I 2274 .T Generating English Discourse from Semantic Networks .W A system is described for generating English sentences from a form of semantic nets in which the nodes are word-sense meanings and the paths are primarily deep case relations. The grammar used by the system is in the form of a network that imposes an ordering on a set of syntactic transformations that are expressed as LISP functions. The generation algorithm uses the information in the semantic network to select appropriate generation paths through the grammar. The system is designed for use as a computational tool that allows a linguist to develop and study methods for generating surface strings from an underlying semantic structure. Initial finding with regard to form determiners such as voice, form, tense, and mood, some rules for embedding sentences, and some attention to pronominal substitution are reported. The system is programmed in LISP 1.5 and is available from the authors. .A Simmons, R. Slocum, J. .K semantic nets, grammars, deep case relations, semantic generation, discourse generation .I 2275 .T Integral Equations of Immunology .W The inversion of a particular integral equation of the first (Fredholm) kind is the basic problem considered. The strategy which yielded success consisted of three essential points: (1) fit the known experimental data by a curve with properties which derive from properties of the (as yet unknown) function; (2) stabilize the computation for the unknown function by using singular value decomposition; (3) constrain the unknown function approximation (since it represents a probability distribution) to be nonnegative. A number of test cases are presented. One set of actual experimental data is analyzed with the procedures presented. .A Hanson, R. J. .K integral equations of the first kind, nonnegative constraints, singular value analysis .I 2276 .T Computer Methods for Sampling from the Exponential and Normal Distributions .W Various methods are known for transforming uniformly distributed random numbers into exponentially and normally distributed quantities. The most efficient ones are compared, in terms of memory requirements and speed, with some new algorithms. A number of procedures convert Taylor series expansions directly into sampling steps, an approach which may be used for sampling from any continuous distribution. For the exponential distribution a definite recommendation can be made, whereas in the case of the normal distribution there remains a choice between slower and shorter algorithms and faster but space consuming methods. .A Ahrens, J. H. Dieter, U. .K random numbers, pseudorandom, normal distribution, exponential distribution, exponential distribution, simulation, numerical analysis .I 2277 .T Demand Paging Through Utilization of Working Sets on the MANIAC II .W A hardware implementation on the Maniac II computer of the working set model for demand paging, as introduced by Denning, is discussed. Characteristics of the Maniac II are given, along with a description of the basic demand paging scheme and the associate memory which has been added to the Maniac II hardware. Finally, a description of the hardware design for implementation of the working set model is discussed and a specification of the actions taken under various conditions which may arise during the operation of the full working set model, demand paging system is given. .A Morris, J. B. .K demand paging, dynamic storage allocation, Maniac II, memory allocation, one-level store, paging, paging associative memory, storage allocation, thrashing, virtual memory, working set model .I 2278 .T On Foster's Information Storage and Retrieval Using AVL Trees .A Tan, K. C. .K binary trees, search trees, information storage, information retrieval .I 2279 .T A Controller for a Braille Terminal .A Rubinstein, R. Feldman, J. .K blind programming aid, braille, braille character set, braille character translation, braille computer communication, braille computer terminal, braille terminal, tactile computer communication, tactile terminal .I 2280 .T Comment on Deadlock Prevention Method .A Parnas, D. L. Habermann, A. N. .K multiprogramming, time-sharing, scheduling, resource allocation, deadlock, interlock, lockout, deadly embrace, knotting .I 2281 .T The Eigen problem of Block Tridiagonal Matrices .A Khalil, H. M. .K linear algebra, eigenvalues and eigenvectors, partial differential equations .I 2282 .T A Comparison of Floating Point Summation Methods .A Gregory, J. .K summation, floating-point addition, truncation error, error propagation .I 2283 .T Thinning Algorithms on Rectangular, Hexagonal, and Triangular Arrays .W In this report three thinning algorithms are developed: one each for use with rectangular, hexagonal, and triangular arrays. The approach to the development of each algorithm is the same. Pictorial results produced by each of the algorithms are presented and the relative performances of the algorithms are compared. It is found that the algorithm operating with the triangular array is the most sensitive to image irregularities and noise, yet it will yield a thinned image with an overall reduced number of points. It is concluded that the algorithm operating in conjunction with the hexagonal array has features which strike a balance between those of the other two arrays. .A Deutsch, E. S. .K thinning algorithms, rectangular, hexagonal, triangular arrays, image processing, skeleton .I 2284 .T Solution of the Matrix Equation AX+XB=C [F4] (Algorithm A432) .A Bartels, R. H. Stewart, G. W. .K linear algebra, matrices, linear equations .I 2285 .T Computer Routine for Quadratic and Linear Programming Problems [H] (Algorithm A431) .W A computer program based on Lemke's complementary pivot algorithm is presented. This can be used to solve linear and quadratic programming problems. The program has been extensively tested on a wide range of problems and the results have been extremely satisfactory. .A Ravindran, A. .K linear program, quadratic program, complementary problem, Lemke's algorithm, simplex method .I 2286 .T Automatic Error Analysis for Determining Precision .W The problem considered is that of evaluating a rational expression to within any desired tolerance on a computer which performs variable-precision floating-point arithmetic operations. An automatic error analysis technique is given for determining, directly from the results of a trial low-precision interval arithmetic calculation, just how much precision and data accuracy are required to achieve a desired final accuracy. The technique given generalize easily to the evaluation of many nonrational expressions. .A Richman, P. L. .K error analysis, interval arithmetic, precision control .I 2287 .T A New Approach to Automatic Scanning of Contour Maps .W The problem of automatic digitizing of contour maps is discussed. The structure of a general contour map is analyzed, and its topological properties are utilized in developing a new scanning algorithm. The problem of detection and recognition of contour lines is solved by a two color labeling method. It is shown that for maps containing normal contour lines only, it suffices to distinguish between so-called "even" and "odd" lines. The "tangency problem" involved in practical scanning is discussed, and a solution based on minimizing computer memory space and simplifying control program is suggested. .A Mor, M. Lamdan, T. .K automatic scanning, contour maps, digitizing, contour lines, topology, detection and recognition .I 2288 .T File Organization: The Consecutive Retrieval Property .W The consecutive retrieval property is an important relation between a query set and record set. Its existence enables the design of an information retrieval system with a minimal search time and no redundant storage. Some important theorems on the consecutive retrieval property are proved in this paper. Conditions under which the consecutive retrieval property exists and remain invariant have been established. An outline for designing an information retrieval system based on the consecutive retrieval property is also discussed. .A Ghosh, S. P. .K file organization, consecutive storage, consecutive retrieval, information retrieval, record organization, query structure, record structure, storage on tapes, storage space, minimum access time .I 2289 .T Cellular Arrays for the Solution of Graph Problems .W A cellular array is a two-dimensional, checkerboard type interconnection of identical modules (or cells), where each cell contains a few bits of memory and a small amount of combinational logic, and communicates mainly with its immediate neighbors in the array. The chief computational advantage offered by cellular arrays is the improvement in speed achieved by virtue of the possibilities for parallel processing. In this paper it is shown that cellular arrays are inherently well suited for the solution of many graph problems. For example, the adjacency matrix of a graph is easily mapped onto an array; each matrix element is stored in one cell of the array, and typical row and column operations are readily implemented by simple cell logic. A major challenge in the effective use of cellular arrays for the solution of graph problems is the determination of algorithms that exploit the possibilities for parallelism, especially for problems whose solutions appear to be inherently serial. In particular, several parallelized algorithms are presented for the solution of certain spanning tree, distance, and path problems, with direct applications to wire routing, PERT chart analysis, and the analysis of many types of networks. These algorithms exhibit a computation time that in many cases grows at a rate not exceeding log2 n, where n is the number of nodes in the graph. Straightforward cellular implementations of the well-known serial algorithms for these problems require about n steps, and noncellular implementations require from n^2 to n^3 steps. .A Levitt, K. N. Kautz, W. H. .K graph theory, cellular logic-in-memory arrays, parallel processing, special purpose computers, algorithms for distance and spanning tree problems .I 2290 .T Immediate Predominators in a Directed Graph [H] (Algorithm A430) .A Purdom Jr., P. W. Moore, E. F. .K predominator, immediate predominator, graph theory, directed graph, shortest path, articulation, connectivity, program optimization, optimizing compiler .I 2291 .T Localization of the Roots of a Polynomial [C2] (Algorithm A429) .A Squire, W. .K polynomials, roots of polynomials,theory of equations, Routh-Hurwitz criterion .I 2292 .T A Note on the Generation of Rosary Permutations .A Read, R. C. .K permutation, permutation generation .I 2293 .T Comment on Average Binary Search Length .A Jones, P. R. .K searching, binary searching, record retrieval .I 2294 .T A Bonus from van Wijngaarden's Device .A Morris Jr., J. H. .K non-local transfers, procedure returns .I 2295 .T Comment on the Composition of Semantics in Algol 68 .A van der Poel, W. L. .K programming primitives, programming languages, Algol, semantics, recursive composition, design of programming languages, data structures .I 2296 .T Compiling Fixed-Point Multiplications .A Bernstein, H. J. .K compiling multiplications, fixed-point arithmetic .I 2297 .T A Model of Memory Contention in a Paging Machine .W This paper is concerned with certain aspects of contention for main memory resources in a multiprogrammed computer system operating under demand paging. In the model presented, the number of page-frames of main memory allocated to a problem program varies in time. These changes in memory configuration are represented explicitly in the model, CPU requirements and page exception characteristics of program material being described statistically. Expressions for the distribution of the number of page-frames allocated to an executing program, the long run expected fraction of a program's execution time in a given number of page-frames, and the average execution interval of the multiprogrammed load are obtained. It is pointed out heuristically and demonstrated numerically that an increase is obtain able in the average execution interval of the multiprogrammed load over that resulting from equal fixed partitioning of main memory. .A Oden, P. H. Shedler, G. S. .K paging machines, demand paging, operating systems studies, queuing analysis, memory contention, memory management .I 2298 .T An Environment for Research in Microprogramming and Emulation .W The development of the research project in microprogramming and emulation at State University of New York at Buffalo consisted of three phases: the evaluation of various possible machines to support this research; the decision to purchase one such machine, which appears to be superior to the others considered; and the organization and definition of goals for each group in the project. Each of these phases is reported, with emphasis placed on the early results achieved in this research. .A Rosin, R. F. Frieder, G. Eckhouse Jr., R. H. .K microprogramming, emulation, computer systems, language processors, input-output systems, nano-program, project management, hardware evaluation .I 2299 .T An Extensible Editor for a Small Machine with Disk Storage .W A design philosophy for developing a sophisticated utility program is illustrated by the actual design and implementation of a text editor. A versatile data structure is employed so that only a small number of programmed subroutines are necessary for all types of data manipulation. Such a data structure is described, and its merits are illustrated by the ease with which powerful extensions can be implemented in terms of a few basic editing function. .A Benjamin, A. J. .K command processing, context searching, executive program, garbage collection, interpreter, list processing, macro language, paging, parameter substitution, recursion, state table, storage allocation, string manipulation, text editing, virtual memory .I 2300 .T Political Redistricting by Computer .W The problems of political redistricting are considered and a computer method for redistricting is presented. Criteria for acceptable redistricting are discussed, including population equality, compactness, contiguity, and preservation of natural and/or political boundaries. Only nonpartisan criteria are considered. Using 1970 Bureau of Census population data, specific results are given for the ten Congressional Districts in the state of Missouri and for the seven St. Louis County Council seats. Results from the use of the algorithm indicate the feasibility of political redistricting with the aid of a computer. .A Helbig, R. E. Orr, P. K. Roediger, R. R. .K political redistricting, reapportionment, compactness, equal population, contiguity, transportation algorithm, legislative districts, population units .I 2301 .T Generating Parsers for Affix Grammars .W Affix grammars are two-level grammars which are similar to van Wijngaarden's two-level grammars used in the definition of Algol 68. Affix grammars are shown by Koster to be equal in power to van Wijngaarden grammars. They are much more suited to parsing than are the latter, however. Koster, the inventor of affix based on recursive procedures. This paper presents a bottom-up scheme for parsing them, based on an extension of Floyd Production Language (FPL). Included is an algorithm, similar to that of DeRemer's, for converting a large class of affix grammars into FPL. The paper concludes by discussing briefly the applicabilities of the conversion algorithm and affix grammars in general, and some possible extensions to Koster's definition of affix grammars. .A Crowe, D. .K algorithmic language processing,bottom-up parsing, Floyd Production Language, parsing, syntax directed compiling, translator writing systems, two-level grammars .I 2302 .T Computers and Employment .W The relationship of computers and automation to employment is part of the more general relation of technological change to employment. The most obvious effect is that increase in productivity due to technology can eliminate jobs. Technology affects the individual worker, in the nature and amount of his work, and in his attitudes toward that work. Technological change affects the occupational structure of the entire labor force. Because of the central importance of these effects, the impact of technology has been the subject of extensive study by economists, sociologists, political scientists, and psychologists. Even within a single discipline, studies are often contradictory, and conclusions are colored by political overtones. We wish to delineate some of the issues, and present arguments given to support different viewpoints. .A Borodin, A. Gotlieb, C. C. .K employment, unemployment, social implications, attitudes, skills, obsolescence, technology, unions, displacement .I 2303 .T Archaeology of Computers - Reminiscences, 1945-1947 .W The period preceding the founding of ACM was dominated by the first large computer ENIAC. Its characteristics, described here, foreshadow later developments. .A Alt, F. L. .K history of computers .I 2304 .T A Western View of Computer History .W Many U.S. histories of the digital computer field have tended to be impersonal, with heavy emphasis on eastern universities and commercial developments. This article records the events of the early years in a personal way. The people, organizations, technologies, and computers of the 1945-55 period in the western part of the United Statesare described as they happened. .A Sprague, R. E. .K history, computer history .I 2305 .T The "Plankalkul" of Konrad Zuse: A Forerunner of Today's Programming Languages .W Plankalkul was an attempt by Korrad Zuse in the 1940's to devise a notational and conceptual system for writing what today is termed a program. Although this early approach to a programming language did not lead to practical use, the plan is described here because it contains features that are standard in today's programming languages. The investigation is of historical interest; also, it may provide insights that would lead to advancements in the state of the art. Using modern programming terminology, the Plankalkul is presented to the extent it has possible to reconstruct it from the published literature. .A Bauer, F. L. Wossner, H. .K higher programming languages, programming, theory of programming, history of programming .I 2306 .T Ancient Babylonian Algorithms .W The early origins of mathematics are discussed, emphasizing those aspects which seem to be of greatest interest from the standpoint of computer science. A number of old Babylonian tablets, many of which have never before been translated into English, are quoted. .A Knuth, D. E. .K history of computation, Babylonian tablets, sexagesimal number system, sorting .I 2307 .T Dynamic Document Processing .W The current role of computers in automatic document processing is briefly outlined, and some reasons are given why the early promise of library automation and of the mechanization of documentation processes has not been fulfilled. A new dynamic document environment is then outlined in which clustered files are searched and information is retrieved following an interactive user-controlled search process. Methods are described for an automatic query modification based on user needs, and for a continuous reorganization of the stored information as a function of earlier file processing and of normal collection growth. The proposed procedures provide powerful tools for information retrieval and for the control of dynamic library collections in which new items are continually added and old ones are retired. .A Salton, G. .K automatic indexing, automatic search and retrieval, iterative searching, mechanized library processing, collection growth, collection retirement, feedback search .I 2308 .T Computers and Urban Society .W This brief survey of the use of computers in urban society covers the broad range of activities found in any city. The future scope of applications is limited only by the imagination and inventiveness of future system designers, programmers, analysts, and decision makers. The computer can be, if properly used, with respect for human dignity and civil liberty, a significant factor in improving the efficiency of the urban process. It is expected that the benefits of such computer usage will outweigh the costs and that we may look forward to an expansion of such usage. .A Sturman, G. M. .K urban systems, urban applications, data acquisition, data management, engineering analysis, information systems .I 2309 .T Computers in the Instructional Process: Directions for Research and Development .W A survey is given of computer applications to the instructional process which suggests how the computer professional can contribute to effective educational systems. .A Zinn, K. L. .K education .I 2310 .T Language Analysis in the Humanities .W The use of the computer in the language-oriented humanities for exhaustive listing of detail (as in indices and concordances) is widespread and accepted as desirable. The implications of the computer for a "science" of the humanities-a science entailing gathering data for the construction and testing of models-are neither widely recognized nor accepted. This paper argues that the computer's major role as to language analysis in the humanities will be the establishing of such a science.Thus, for those areas of the humanities for which rigor and precision are necessary (e.g. analyzing literature or teaching a student to write a composition) the computer can be a critically important facilitator. .A Sedelow, S. Y. .K language analysis, humanities, science of the humanities, pattern recognition, pattern generation, interdisciplinary cooperation .I 2311 .T A Generational Perspective of Information System Development .W System development is categorized from a generational point of view that parallels the commonly described computing system generations. For each generation, the scope of development projects and the technological world view of the system developer are examined. .A Benjamin, R. I. .K computing milieu, management data processing, hardware systems, software systems, systems development process, functional systems, management systems .I 2312 .T On the Present and Future of Scientific Computation .W A pessimistic forecast is given of what can be expected to happen in the application of computers to the physical sciences. .A Rice, J. R. .K scientific computation .I 2313 .T The Evolution of Storage Structures .W Data base management systems have grown rapidly in their power and complexity over the 15-year history of data processing on commercially available computers. The original concepts have split, and new terms have been adopted to name and refer to these concepts. The Data Structure Diagram graphic technique is used to illustrate the splitting of the concepts and the structural relations which exist between these concepts at each point in the evolution. .A Bachman, C. W. .K block, cylinder, device, field, extent file, page, record, physical record, logical record, track, volume, entity, set, entity class, set class, data structure diagram, storage structure, physical storage structure, logical storage structure, storage allocation structure, Integrated Data Store, index sequential, hash, randomize, item .I 2314 .T Requirements for Advanced Programming Systems for List Processing .W List processing systems should be designed to facilitate production of large programs to manipulate large complex symbolic data stores. This paper presents an overview of a number of system features which the author feels are important to improve the productivity of programmers working in such domains. A system view it taken, rather than focusing just on language features, since algorithms must be not only coded in a language form, but debugged, modified, made efficient, and run on data. Because of this general framework,the requirements specified are applicable to the design of advanced programming systems for a wide range of applications. Three aspects of programming systems are highlighted: good interactive facilities, programmable control structures, and sophisticated data communication mechanisms. Interactive features are described to facilitate program composition, entry, testing, debugging, editing, optimization, and packaging. Implementation of a generalized environment structure model specified would allow programming of various control regimes including multiprocesses, coroutines and backtracking. Alternative methods of procedure invocation required include invocation by pattern and by monitoring condition. The need for extended data forms, storage management, and extensibility are stressed, as is the duality of data retrieval and function evaluation. Syntax directed input and output of data would facilitate use of complex data stores. .A Bobrow, D. G. .K list processing, programming languages, design of programming languages, interactive systems, control structures, data structures, programming primitives, semantics, advanced programming systems .I 2315 .T The Production of Better Mathematical Software .W Some observations are made on steps to be taken toward the creation of better mathematical software. These steps suggest the need for a coordinated effort and the creation of a center to focus activities in this area. .A Fosdick, L. D. .K mathematical software, programming .I 2316 .T Programming Languages: History and Future .W This paper discusses both the history and future of programming languages (= higher level languages). Some of the difficulties in writing such a history are indicated. A key part of the paper is a tree showing the chronological development of languages and their interrelationships. Reasons for the proliferation of languages are given. The major languages are listed with the reasons for their importance. A section on chronology indicates the happenings of the significant previous time periods and the major topics of 1972. Key concepts other than specific languages are discussed. .A Sammet, J. E. .K programming languages, higher level languages, languages, history, future directions, language interrelationships, programming language tree, programming language history, programming language future .I 2317 .T Programming Systems and Languages 1965-1975 .W In spite of impressive gains by PL/I, Fortran and Cobol remain the languages in which most of the world's production programs are written and will remain so into the foreseeable future. There is a great deal of theoretical interest in Algol 68 and in extensible languages, but so far at least they have had little practical impact. Problem-oriented languages may very well become the most important language development area in the next five to ten years. In the operating system area all major computer manufacturers set out to produce very ambitious multiprogramming systems, and they all ran into similar problems. A number of university projects,though not directly comparable to those of the manufacturers, have contributed greatly to a better understanding of operating system principles. Important trends include the increased interest in the development of system measurement and evaluation techniques,and increased use of microprogramming for some programming system functions. .A Rosen, S. .K languages, operating systems, programming systems, multiprogramming, history .I 2318 .T The Role of Computer System Models in Performance Evaluation .W Models constitute a useful means of investigating computer system performance. This paper examines the interrelationships between models and other methods for evaluating the performance of computer systems and establishes circumstances under which the use of a model is appropriate. .A Kimbleton, S. R. .K modeling, evaluation, performance, analytic-models, simulation-models, system-models .I 2319 .T Operating System Performance .W An overview of the current and future positions with respect to operating system performance is given. While a great deal of information and a large number of models for subsystems have been developed, gaps still exist in out knowledge. Because of the severe interactions between the various subsystems of an operating system, an overall model of the total system must be developed to be able to analyze and design the performance aspects of an operating system although such total system designs are exceptional today, it is projected that they will become increasingly more common and necessary in the near future. Such a design philosophy will clearly have a severe impact on the way we go about modularizing operating and computer systems. .A Lynch, W. C. .K computer system, operating system, performance evaluation, performance measurement, measurement, techniques, modularity, layering, structured programming, paging, virtual memory, input/output, disk storage facility, drum storage facility, sector queueing .I 2320 .T Structured Multiprogramming .W This paper presents a proposal for structured representation of multiprogramming in a high level language. The notation used explicitly associates a data structure shared by concurrent processes with operations defined on it. This clarifies the meaning of programs and permits a large class of time-dependent errors to be caught at compile time. A combination of critical regions and event variables enables the programmer to control scheduling of resources among competing processes to any degree desired. These concepts are sufficiently safe to use not only within operating systems but also within user programs. .A Hansen, P. B. .K structured multiprogramming, programming languages, operating systems, concurrent processes, shared data, mutual exclusion, critical regions, process communication, synchronizing events. .I 2321 .T On the Interface Between Computers and Data Communications Systems .W Future systems that combine computers, digital terminals, and communications equipment present design optimization problems that require reconsideration of the traditional functional responsibilities of the respective subsystems. Several "standard" interfaces, by means of which computers and digital terminals connect to the communications systems will be required. When specifying these interfaces, consideration must be given to problems of coordination, synchronization, error control, signaling, stream multiplexing, and switch control, in addition to minimizing the technological interdependence of specific subsystem designs. A focus on some of the problems is obtained in a discussion of a detailed specification for a particular computer-communications system interface. .A Fraser, A. G. .K communications, standard interface communications protocol, virtual channel, multiplexed input/output, coordination of input/output .I 2322 .T A View of computer Architecture .W An attempt is made to predict the developments of the next 25 years in the field of computer architecture. Standardized, inexpensive microcomputers on a single chip are predicted. These will be used extensively to provide logical functions for noncomputational devices and incidentally for the design of superscale computers. .A Foster, C. C. .K computer architecture, projection, microcomputers, computer design, computer organization .I 2323 .T Toward a General Theory of Special Functions .W A list of a number of natural developments for the field of algebraic manipulation is given. Then the prospects for a general theory of functions defined by ordinary differential equations are discussed. The claim is made that recent developments in mathematics indicate that it should be possible to algorithmically generate many properties of solutions to differential equations. Such a theory is preferable to a less general effort to make algebraic manipulation systems knowledgeable about the usual special functions (e.g. exponential, hypergeometric). .A Moses, J. .K algebraic manipulation, special functions, algebraic simplification, symbolic integration, algebraic geometry, differential algebra .I 2324 .T Management Science: A View from Nonlinear Programming .W A brief history of integer and continuous nonlinear programming is presented as well as the current obstacles to practical use of these mathematical programming techniques. It is forecast that the useful contributions to nonlinear programming actually made in the next few years are more likely to be consolidations than theoretical breakthroughs. These contributions are likely to be the documentation of standard test problems, construction of user oriented software, and comparisons of currently known algorithms to demonstrate which techniques are best for specific problems. .A Shanno, D. F. Weil, R. L. .K integer programming, linear programming, mathematical programming, nonlinear programming, quadratic programming, management science, operations research, algorithms .I 2325 .T Numerical Mathematics and Computer Science .W Numerical mathematics is viewed as the analysis of continuous algorithms. Four of the components of numerical mathematics are discussed. These are: foundations (finite precision number systems, computational complexity), synthesis and analysis of algorithms, analysis of error, programs and program libraries. .A Traub, J. F. .K numerical mathematics, computer science, mathematics of computation, algorithms, continuous algorithms .I 2326 .T Fix point Approach to the Theory of Computation .W Following the fix point theory of Scott, the semantics of computer programs are defined in terms of the least fix points of recursive programs. This allows not only the justification of all existing verification techniques, but also their extension to the handling, in a uniform manner of various properties of computer programs, including correctness, termination, and equivalence. .A Manna, Z. Vuillemin, J. .K verification techniques, semantics of programming languages, least fix points, recursive programs, computational induction .I 2327 .T Toward an Automata Theory of Brains .W A source of ideas for automata theory-the study of the brain-has been pushed aside in mathematical development of the theory. This paper suggests the ways in which automata theory might evolve over the next 25 years if it is to contribute to an understanding of how the brain processes information. .A Arbib, M. A. .K automata theory, brain theory, network complexity, resolution of redundancy of potential command, frog visual system, reticular formation mode selection .I 2328 .T Individualizing Instruction in a Generative CAI Tutor .A Koffman, E. B. .K computer-assisted instruction, generative CAL, adaptive instruction .I 2329 .T Computer Science-A Vicious Circle .A Kandel, A. .K education, computer engineering, computer science curriculum, systems design .I 2330 .T Calculation of Fourier Integrals (Algorithm R418) .A Einarsson, B. .K quadrature, Filon quadrature, integration, Filon integration, Fourier coefficients, Fourier integrals, Fourier series, spline,spline approximation, spline quadrature, extrapolation, Richardson extrapolation .I 2331 .T An Integer Programming Problem (Algorithm R397) .A Johnson, S. C. Kernighan, B. W. .K integer programming, change-making problem .I 2332 .T Special Series Summation with Arbitrary Precision (Algorithm R393) .A Sale, A. H. J. .K function evaluation, series summation, approximation .I 2333 .T Random Vectors Uniform is Solid Angle (Algorithm R381) .A Schrack, G. F. .K random vector generator, points uniform on sphere, spherically symmetric probability distribution .I 2334 .T General Random Number Generator (Algorithm R370) .A Proll, L. G. .K random number generator, probability density function, transformation, cumulative distribution function .I 2335 .T Eigenvalues and Eigenvectors of a Real General matrix (Algorithm R343) .A Niessner, H. .K eigenvalues, eigenvectors, QR-algorithm, nonsymmetric matrices, general matrices .I 2336 .T Complex Error Function (Algorithm C363) .A Kolbig, K. S. .K error function for complex argument, Voigt function, special functions, function evaluation .I 2337 .T A Sorting Problem and Its Complexity .W A technique for proving min-max norms of sorting algorithms is given. One new algorithm for finding the minimum and maximum elements of a set with fewest comparisons is proved optimal with this technique. .A Pohl, I. .K sorting, computational complexity, computational combinatorics .I 2338 .T A Starting Method for Solving Nonlinear Volterra Integral Equations of the Second Kind .W A fourth-order starting method is given for Volterra integral equations of the second kind and numerical examples are presented. .A Iguchi, K. .K algorithm, Volterra integral equations, starting method .I 2339 .T Computer-Assigned Codes from Verbal Responses .W It is often desirable to convert verbal responses to multidigit codes. This conversion is generally accomplished by clerk-coders. A study was conducted to test the feasibility of translating verbal descriptions to numerical codes in a computer program. Primary emphasis was placed on computerized construction of a reference file of verbal descriptions for use by the program. The results of the study clearly show that such procedures are feasible. .A O'Reagan, R. T. .K verbal responses, computer coding, reference list, historical response patterns, word strings, concept translation, word coding .I 2340 .T A Boolean Matrix Method for the Computation of Linear Precedence Functions .W A modified version of Bell's Boolean matrix method for the computation of linear precedence functions associated with a conflict-free matrix of precedence relations is given. This algorithm not only detects when the precedence functions do not exist, but also provides an indication of why they do not exist, so that corrective action can be taken if possible. Necessary and sufficient conditions for the existence of precedence functions are given. The use of Boolean matrices to prove the existence of precedence functions associated with classes of conflict-free grammars is illustrated through an example. .A Martin, D. F. .K precedence grammars, context-free parsing .I 2341 .T Blocks-A New Data type for SNOBOL4 .W A new data type, called a block, has been implemented for SNOBOL4. A block is a three-dimensional aggregate of characters in the form of a right parallelepiped, best thought of as a three-dimensional extension to a string. (The third dimension is used for overstriking.) Blocks may be printed, concatenated in any of three dimensions, and merged on the basis of program-defined connection points. Some blocks adapt in size and shape to their environment. Blocks and their operations are mainly used for composing printable output. A variety of graphical problems (including flowcharting, bargraphs, logic diagrams, mathematical-equation formation, and text justification and preparation) have been programmed on a printer in what appears to be an easy and natural way. In addition to these somewhat specialized applications, blocks appear to be a good general purpose device-independent output formation mechanism especially suitable for nonnumerical work. The concept of a block is largely language independent.That is, blocks require little in the way of specialized syntax and could readily be absorbed into the external structure of most programming languages. .A Gimpel, J. F. .K character manipulation, output formatting, string processing, graphics, nonnumerical programming, SNOBOL4, data types, two-dimensional mathematics, test processing, flowcharting .I 2342 .T Interference Between Communicating Parallel Processes .W Various kinds of interference between communicating parallel processes have been examined by Dijkstra, Knuth, and others. Solutions have been given for the mutual exclusion problem and associated subproblems, in the form of parallel programs, and informal proofs of correctness have been given for these solutions. In this paper a system of parallel processes is regarded as a machine which proceeds from one state S (i.e. a collection of pertinent data values and process configurations) to a next state S' in accordance with a transition rule S --> S'. A set of such rules yields sequences of states, which dictate the system's behavior. The mutual exclusion problem and the associated subproblems are formulated as questions of inclusion between sets of states, or of the existence of certain sequences. A mechanical proof procedure is shown, which will either verify (prove the correctness of ) or discredit (prove the incorrectness of) an attempted solution, with respect to any of the interference properties. It is shown how to calculate transition rules from the "partial rules" by which the individual processes operate. The formation of partial rules and the calculation of transition rules are both applicable to hardware processes as well as to software processes, and symmetry between processes is not required. .A Gilbert, P. Chandler, W. J. .K concurrent programming control, cooperating processes, formal programs, interference, mutual exclusion, operating systems, parallel processes .I 2343 .T A Proposal To Establish a Pseudo Virtual Memory via Writable Overlays .W Many computer systems solve executable storage size problems for large programs by using overlays. However, it appears that no one overlay scheme contains a well-balanced combination of the most useful capabilities which are found in various existing techniques. A proposal is presented which utilizes several of the best capabilities from existing schemes and is complemented by several additional features, e.g. writable overlays. The writable overlay capability provides a virtual memory effect, although the programmer may still be required to design the overlay configuration. Since overlay structuring is a complex task, several tools (including a graphic display) are included in the proposal in order to aid the programmer in the design. The content of overlays is briefly discussed, and it is noted that many of the details of the final overlay configuration may be decided after the fact. .A Spacek, T. R. .K overlay, overlay structure, segment, segmentation, folding, paging, linkage editor, collector, loader, virtual memory .I 2344 .T On the Optimization of Performance of Time-Sharing Systems by Simulation .W A simulation model of a time-sharing system with a finite noncontiguous store and an infinite auxiliary store is used to study the variation of system parameters such as store size, number of jobs allowed to execute simultaneously, job-scheduling algorithm, etc. The effects of these variations on a measure of system performance is used to ascertain which of the parameters controllable by the job-scheduling algorithm, including the scheduling itself, require optimization, and which of the parameters not normally controllable by the scheduling algorithm have a marked effect on system performance. System performance is based upon the mean cost of delay to all jobs processed. It is shown that significant improvements in the measure of system performance can be obtained by using variable time-slice techniques and by selecting the optimum round-robin cycle time. It appears that these features would benefit from optimization whereas other parameters controllable by the scheduling algorithm affect system performance in a predictable manner and would not benefit from optimization. Features not normally under the control of the scheduling algorithm can also have a marked effect on the measure of performance; in particular, supervisor overheads, the size of the store, and the speed of the CPU. A comparison is made between the results of the simulation model and two analytical equations for quantum-oriented nonpreemptive time-sharing systems. The comparison is found to be very favorable. .A Blatny, J. Clark, S. R. Rourke, T. A. .K time-sharing, simulation studies, optimization, measure of performance, scheduling algorithms .I 2345 .T Curriculum Recommendations for Graduate Professional Programs in Information Systems .W The need for education related to information systems in organizations is discussed, and a curriculum is proposed for graduate professional programs in universities, at the Master's level. Material necessary for such programs is identified, and courses incorporating it are specified. Detailed course descriptions are presented, program organization discussed, and implementation questions considered. .A Ashenhurst, R. L. .K education, management systems, systems analysis, management information systems, information systems development, information analysis, system design .I 2346 .T Hu-Tucker Minimum Redundancy Alphabetic Coding Method [Z] (Algorithm A428) .A Yohe, J. M. .K information theory, coding theory, Hu-Tucker method, minimum redundancy coding .I 2347 .T Fourier Cosine Integral [D1] (Algorithm A427) .A Linz, P. .K numerical integration, quadrature, adaptive quadrature, Filon quadrature, Fourier coefficients, Fourier integrals .I 2348 .T Merge Sort Algorithm [M1] (Algorithm A426) .A Bron, C. .K sort, merge .I 2349 .T Generation of Random Correlated Normal Variables [G5] (Algorithm A425) .A Hurst, R. L. Knop, R. E. .K random number, normal density, normal distribution, Gaussian density, Gaussian distribution, simulation, Monte Carlo .I 2350 .T Clenshaw-Curtis Quadrature [D1] (Algorithm A424) .A Gentleman, W.M. .K quadrature, Chebyshev series, cosine transform, fast Fourier transform .I 2351 .T The Optimality of Winograd's Formula .A Harter, R. .K inner product, Winograd's formula .I 2352 .T Minimax Nonlinear Approximation by Approximation on Subsets .A Dunham, C. B. .K minimax approximation, nonlinear approximation, subset .I 2353 .T Fast Finite-Difference Solution of Biharmonic Problems .W Setting the Reynolds number equal to zero, in a method for solving the Navier-Strokes equations numerically, results in a fast numerical method for biharmonic problems. The equation is treated as a system of two second order equations and a simple smoothing process is essential for convergence. An application is made to a crack-type problem. .A Greenspan, D. Schultz, D. .K numerical analysis, partial differential equations, biharmonic equation, boundary value problem .I 2354 .T Implementing Clenshaw-Curtis Quadrature, II Computing the Cosine Transformation .W In a companion paper to this, "I Methodology and Experiences," the automatic Clenshaw-Curtis quadrature scheme was described and how each quadrature formula used in the scheme requires a cosine transformation of the integrand values was shown. The high cost of these cosine transformations has been a serious drawback in using Clenshaw-Curtis quadrature. Two other problems related to the cosine transformation have also been trouble some. First, the conventional computation of the cosine transformation by recurrence relation is numerically unstable, particularly at the low frequencies which have the largest effect upon the integral. Second, in case the automatic scheme should require refinement of the sampling, storage is required to save the integrand values after the cosine transformation is computed. This second part of the paper shows how the cosine transformation can be computed by a modification of the fast Fourier transform and all three problems overcome. The modification is also applicable in other circumstances requiring cosine or sine transformations, such as polynomial interpolation through the Chebyshev points. .A Gentleman, W. M. .K fast Fourier transformation, cosine transformation, Clenshaw-Curtis quadrature, Chebyshev series .I 2355 .T Implementing Clenshaw-Curtis quadrature, I Methodology and Experience .W Clenshaw-Curtis quadrature is a particularly important automatic quadrature scheme for a variety of reasons, especially the high accuracy obtained from relatively few integrand values. However, it has received little use because it requires the computation of a cosine transformation and the arithmetic cost of this has been prohibitive. This paper is in two parts; a companion paper, "II Computing the Cosine Transformation," shows that this objection can be overcome by computing the cosine transformation by a modification of the fast Fourier transform algorithm. This first part discusses the strategy and various error estimates, and summarizes experience with a particular implementation of the scheme. .A Gentleman, W. M. .K Clenshaw Curtis, numerical integration, automatic quadrature, error estimates, Chebyshev series .I 2356 .T A Technique for Software Module Specification with Examples .W This paper presents an approach to writing specifications for parts of software systems. The main goal is to provide specifications sufficiently precise and complete that other pieces of software can be written to interact with the piece specified without additional information. The secondary goal is to include in the specification no more information than necessary to meet the first goal. The technique is illustrated by means of a variety of examples from a tutorial system. .A Parnas, D. L. .K software, specification, modules, software engineering, software design .I 2357 .T MUX, a Simple Approach to On-Line Computing .W An on-line system operating as part of a normal batch system for the CDC 6600 computer is described. The system, which required one man-year for initial software implementation, although basically simple, provides the necessary elements to input and modify files, submit them for batch execution, and provide results at the user's terminal. A multiplexer designed and developed as part of the project cost one man-year for design and checkout, and $16,000 for parts and fabrication. All aspects of the system are described, including design criteria, implementation, cost, overhead, and user reactions. .A Christman, R. D. .K time-sharing, remote computing, on-line access, on-line computing, remote file manager, real time, multiplexer, implementation effort, operating overhead, user reactions, remote terminals, operating system .I 2358 .T The Multics Virtual Memory: Concepts and Design .W As experience with use of on-line operating systems has grown, the need to share information among system users has become increasingly apparent. Many contemporary systems permit some degree of sharing. Usually, sharing is accomplished by allowing several users to share data via input and output of information stored in files kept in secondary storage. Through the use of segmentation, however, Multics provides direct hardware addressing by user and system programs of all information, independent of its physical storage location. Information is stored in segments each of which is potentially sharable and carries its own independent attributes of size and access privilege. Here, the design and implementation considerations of segmentation and sharing in Multics are first discussed under the assumption that all information resides in large, segmented main memory. Since the size of main memory on contemporary systems is rather limited, it is then shown how the Multics software achieves the effect of a large segmented main memory through the use of the Honeywell 645 segmentation and paging hardware. .A Bensoussan, A. Clingen, C. T. Daley, R. C. .K operating system, Multics, virtual memory, segmentation, information sharing, paging, memory management, memory hierarchy .I 2359 .T An Improved Index Sequential Access Method Using Hashed Overflow .W The Index Sequential Access Method (ISAM) is one of the most important file management systems used with moveable head disk devices. This study investigates the use of an unconventional method of treating overflow records. The method is to use hashing techniques to allocate space for such records. If certain conditions are satisfied, this is superior to the conventional ISAM method of chaining the overflow records via linked list techniques. These conditions are: long overflow chains with significant overflow; lack of tight disk space constraints; record keys which are small compared to the total record size; and significant use of the file in the index as opposed to the sequential mode. Using hashed overflow, the time to locate a record is dependent not on the total volume of overflow records as in conventional ISAM, but on the percentage use of space dedicated to overflow records. .A Mullin, J. K. .K ISAM, index sequential, hashing, scatter storage, disk, cylinder, overflow .I 2360 .T A Comment on the Double-Chained Tree .A Hu, T. C. .K file searching, double-chained tree, binary search tree .I 2361 .T A Note on Cheney's Nonrecursive List-Compacting Algorithm .A Walden, D. C. .K list compacting, garbage collection .I 2362 .T Linear Equation Solver [F4] (Algorithm A423) .A Moler, C. B. .K matrix algorithms, linear equations, Fortran, paged memory, virtual memory, array processing .I 2363 .T Minimal Spanning Tree [H] (Algorithm A422) .A Whitney, V. K. M. .K spanning tree, minimal spanning tree, maximal spanning tree .I 2364 .T Complex Gamma Function with Error Control [S14] (Algorithm A421) .A Kuki, H. .K complex gamma function, gamma function, complex log gamma function, loggamma function, round-off error control, inherent error control, run-time error estimates, error estimates, special functions .I 2365 .T Matrix Computations with Fortran and Paging .W The efficiency of conventional Fortran programs for matrix computations can often be improved by reversing the order of nested loops. Such modifications produce modest savings in many common situations and very significant savings for large problems run under an operating system which uses paging. .A Moler, C. B. .K matrix algorithms, linear equations, Fortran, paged memory, virtual memory, array processing .I 2366 .T Complex Gamma Function with Error Control .W An algorithm to compute the gamma function and log gamma function of a complex variable is presented. The standard algorithm is modified in several respects to insure the continuity of the function value and to reduce accumulation of round-off errors. In addition to computation of function values, this algorithm includes an object-time estimation of round-off errors. Experimental data with regard to the effectiveness of this error control are presented. A Fortran program for the algorithm appears in the algorithms section of this issue. .A Kuki, H. .K complex gamma function, gamma function, complex log gamma function, loggamma function, round-off error control, inherent error control, run-time error estimates, error estimates .I 2367 .T Computers and Society: A Proposed Course for Computer Scientists .W The purpose of this paper is to describe a course concerned with both the effects of computers on society and the responsibilities of computer scientists to society. The impact of computers is divided into five components: political, economic, cultural, social, and moral; the main part of the paper defines each component and presents examples of the relevant issues. In the remaining portions the possible formats for such a course are discussed, a topic by topic outline is given, and a selected set of references is listed. It is hoped that the proposal will make it easier to initiate courses on this subject. .A Horowitz, E. Morgan, H. L. Shaw, A. C. .K computers and society, social implications, course proposal .I 2368 .T An Implemented Graph Algorithm for Winning Shannon Switching games .W In this tutorial paper a computer program which wins Shannon Switching Games is described. Since these games are played on graphs, the program is a good example of the implementation of graph algorithms. The two players in a Shannon Switching Game, CONNECT and CUT, have nonsimilar goals. Either CONNECT, CUT, or the player moving first is guaranteed the existence of a winning strategy. The simple strategy explained in this paper is valid in all three cases. In fact, the major routines never need to know whether the computer is CONNECT or CUT. .A Chase, S. M. .K graph algorithms, graph processing, Shannon Switching Games, game playing, graph theory, positional games, demonstration programs, game theory, spinning trees .I 2369 .T Hidden Lines Elimination for a Rotating Object .W A method is presented of determining which parts of three-dimensional objects are visible and which are invisible when the objects are rotated about some axis. This paper describes a polygon comparison scheme in which the relationships of two polygons can be classified into tree types, and also discusses how the relationship is changed for each pair of polygons under rotation about some axis. A rotation table is defined for each pair of polygons, which remains fixed as long as rotation is about one axis and provides a means of rapidly determining the visible and hidden line relationship between two polygons. Additional work must be done to extend this approach to simultaneous rotation about several axes. .A Matsushita, Y. .K hidden line problem, display programming, computer graphics, displays, graphics, computer drawn picture .I 2370 .T An Experimental Laboratory for Pattern Recognition and Signal Processing .W An interactive computer-controlled scanning and display system has been in operation at the IBM Thomas J. Watson Research Center for three years. The system includes two flying-spot scanners and a TV camera specially interfaced to a process control digital computer, dot-mode and vector displays, analog input and output facilities, and a variety of other experimental equipment. The system design and programming support are described and typical applications in scanner control, optical character recognition,and image processing are presented. .A Herbst, N. M. Will, P. M. .K scanners, pseudorandom displays, interactive terminal, image processing, pattern recognition .I 2371 .T A System for Interprocess Communication in a Resource Sharing Computer Network .W A system of communication between processes in a time-sharing system is described and the communication system is extended so that it may be used between processes distributed throughout a computer network. The hypothetical application of the system to an existing network is discussed. .A Walden, D. C. .K interprocess communication, time-sharing, computer networks, resource sharing .I 2372 .T On the Implementation of Security Measures in Information Systems .W The security of an information system may be represented by a model matrix whose elements are decision rules and whose row and column indices are users and data items respectively. A set of four functions is used to access this matrix at translation and execution time. Distinguishing between data dependent and data independent decision rules enables one to perform much of the checking of security only once at translation time rather than repeatedly at execution time. The model is used to explain security features of several existing systems, and serves as a framework for a proposal for general security system implementation within today's languages and operating systems. .A Conway, R. W. Maxwell, W. L. Morgan, H. L. .K security, privacy, access control confidentiality, operating systems, access management, data banks, management information systems .I 2373 .T Properties of the Working-Set Model .W A program's working set W(t,T) at time t is the set of distinct pages among the T most recently referenced pages. Relations between the average working-set size, the missing-page rate, and the interreference-interval distribution may be derived both from time-average definitions and from ensemble-average (statistical) definitions. An efficient algorithm for estimating these quantities is given. The relation to LRU (least recently used) paging is characterized. The independent-reference model, in which page references are statistically independent, is used to assess the effects to interpage dependencies on working-set size observations. Under general assumptions, working-set size is shown to be normally distributed. .A Denning, P. J. Schwartz, S. C. .K working-set model, paging, paging algorithms, program behavior, program modeling .I 2374 .T A Study of Storage Partitioning Using a Mathematical Model of Locality .W Both fixed and dynamic storage partitioning procedures are examined for use in multiprogramming systems. The storage requirement of programs is modeled as a stationary Gaussian process. Experiments justifying this model are described. By means of this model dynamic storage partitioning is shown to provide substantial increases in storage utilization and operating efficiency over fixed partitioning. .A Coffman Jr., E. G. Ryan Jr., T. A. .K storage partitioning, memory management, dynamic storage allocation, space sharing, multiprogrammed storage, working-sets, program behavior models, mathematical modeling .I 2375 .T A Comparative Analysis of Disk Scheduling Policies .W Five well-known scheduling policies for movable head disks are compared using the performance criteria of expected seek time (system oriented)and expected waiting time (individual I/O request oriented). Both analytical and simulation results are obtained. The variance of waiting time is introduced as another meaningful measure of performance, showing possible discrimination against individual requests. Then the choice of a utility function to measure total performance including system oriented and individual request oriented measures is described. Such a function allows one to differentiate among the scheduling policies over a wide range of input loading conditions. The selection and implementation of a maximum performance two-policy algorithm are discussed. .A Teorey, T. J. Pinkerton, T. B. .K access time, analytical models, auxiliary storage, direct access storage, disk analysis, disk scheduling, performance criteria, peripheral memory devices, real-time systems, response time, rotational delay, scheduling policies, seek time, simulation, storage units, time-sharing systems, waiting time .I 2376 .T Synchronization of Communicating Processes .W Formalization of a well-defined synchronization mechanism can be used to prove that concurrently running processes of a system communicate correctly. This is demonstrated for a system consisting of many sending processes which deposit messages in a buffer and many receiving processes which remove messages from that buffer. The formal description of the synchronization mechanism makes it very easy to prove that the buffer will neither overflow nor underflow, that senders and receivers will never operate on the same message frame in the buffer nor will they run into a deadlock. .A Habermann, A. N. .K parallel programming, multiprogramming, program correctness, process communication, process scheduling .I 2377 .T A Hardware Architecture for Implementing Protection Rings .W Protection of computations and information is an important aspect of a computer utility. In a system which uses segmentation as a memory addressing scheme, protection can be achieved in part by associating concentric rings of decreasing access privilege with a computation. This paper describes hardware processor mechanisms for implementing these rings of protection. The mechanisms for implementing these rings of protection. The mechanisms allow cross-ring calls and subsequent returns to occur without trapping to the supervisor. Automatic hardware validation of references across ring boundaries is also performed. Thus, a call by a user procedure to a protected subsystem (including the supervisor) is identical to a call to a companion user procedure. The mechanisms of passing and referencing arguments are the same in both cases as well. .A Schroeder, M. D. Saltzer, J. H. .K protection, protection rings, protection hardware, access control, hardware access control, computer utility, time-sharing, shared information, segmentation, virtual memory, Multics .I 2378 .T An Operating System Based on the Concept of a Supervisory Computer .W An operating system which is organized as a small supervisor and a set of independent processes are described. The supervisor handles I/O with external devices-the file and directory system-schedules active processes and manages memory, handle errors, and provides a small set of primitive functions which it will execute for a process. A process is able to specify a request for a complicated action on the part of the supervisor (usually a wait on the occurrence of a compound event in the system) by combining these primitives into a "supervisory computer program." The part of the supervisor which executes these programs may be viewed as a software implemented "supervisory computer." The paper develops these concepts in detail, outlines the remainder of the supervisor, and discusses some of the advantages of this approach. .A Gaines, R. S. .K operating systems, supervisors, multiprogramming, time-sharing, cooperating processes .I 2379 .T The Design of the Venus Operating System .W The Venus Operating System is an experimental multiprogramming system which supports five or six concurrent users on a small computer. The system was produced to test the effect of machine architecture on complexity of software. The system is defined by a combination of microprograms and software. The microprogram defines a machine with some unusual architectural feature; the software exploits these features to define the operating system as simply as possible. In this paper the development of the system is described, with particular emphasis on the principles which guided the design. .A Liskov, B. H. .K operating systems, system design, levels of abstraction, machine architecture, microprogramming, segments, semaphores, multiprogramming, virtual machines, processes, process communication, virtual devices, data sharing, resource management, deadlock .I 2380 .T TENEX, a Paged Time Sharing System for the PDP-10 .W TENEX is a new time sharing system implemented on DEC PDP-10 augmented by special paging hardware developed at BBN. This report specifies a set of goals which are important for any time sharing system. It describes how the TENEX design and implementation achieve these goals. These include specifications for a powerful multiprocess large memory virtual machine, intimate terminal interaction, comprehensive uniform file and I/O capabilities, and clean flexible system structure. Although the implementation described here required some compromise to achieve a system operational within six months of hardware checkout, TENEX has met its major goals and provided reliable service at several sites and through the ARPA network. .A Bobrow, D. G. Burchfiel, J. D. Murphy, D. L. Tomlinson, R. S. Beranek, B. .K TENEX, paging, virtual machines, time sharing system, scheduling algorithm, process structure, PDP-10 .I 2381 .T Average Binary Search Length for Dense Ordered Lists (Corrigendum) .A Flores, I. Madpis, G. .I 2382 .T Reconstruction of Pictures from Their Projections (Corrigendum) .A Gordon, R. Herman, G. T. .I 2383 .T Music and Computer Composition .W The problem discussed is that of simulating human composition of Western popular music by computer and some relevant theories of music and harmony are given. Problems with this kind of program and several schemes that are known not to work are discussed. Several previous computer compositions are discussed, including the ILLIAC Suite. A program to generate short melody fragments was written to simulate some of the aspects of human composition. Five samples of its output are presented and discussed. It was discovered that although the fragments show many of the characteristics of popular melodies, they have a strangely alien sound. It is theorized that this is because the relevant probabilities which would discriminate against unfamiliar sequences were not used. .A Moorer, J. A. .K artificial intelligence, heuristic programming, models of cognitive processes, computer music, computer composition, music theory .I 2384 .T Hidden-Line Plotting Program [J6] (Algorithm A420) .A Williamson, H. .K hidden-line plot, surface plot .I 2385 .T Zeros of a Complex Polynomial [C2] (Algorithm A419) .A Jenkins, M. A. Traub, J. F. .K roots, roots of a polynomial, zeros of a polynomial .I 2386 .T Dynamic Microprogramming: Processor Organization and Programming (Corrigendum) .A Tucker, A. B. .I 2387 .T Maximum Computing Power and Cost Factors in the Centralization Problem .W A simple analysis of some computer-economic factors involved in comparing multimachine installations versus large single machine installations is given, and a mathematical model is derived to assist policy decisions. .A Oldehoeft, A. E. Halstead, M. H. .K centralization, decentralization, economics of computers, computer management, economies of scale .I 2388 .T Optimizing Binary Trees Grown With a Sorting Algorithm .W Items can be retrieved from binary trees grown with a form of the Algorithm Quicksort in an average time proportional to log n, where n is the number of items in the tree. The binary trees grown by this algorithm sometimes have some branches longer than others; therefore, it is possible to reduce the average retrieval time by restructuring the tree to make the branches as uniform in length as possible. An algorithm to do this is presented. The use of this algorithm is discussed, and it is compared with another which restructures the tree after each new item is added. .A Martin, W. A. Ness, D. N. .K retrieving information from binary trees, global and local optimization, sorting, recursion .I 2389 .T Preliminary Report on a System for General Space Planning .W A computer language and a set of programs within that language are described which allow the formulating and solving of a class of space planning problems. The language is an extension of Algol and includes means to represent spaces and objects, to manipulate them, and to test the resulting arrangements according to a variety of constraints. The algorithms used to solve problems expressed in this language rely on heuristic programming. Both the language and the search algorithms are detailed. .A Eastman, C. M. .K automated design, architecture, heuristic programs, space planning .I 2390 .T A Proposal for a Computer-Based Interactive Scientific Community .W Because of the problems created by the explosion of papers in the mathematical sciences and the drawbacks that this places on research, it is suggested that a tree of all mathematical results and terminology be maintained in a multiterminal computer system. Users of the system can store in the computer an updated file of their current knowledge, and on selecting a paper to read, they can obtain from the computer the minimum subtree of theorems required to bring them from what they already know to the background knowledge which the paper assumes. Under certain conditions, means are also provided for the contribution of useful comments by the readers of a work and for interaction between commentators and with the author. This paper describes how the system can be organized and the role required of readers, writers, and commentators. .A Pager, D. .K interactive system, organization of scientific community, readers, writers, commentators, computer utility, information retrieval, trees, data structures .I 2391 .T Unitary Symmetric Polynomials [Z] (Algorithm R391) .A Schrack, G. F. .K symmetric polynomials, elementary symmetric polynomials, unitary symmetric polynomials, polynomial synthesis, reverse Horner scheme, reverse synthetic division, binomial coefficients .I 2392 .T In-Situ Transposition of a Rectangular Matrix [F1] (Algorithm C380) .A Macleod, I. D. G. .K rectangular matrix, transpose .I 2393 .T Calculation of Fourier Integrals [D1] (Algorithm A418) .A Einarsson, B. .K quadrature, Filon quadrature, integration, Filon integration, Fourier coefficients, Fourier integrals, Fourier series, spline, spline approximation, spline quadrature, extrapolation, Richardson extrapolation .I 2394 .T Ordering +-f(+-f(+-f(...+-f(x)..))) When f(x) Is Positive Monotonic .A Salzer, H. E. .K ordering, storage, retrieval, positive functions, monotonic functions, increasing functions, decreasing function, binary system, Chebyshev zeros, square rots, continued fractions .I 2395 .T Quadratic Programming for Nonlinear Regression .W A quadratic programming algorithm is described for use with the magnified diagonal method of nonlinear regression with linear constraints. The regression method is published in JACM, July 1970. .A Shrager, R. I. .K nonlinear equations, nonlinear regression, nonlinear programming, quadratic programming, least squares, inequality, constraints, iteration .I 2396 .T MUSE: A Model To Understand Simple English .W MUSE is a computer model for natural language processing, based on a semantic memory network like that of Quillian's TLC. MUSE, from a Model to Understand Simple English, processes English sentences of unrestricted content but somewhat restricted format. The model first applies syntactic analysis to eliminate some interpretations and then employs a simplified semantic intersection procedure to find a valid interpretation of the input. While the semantic processing is similar to TLC's, the syntactic component includes the early use of parse trees and special purpose rules. The "relational triple" notation used during interpretation of input is compatible with MUSE's memory structures, allowing direct verification of familiar concepts and the addition of new ones. MUSE also has a repertoire of actions, which range from editing and reporting the contents of its own memory to an indirect form of question answering. Examples are presented to demonstrate how the model interprets text, resolves ambiguities, adds information to memory, generalizes from examples and performs various actions. .A McCalla, G. I. Sampson, J. R. .K natural language processing, semantic memory, text comprehension, question answering, artificial intelligence, human memory simulation .I 2397 .T Optimizing the Polyphase Sort (Corrigendum) .A Shell, D. L. .I 2398 .T Teacher/Student Authored CAI Using the NEWBASIC System .W The pedagogical advantages of a general purpose interactive system called NEWBASIC/CATALYST are discussed. NEWBASIC/CATALYSTincorporates an advanced implementation of BASIC, system-level interactive features, and a general capability for extension through user oriented function attachment, Application of this last feature to provide a flexible CAI scan capability is illustrated. An example of interaction at the system level shows how students can mix the advantages of independent or "solo" mode computing with those of guided or "dual" mode interaction. Preliminary experience with the system in an urban secondary school setting is discussed. .A Dwyer, T. A. .K CAI, BASIC, CATALYST, NEWBASIC, education, computers in education, extended languages, interactive systems .I 2399 .T A CRT Editing System .W A test-editing and manipulation program is described. The program operates from low-cost cathode-ray tube entry and display stations with keyboard and 13 function buttons. Applications, potential economy of operation, and some aspects of implementation are discussed. .A Irons, E. T. Djorup, F. M. .K editing, text, cathode-ray tube entry display, time-sharing .I 2400 .T Use of the Hough Transformation ToDetect Lines and Curves in Pictures .W Hough has proposed an interesting and computationally efficient procedure for detecting lines in pictures. This paper points out that the use of angle-radius rather than slope-intercept parameters simplifies the computation further. It also shows how the method can be used for more general curve fitting, and gives alternative interpretations that explain the source of its efficiency. .A Duda, R. O. Hart, P. E. .K picture processing, pattern recognition, line detection, curve detection, colinear points, point-line transformation, Hough transformation .I 2401 .T On Shrinking Binary Picture Patterns .W A parallel processing algorithm for shrinking binary patterns to obtain single isolated elements, one for each pattern, is presented. This procedure may be used for counting patterns on a matrix, and a hardware implementation of the algorithm using large scale integrated technology is envisioned. The principal features of this method are the very small window employed (two-by-two elements), the parallel nature of the process, and the possibility of shrinking any pattern, regardless of the complexity of its configuration. Problems regarding merging and disconnection of patterns during the process as well as the determination of the maximum number of steps necessary to obtain a single isolated element from a pattern, are reviewed and discussed. An analogy with a neural network description, in terms of McCulloch-Pitts "neurons" is presented. .A Levialdi, S. .K counting binary patterns, shrinking, parallel processing, multiple connected pictures .I 2402 .T Pictorial Pattern Recognition and the Phase Problem of X-ray Crystallography .W The availability of interactive, three-dimensional, computer graphics systems coupled to powerful digital computers encourages the development of algorithms adapted to this environment. Pictorial pattern recognition techniques make possible a number of approaches to X-ray structure determination based on molecular model building, i.e. the use of chemical information to frame "structural hypotheses" which can computationally be tested and refined by reference to the experimental data. Application of standard pattern recognition algorithms is hindered by the fact that the cross-correlation between a model and the correct structure cannot be computed because of a fundamental incompleteness in the measured data. However, it is possible to compute an upper bound to such a cross-correlation. A simple example demonstrates that this information can be the basis of a technique for structure determination that can make effective use of an interactive graphics system. Model building by cross-correlations has intrinsic advantages over usual crystallographic techniques based on the autocorrelation or Patterson function, especially for large structures. This is significant, for crystallography of biological macromolecules hasbeen and will continue to be a field of intense interest. .A Lesk, A. M. .K pictorial pattern recognition, phase problem, X-ray crystallography, interactive graphics .I 2403 .T Procedures for Natural Spline Interpolation [E1] (Algorithm A472) .A Herriot, J. G. .K approximation, interpolation, spline, natural spline, spline approximation, cubic natural spline .I 2404 .T Exponential Integrals [S13] (Algorithm A471) .A Gautschi, W. .K exponential integral, recurrence relations, recursive computation, continued fractions .I 2405 .T Linear Systems with Almost Tridiagonal Matrix [F4] (Algorithm A470) .A Kubicek, M. .K system of linear equations, almost tridiagonal matrix, sparse matrix .I 2406 .T A Data Definition and Mapping Language .W A data definition language i sa declarative computer language for specifying data structures. Most data definition languages concentrate on the declaration of logical data structures with little concern for how these structures are physically realized on a computer system. However, the need for data definition languages which describe both the logical and physical aspects of data is increasingly apparent. Such languages will be a key systems, as well as in advanced data management systems and distributed data bases. This paper reviews past work in the data definition language for describing both logical and physical aspects of data. Applications of these "generalized" data definition languages are also discussed. .A Sibley, E. H. Taylor, R. W. .K data definition language, data and storage structure, data translation, data base management systems, file translation .I 2407 .T Curriculum Recommendations for Undergraduate Programs in Information Systems .W The need for education related to information systems in organizations is discussed, and a curriculum is proposed for an undergraduate program. Material necessary for such programs is identified, and courses incorporating it are specified.Detailed course descriptions are presented. Program organization and a problems of implementation are discussed. .A Couger, J. D. .K education, undergraduate curricula, management systems, information systems, information analysis, system design, systems analysis .I 2408 .T Solving the Biharmonic Equation in a Square: A Direct Versus a Semidirect Method .W Two methods for solving the biharmonic equation are compared. One method is direct, using eigenvalue-eigenvector decomposition. The other method is iterative, solving a Poisson equation directly at each iteration. .A Ehrlich, L. W. .K biharmonic, direct method, block iterative, eigenvector-eigenvalue decomposition .I 2409 .T An Algorithm for the Approximate Solution of Wiener-Hopf Integral Equations .W An explicit approximate solution is given for an equation. Where it is assumed that the classical Wiener-Hopf technique may be applied. It is furthermore assumed that Fourier transforms are known explicitly. The approximate solution depends on two positive parameters. .A Stenger, F. .K integral equations, Wiener-Hopf, convolution, approximate solution .I 2410 .T A Recurrence Scheme for Converting from One Orthogonal Expansion into Another .W A generalization of a scheme of Hamming for converting a polynomial Pn(x) into a Chebyshev series is combined with a recurrence scheme of Clenshaw for summing any finite series whose terms satisfy a three-term recurrence formula. .A Salzer, H. E. .K orthogonal expansions, series interconversion, recurrence schemes, Hamming recurrence, Clenshaw recurrence, three-term recurrence, five-term recurrence, Chebyshev series .I 2411 .T Tree-Structured Programs .A Wegner, E. .K control structures, flowcharts, goto statements, inductive assertion, least fix points, optimization in compilers, program documentation, program flow graphs, programming language design, proof of programs, semantics of programming languages, structured programming. .I 2412 .T Comment on Brent's Scatter Storage Algorithm .A Feldman, J. A. Low, J. R. .K Hashing, information storage and retrieval, scatter storage, searching, symbol table .I 2413 .T A Note on Subexpression Ordering in the Execution of Arithmetic Expressions .W A counterexample to the supposed optimality of an algorithm for generating schedules for trees of tasks with unequal execution times is presented. A comparison with the "critical path" heuristic is discussed. .A Denning, P. J. Graham, G. S. .K scheduling, tree scheduling, task scheduling, multiprocessor scheduling .I 2414 .T Arithmetic Overa Finite Field [A1] (Algorithm A469) .A Lam, C. McKay, J. .K algebra .I 2415 .T Algorithm for Automatic Numerical Integration Over a Finite Interval [D1] (Algorithm A468) .A Patterson, T. N. L. .K automatic integration, numerical integration, automatic quadrature, numerical quadrature .I 2416 .T Matrix Transposition in Place [F1] (Algorithm A467) .A Brenner, N. .K transposition, matrix operations, permutations, primitive roots, number theory .I 2417 .T Four Combinatorial Algorithms [G6] (Algorithm A466) .A Ehrlich, G. .K permutations and combinations .I 2418 .T Student's t Frequency [S14] (Algorithm A465) .A Hill, G. W. .K Student's t statistic, density function, series approximation .I 2419 .T Eigenvalues of a Real, Symmetric, Tridiagonal Matrix [F2] (Algorithm A464) .A Reinsch, C. H. .K eigenvalues, QR Algorithm .I 2420 .T Experiments with an Automatic Theorem-Prover HavingPartial Ordering Inference Rules .W Automatic theorem-provers need to be made much more efficient. With this in mind, Slagle has shown how the axioms for partial ordering can be replaced by built-in inference rules when using a particular theorem-proving algorithm based upon hyper-resolution and paramodulation. The new rules embody the transitivity of partial orderings and the close relationship between predicates. A program has been developed using a modified version of these rules. This new theorem-prover has been found to be very powerful for solving problems involving partial orderings. This paper presents a detailed description of the program and a comprehensive account of the experiments that have been performed with it. .A Slagle, J. R. Norton, L. M. .K theorem-proving, partial ordering, resolution, hyper-resolution, P1-resolution, paramodulation, inference rules, heuristics .I 2421 .T A Scan Conversion Algorithm with Reduced Storage Requirements .W Most graphics systems using a raster scan output device (CRT or hardcopy) maintain a display file in the XY or random scan format. Scan converters, hardware or software, must be provided to translate the picture description from the XY format to the raster format. Published scan conversion algorithms which are fast will reserve a buffer area large enough to accommodate the entire screen. On the other hand, those which use a small buffer area are slow because they require multiple passes through the XY display file. The scan conversion algorithm described here uses a linked list data structure to process the lines of the drawing in strips corresponding to groups of scan lines. A relatively small primary memory buffer area is used to accumulate the binary image for a group of scan lines. When this portion of the drawing has been plotted, the buffer is reused for the next portion. Because of the list processing procedures used, only a single pass through the XY display file is required when generating the binary image and only a slight increase in execution time over the fully buffered core results. Results slow that storage requirements can be reduced by more than 80 percent while causing less than a 10 percent increase in execution time. .A Jordan, B. W. Jr. Barrett, R. C. .K graphics, scan conversion, raster plotter, line drawing, discrete image, dot generation .I 2422 .T Adaptive Correction of Program Statements (Corrigendum) .A James, E. B. Partridge, D. P. .I 2423 .T A Parser-Generating System for Constructing Compressed Compilers .W This paper describes a parser-generating system (PGS) currently in use on the CDC-6500 computer at Purdue University. The PGS is a Fortran-coded compiler. In the input translation grammar, each BNF syntactic rule corresponds to a (possibly empty) "code generator" realizable as an assembly language, Fortran or Algol, subroutine that is called whenever that syntactic rule is applied in the parse of a program. Typical one-pass compilers constructed by the PGS translate source programs at speeds approaching 14,000 cards per minute. For an XPL compiler, the parser program and its tables currently occupy 288 words of 60-bit core memory of which 140 words are parsing table entries and 82 words are links to code generators. .A Mickunas, M. D. Schneider, V. B. .K parser generators, translator writing systems, syntactic analysis, normal-form grammars, pushdown automata, translation grammars, translator optimization, compression algorithm .I 2424 .T Dynamic Verification of Operating System Decisions .W Dynamic verification of a decision implies that every time the decision is made there is a consistency check performed on the decision using independent hardware and software. The dynamic verification of operating system decisions is used on the PRIME system being designed and constructed at the University of California, Berkeley. PRIME is an experimental time-sharing which is to have the properties of continuous availability, data privacy, and cost effectiveness. The technique of dynamic verification allows the construction of an operating system which does not make certain decisions improperly even in the presence of a single hardware or software fault. Furthermore, multiple faults lead to unreliable operation only if the faults happen to reinforce each other. On PRIME, dynamic verification is used to ensure that one user's information cannot become available to another user gratuitously even in the presence of a single hardware or software fault.the amount of additional hardware and software required for dynamic verification can be modest. .A Fabry, R. S. .K operating systems, data security, fault tolerance, software reliability, data privacy, program verification, modular computer systems .I 2425 .T The Programmer as Navigator .A Bachman, C. W. .I 2426 .T Algorithms SCALE1, SCALE2, and SCALE3 for Determination of Scales on Computer Generated Plots [J6] (Algorithm A463) .A Lewart, C. R. .K plotting, scaling for plotting .I 2427 .T Bivariate Normal Distribution [S15] (Algorithm A462) .A Donnelly,T. G. .K bivariate, normal Gaussian, frequency distribution .I 2428 .T Cubic Spline Solutions to a Class of Functional Differential Equations [D2] (Algorithm A461) .A Burkowski, F. J. Hoskins, W. D. .K differential equation, spline approximation .I 2429 .T Calculation of Optimum Parameters for Alternating Direction Implicit Procedures [D3] (Algorithm A460) .A Saylor, P. E. Sebastian, J. D. .K elliptic difference equations, Peaceman-Rachford, Douglas-Rachford, W. B. Jordan, optimum parameters, alternating-direction-implicit, ADI .I 2430 .T The Elementary Circuits of a Graph [H] (Algorithm A459) .A Syslo,M. M. .K algorithm, graph theory, circuit search algorithm, path search algorithm, searching .I 2431 .T Discrete Linear L1 Approximation by interval Linear Programming [E2] (Algorithm A458) .A Robers, P. D. Robers, S. S. .K discrete approximation, L1 approximation .I 2432 .T Addendum to a Multiple-Precision Division Algorithm .A Mifsud, C. J. Bohlen, M. J. .K multiple-precision, division, overflow .I 2433 .T Control Structures in Illiac IV Fortran .W As part of an effort to design and implement a Fortran compiler on the ILLIAC IV, an extended Fortran, called IVTRAN, has been developed. This language provides a means of expressing data and control structures suitable for exploiting ILLIAC IV parallelism. This paper reviews the hardware characteristics of the ILLIAC and singles out unconventional features which could be expected to influence language (and compiler) design. The implications of these features for data layout and algorithm structure are discussed, and the conclusion is drawn that data allocation rather than code structuring is the crucial ILLIAC optimization problem. A satisfactory method of data allocation is then presented. Language structures to utilize this storage method and express parallel algorithms are described. .A Millstein, R. E. .K array processing, parallelism detection, explicit parallelism, array allocation, parallel control structures, ILLIAC IV Fortran .I 2434 .T Using Page Residency To Select the Working Set Parameter .W Denning's method for selecting the working set parameter, which uses interreference intervals, is examined. Several omissions in his model are noted, and new assumptions are introduced to overcome these omissions. Using this modified model, Dening's results on page residency are rederived and reconsidered for selecting the working set parameter. .A Prieve, B. G. .K working set model, paging, program behavior,program modeling .I 2435 .T A Class of Dynamic Memory Allocation Algorithms .W Anew dynamic memory allocation algorithm, the Fibonacci system, is introduced. This algorithm is similar to, but seems to have certain advantages over, the "buddy" system. A generalization is mentioned which includes both of these systems as special cases. .A Hirschberg, D. S. .K dynamic storage allocation, buddy system, simulation, Fibonacci, fragmentation .I 2436 .T A Note on the Confinement Problem .W This note explores the problem of confining a program during its execution so that it cannot transmit information to any other program except its caller. A set of examples attempts to stake out the boundaries of the problem. Necessary conditions for a solution are stated and informally justified. .A Lampson, B. W. .K protection, confinement, proprietary program, privacy, security, leakage of data .I 2437 .T General Performance Analysis of Key-to-Address Transformation Methods Using an Abstract File Concept .W This paper presents a new approach to the analysis of performance of the various key-to-address transformation methods. In this approach the keys in a file are assumed to have been selected from the key space according to a certain probabilistic selection algorithm. All files with the same number of keys selected from this key space will be suitably weighted in accordance with the algorithm, and the average performance of the transformation methods on these files will be used as the potential of these methods. Using this analysis, methods with the same overall performance can be classified and key distributions partial to certain transformations can be identified. All this can be done analytically. The approach is applied to a group of transformation methods using files whose keys are selected randomly. .A Lum, V. Y. .K hashing, hashing techniques, hashing methods, hash coding, key transformation, key-to-address transformation, direct addressing, randomizing, random access, scatter storage, information retrieval, hashing analysis, randomization performance analysis .I 2438 .T A Model and Stack Implementation of Multiple Environments .W Many control and access environment structures require that storage for a procedure activation exist at times when control is not nested within the procedure activated. This is straightforward to implement by dynamic storage allocation with linked blocks for each activation, but rather expensive in both time and space. This paper presents an implementation technique using a single stack to hold procedure activation storage which allows retention of that storage for durations not necessarily tied to control flow. The technique has the property that, in the simple case,it runs identically to the usual automatic stack allocation and deallocation procedure. Applications of this technique to multitasking, coroutines, backtracking, label-valued variables, and functional arguments are discussed. In the initial model, a single real processor is assumed, and the implementation assumes multiple-processes coordinate by passing control explicitly to one another. A multiprocessor implementation requires only a few changes to the basic technique, as described. .A Bobrow, D. G. Wegbreit, B. .K control structures, environments, stack allocation, dendrarchy, retention, dynamic storage allocation, access environments, FUNARG problem, multitasking, coroutines, backtracking, label-valued variables, functional arguments, multiprocessor systems, extensible control structures .I 2439 .T Multiple Terminals Under User Program Control in a Time-Sharing Environment .W User-written programs on the Dartmouth Time-Sharing system can communicate with many remote terminals simultaneously and can control the interactions between these terminals. Such programs can be written using standard input and output instructions in any language available on the system. This paper describes how this multiple-terminal facility was implemented without requiring any changes in the system executive or in any of the system's compilers or interpreters. .A McGeachie, J. S. .K DTSS, multiple terminals, remote terminals, remote consoles, time-sharing, on-line interaction, on-line games .I 2440 .T Localization of the Roots of a Polynomial (Algorithm R429) .A Driessen, H. B. Hunt, E. W. LeM. .I 2441 .T Hidden-Line Plotting Program (Algorithm R420) .A Williamson, H. .I 2442 .T A Sparse Matrix Package (Algorithm R408) .A Lawrence, E. E. .I 2443 .T Generation of Permutations in Lexicographic Order (Algorithm R323) .A Roy, M. K. .I 2444 .T Finding All Cliques of an Undirected Graph (Algorithm A457) .A Bron, C. Kerbosch, J. .K cliques, maximal complete subgraphs, clusters, backtracking algorithm, branch and bound technique, recursion .I 2445 .T Routing Problem (Algorithm A456) .A Fencl, Z. .K routing problem, shortest path, traveling salesman problem, Hamiltonian circuit .I 2446 .T Analysis of Skew Representations of the Symmetric Group (Algorithm A455) .A Hunter, D. B. Williams, J. M. .K symmetric group, skew representation, partition, Young diagram, lattice permutation, binary model, outer product .I 2447 .T Sard Kernels for Certain Bivariate Cubatures .W An error analysis for some bivariate cubatures is given. The remainders are obtained by the use of Sard kernels. Numerical results and computer graphs are given for some of the kernel functions. .A Barnhill, R. E. Pilcher, D. T. .K cubatures, Sard kernels, numerical integration, remainder formulas .I 2448 .T Reversible Execution .A Zelkowitz, M. V. .K debugging, PL/I, reversible execution, backtracking .I 2449 .T A Simple Technique for Structured Variable Lookup .W A simple technique for the symbol-table lookup of structured variables based on simple automata theory is presented. The technique offers a deterministic solution to a problem which is currently handled in a nondeterministic manner in PL/I and COBOL compilers. .A Gates, G. W. Poplawski, D. A. .K symbol table organization, PL/I and COBOL structured variables .I 2450 .T Empirical Working Set Behavior .W The working set model for program behavior has been proposed in recent years as a basis for the design of scheduling and paging algorithms. Although the words "working set" are now commonly encountered in the literature dealing with resource allocation, there is a dearth of published data on program measurements, in the hope that workers in the field might find experimental evidence upon which to substantiate and base theoretical work. .A Rodriguez-Rosell, J. .K virtual memory, paging, working set, software measurement, program behavior .I 2451 .T Design of Tree Structures for Efficient Querying .W A standard information retrieval operation is to determine which records in a data collection satisfy a given query expressed in terms of data values. The process of locating the desired responses can be represented by a tree search model. This paper poses an optimization problem in the design of such trees to serve a well-specified application. The problem is academic in the sense that ordinarily the optimal tree cannot be implemented by means of practical techniques. On the other hand, it is potentially useful for the comparison it affords between observed performance and that of an intuitively attractive ideal search procedure. As a practical application of such a model this paper considers the design of a novel tree search scheme based on a bit vector representation of data and shows that essentially the same algorithm can be used to design either an ideal search tree or a bit-vector tree. An experimental study of a small formatted file illustrates the concepts. .A Casey, R. G. .K tree file, information storage and retrieval, clustering, search, data structure, data management, query answering .I 2452 .T Evaluation and Selection of File Organization-A Model and System .W This work first discusses the factors that affect file (data base) organization performance, an elusive subject, and then presents a methodology, a model and a programmed system to estimate primarily total storage costs and average access time of several file organizations, given a specific data base, query characterization and device-related specifications. Based on these estimates, an appropriate file structure may be selected for the specific situation. The system is a convenient tool to study file structures and to facilitate as much as possible the process of data base structure design and evaluation. .A Cardenas, A. F. .K file organization, file structures, file management, file organization performance, file organization model, file structure design, secondary index organization, simulation, data base, access time, storage requirement, data base analysis, data management .I 2453 .T Information Theory Applied to the Conversion of Decision Tables to Computer Programs .W Using ideas from information theory, this paper develops a heuristic algorithm that converts a limited entry decision table to a tree structured computer program with near minimum average processing time. The method is applicable to any limited entry decision table and does not require that actions have single rules or that the cost of testing conditions be equal. It is thus more general than the previously published heuristic algorithms. Compared to the optimal algorithm of Reinwald and Soland, this algorithm is easy to code and takes a much smaller translation time; it is thus felt that it is more useful in practice. The algorithm is well suited for manual conversion of decision tables to flowcharts. .A Ganapathy, S. Rajaraman, V. .K decision tables, optimum computer programs, information measure .I 2454 .T Computational Algorithms for Closed Queueing Networks with Exponential Servers .W Methods are presented for computing the equilibrium distribution of customers in closed queueing networks with exponential servers. Expressions for various marginal distributions are also derived. The computational algorithms are based on two-dimensional iterative techniques which are highly efficient and quite simple to implement. Implementation considerations such as storage allocation strategies and order of evaluation are examined in some detail. .A Buzen, J. P. .K queueing theory, queueing networks, equilibrium distributions, steady state distributions .I 2455 .T A Generalization of AVL Trees .W A generalization of AVL trees is proposed in which imbalances up to (triangle shape) is a small integer. An experiment is performed to compare these trees with standard AVL trees and with balanced trees on the basis of mean retrieval time, of amount of restructuring expected, and on the worst case of retrieval time. It is shown that, by permitting imbalances of up to five units, the retrieval time is increased a small amount while the amount of restructuring required is decreased by a factor of ten. A few theoretical results are derived, including the correction of an earlier paper, and are duly compared with the experimental data. Reasonably good correspondence is found. .A Foster, C. C. .K AVL trees, balanced trees, information storage and retrieval .I 2456 .T On the Capabilities of While, Repeat, and Exit Statements .W A well-formed program is defined as a program in which loops and if statements are properly nested and can be entered only at their beginning. A corresponding definition is given for a well-formed flowchart. It is shown that a program is well formed if and only if it can be written with if, repeat, and multi-level exit statements for sequence control. It is also shown that if,while, and repeat statements with single-level exit do not suffice. It is also shown that any flowcharts can be converted to a well-formed flowchart by node splitting. Practical implications are discussed. .A Peterson, W. W. Kasami, T. Tokura, N. .K well-formed program, while statement, repeat statement, exit statement, go to statement, flowchart, node splitting, software reliability .I 2457 .T Inductive Methodsfor Proving Properties of Programs .W There are two main purposes in this paper: first, clarification and extension of known results about computation of recursive programs, with emphasis on the difference between the theoretical and practical approaches; second, presentation and examination of various known methods for proving properties of recursive programs. Discussed in detail are two powerful inductive methods computational induction and structural induction, including examples of their applications. .A Manna, Z. Nes, S. Vuillemin, J. .K recursive programs, least fixed point, computational induction, structural induction .I 2458 .T Localization of the Roots of a Polynomial (Algorithm R429) .A Williams, E. J. .I 2459 .T Hu-Tucker Minimum Redundancy Alphabetic Coding Method (Algorithm R428) .A Byrne, J. G. .I 2460 .T Clenshaw-Curtis Quadrature (Algorithm R424) .A Good, A. J. .I 2461 .T Graph Plotter (Algorithm R412) .A Watkins, R. P. .I 2462 .T An Efficient Prime Number Generator (Algorithm R357) .A DeMorgan, R. M. .I 2463 .T Complex Gamma Function (Algorithm R404,C404) .A Andrejkova, G. Vinar, J. .I 2464 .T The Complex Method for Constrained Optimization [E4] (Algorithm A454) .A Richardson, J. A. Kuester, J. L. .K optimization, constrained optimization, Box's algorithm .I 2465 .T Gaussian Quadrature formulas for Bromwich's Integral [D1] (Algorithm A453) .A Piessens, R. .K Gaussian quadrature, Bromwich's integral, complex integration, numerical inversion of the Laplace transform .I 2466 .T Enumerating Combinations of m Out of n Objects [G6] (Algorithm A452) .A Liu, C. N Tang, D. T. .K permutations, combination .I 2467 .T Chi-Square quantiles [G1] (Algorithm A451) .A Goldstein, R. B. .K Chi-square, asymptotic approximation, normal deviate, chi-square deviate, degrees of freedom .I 2468 .T Rosenbrock Function Minimization [E4] (Algorithm A450) .A Machura, M. Mulawa, A. .K function minimization, Rosenbrock's method .I 2469 .T Petri Nets and Speed Independent design .W Petri nets are investigated as one method of modeling speed independent asynchronous circuits. A study of circuit realizations of Petri nets leads to a demonstration of their usefulness in modeling speed independent operation. This usefulness is emphasized by the design of a speed independent processor from modules developed in the investigation of Petri net implementation. .A Misunas, D. .K speed independent asynchronous, Petri net .I 2470 .T Fen-An Axiomatic Basis for Program Semantics .W A formal system is presented which abstracts the notions of data item, function, and relation. It is argued that the system is more suitable than set theory (or its derivatives) for the concise and accurate description of program semantics. It is shown how the system can be used to build composite data types out of simper ones with the operations of rowing, structuring, and uniting. It is also demonstrated that completely new primitive types can be introduced into languages through the mechanism of singleton data types. Both deterministic and nondeterministic functions are shown to be definable in the system. It is described how the local environment can be modeled as a data item and how imperative statements can be considered functions on the environment. The nature of recursive functions is briefly discussed, and a technique is presented by which they can be introduced into the system. The technique is contrasted with the use of the paradoxical combinator, Y. The questions of local and global environments and of various modes of function calling and parameter passing are touched upon. The theory is applied to the proof of several elementary theorems concerning the semantics of the assignment, conditional, and iterative statements. An appendix is included which presents in detail the formal system governing webs and fen, the abstractions used informally in the body of the paper. .A MacLennan, B. J. .K semantics, formal systems, lambda-calculus, extensible languages, data types, modes, axioms, correctness, formal language definition, formal description, data structures, description languages, models of computation .I 2471 .T A Learning Program Which Plays Partnership Dominoes .W A learning program has been written is BASIC to play four-player partnership dominoes. Because dominoes is a game of incomplete information, the program uses somewhat different principles of artificial intelligence from those used in programs for games of complete information, such as checkers, chess, and go. The program was constructed to use a "strategy signature table" which classifies board situations through the interactions of game parameters. Each entry in the table contains adaptively determined weights indicating the advi sability of various strategies. Once chosen, a strategy then employs probability analysis and linear polynomial evaluation to choose a move. Our program wins approximately two-thirds of its games in tournament situations, and has defeated championship players. .A Smith, M. H. .K artificial intelligence, intelligence learning, heuristic procedures, heuristic programming, game playing, problem solving,dominoes, incomplete information, machine learning, signature table, learning programs, strategy learning .I 2472 .T Minimal spanning Tree (Algorithm R422) .A Kernighan, B. W. .K spanning tree, minimal spanning tree, Prim algorithm .I 2473 .T Hidden-Line Plotting Program (Algorithm R420) .A Macleod, I. D. G. Collins, A. M. .K hidden-line plot, surface plot .I 2474 .T DIFSUB for Solution of Ordinary Differential Equations (Algorithm C407) .A Nikolai, P. J. .K differential equations, stiff differential equations, boundary value problems .I 2475 .T Solution of Linear Programming Problems in 0-1 Variables [H1] (Algorithm A449) .A Fiala, F. .K linear programming, zero-one variable .I 2476 .T Equivalence Between AND/OR Graphs and Context-Free Grammars .A Hall, P. A. V. .K artificial intelligence, AND/OR graphs, language theory, context-free grammars .I 2477 .T Multiple Exits from a Loop Without the GOTO .A Bochmann, G. V. .K control structures, goto free programming, multiple exits from loops, exit statement .I 2478 .T Computer Science-Seminars for Undergraduates .A Kandel, A. .K education, computer science, curriculum, imprecise synthesis, fuzzy educational structure .I 2479 .T Curriculum Recommendations for Graduate Professional Programs in Information Systems: Recommended Addendum on Information Systems Administration .W An addendum to the Report of the ACM Curriculum Committee on Computer Education for Management is proposed. The proposed addendum is to include in the curriculum a course on Information Systems administration. It is important for two reasons: (1) the systems designer must understand the administrative framework in which he must operate to work effectively, and (2) an important objective of the curriculum recommendations is to prepare the future manager of the computer activity. It is felt that the importance of these two reasons justifies the addition of the recommended course. The course is outlined in the format of the original report. .A McFarlan, F. W. Nolan, R. L. .K education, management information systems, information systems administration, information systems management, computer management .I 2480 .T Teaching "About Programming" .W This paper presents the goals and organization of a course about programming designed to provide entering students in a graduate program with a cultural enrichment in their professional lives. The students are expected to have taken at least two programming courses prior to this one and, therefore, to be familiar with at least two programming languages, both as students and users. Teaching someone how to program is similar to teaching him to play a musical instrument: neither skill can be taught-they must be learned. However, the teacher still serves several vital purposes: to present a set of rules for producing well-formed utterances; to offer numerous demonstrations of his own skill; and to function as an involved critic. Finally, the teacher is the source of information about the process in which the student is involved. .A Rosin, R. F. .K education, programming concepts, professionalism .I 2481 .T The Distribution of a Program in Primary and Fast Buffer Storage .W A virtual memory computer system with a fast buffer (cache) memory between primary memory and the central processing unit is considered. The optimal distribution of a program between the buffer and primary memory is studied using the program's lifetime function. Expressions for the distribution of a program which maximizes the useful fraction of the cost-time integral of primary and fast buffer storage are obtained for swapping and nonswapping buffer management policies. .A Gelenbe, E. .K cache, virtual memory, lifetime function, cost-time integral, fast buffer .I 2482 .T Mixed Solutions for the Deadlock Problem .W Mixtures of detection, avoidance, and prevention provide more effective and practical solutions to the deadlock problem than any one of these alone. The individual techniques can be tailored for subproblems of resource allocation and still operate together to prevent deadlocks. This paper presents a method, based on the concept of the hierarchical operating system, for constructing appropriate mixtures and suggests appropriate subsystems for the most frequently occurring resource allocation problems .A Howard, J. H. Jr. .K deadlocks, resource allocation, operating systems, multiprogramming, hierarchical systems .I 2483 .T COKO III: The Cooper-Koz Chess Program .W COKO III is a chess player written entirely in Fortran. On the IBM 360-65, COKO III plays a minimal chess game at the rate of .2 sec cpu time per move, with a level close to lower chess club play. A selective tree searching procedure controlled by tactical chess logistics allows a deployment of multiple minimal game calculations to achieve some optimal move selection. The tree searching algorithms are the heart of COKO's effectiveness, yet they are conceptually simple. In addition, an interesting phenomenon called a tree searching catastrophe has plagued COKO's entire development just as it troubles a human player. Standard exponential growth is curbed to a large extent by the definition and trimming of the Fischer set. A clear distinction between tree pruning and selective tree searching is also made. Representation of the chess environment is described along with a strategical preanalysis procedure that maps the Lasker regions. Specific chess algorithms are described which could be used as a command structure by anyone desiring to do some chess program experimentation. A comparison is made of some mysterious actions of human players and COKO III. .A Kozdrowicki, E. W. Cooper, D. W. .K artificial intelligence, selective searching, tree searching, tree searching catastrophe, heuristic programming,chess algorithms, Lasker regions, Fischer set, minimal chess game, strategical, tactical, tactical control mode, game playing, alpha beta, machine learning, concept formation, command structure, minimax, computer chess tournament, auxiliary minimal game .I 2484 .T A Note on Information Organization and Storage .W Since the logical structure of a data base can be represented by a tree or graph, it is quite natural for us to view the process of designing a data base as that of constructing a tree or a graph. A general method for constructing such a tree or a graph is provided. There are three important elements in this general construction method; namely, a set of binary relations, an algorithm for constructing subsets of a set, and an algorithm for selecting an element from the given set of objects. The use of different relations and algorithms results in different information structures, as list, tree, ring, etc. Thus the problem of information organization and storage is reduced to that of defining relations and formulating algorithms under a given set of constraints. The results presented may be valuable to designers as useful design concepts, and may serve as a basis for developing a formal theory on the subject. .A Huang, J. C. .K data base, data-base management, information retrieval, information structure, file organization, storage allocation, tree, graph .I 2485 .T Managing the Computer Resource: A Stage Hypothesis .W Based on the study of expenditures for data processing, a descriptive stage hypothesis is presented. It is suggested that the planning, organizing, and controlling activities associated with managing the computer resource will change in character over a period of time, and will evolve in patterns roughly correlated to four stages of the computer budget: Stage I (computer acquisition), Stage II (intense system development), Stage III (proliferation of controls), and Stage IV (user/service orientation). Each stage is described and related to individual tasks for managing the computer resource. .A Nolan, R. L. .K computer management, computer budget, computer expenditures, stage hypothesis, planning, organizing, control, computer resource .I 2486 .T Computer Photocomposition of Technical Text .W In computer assisted typesetting by means of photocomposition, special problems arise in highly technical material such as mathematical formulas. New solutions to several of these problems have been devised in the information system of the American Institute of Physics. They include: the representation of special characters (foreign alphabets, mathematical symbols, etc.) not available on input keyboards or on the photocomposer; the generation of such symbols, e.g. by overprinting; the precise positioning of accent marks (floating diacritics); line breaks, i.e. words or formulas placed partly at the end of one line and partly at the beginning of the next; and certain aspects of error correction. .A Alt, F. L. Yuni Kirk, J. .K photocomposition, typesetting, printing, graphics, text processing .I 2487 .T Cubic Spline solutions to Fourth-order Boundary Value Problems .W The cubic spline approximation to the fourth-order differential equation y''''+p(x)y''+q(x)y'+r(x)y=t(x) is shown to reduce to the solution of a five-term recurrence relationship. For some special cases the approximation is shown to be simply related to a finite difference representation with a local truncation error of order (y/720)delta^8. .A Hoskins, W. D. .K cubic spline, differential equations, boundary value problem .I 2488 .T Least Squares Piecewise Cubic Curve Fitting .W The matrices involved in a linear least squares formulation are determined for the problem of fitting piecewise cubic functions, those possessing a continuous derivative, to arrays of planar data. .A Ferguson, J. Staley, P. A. .K curve fitting, data reduction, function approximation, approximation splines .I 2489 .T Number of Multiply-Restricted Partitions [A1] (Algorithm A448) .A Beyer, T. Swinehart, D. F. .K partitions, enumeration, change making, energy-level degeneracies, molecular vibrational energy-levels .I 2490 .T Efficient Algorithms for Graph Manipulation [H] (Algorithm A447) .W Efficient algorithms are presented for partitioning a graph into connected components, biconnected components and simple paths. The algorithm for partitioning of a graph into simple paths is iterative and each iteration produces a new path between two vertices already on paths. (The start vertex can be specified dynamically.) If V is the number of vertices and E is the number of edges, each algorithm requires time and space proportional to max (V,E) when executed on a random access computer. .A Hopcroft, J. Tarjan, R. .K graphs,analysis of algorithms, graph manipulation .I 2491 .T Threaded Code .W The concept of "threaded code" is presented as an alternative to machine language code. Hardware and software realizations of it are given. In software it is realized as interpretive code not needing an interpreter. Extensions and optimizations are mentioned. .A Bell, J. R. .K interpreter, machine code, time tradeoff, space tradeoff, compiled code, subroutine calls, threaded code .I 2492 .T The Development of Decision Tables via Parsing of Complex Decision Situations .W A new parsing technique is proposed which allows parsing based only on syntactical characteristics of the decision problem. It requires a description of the problem in decision grid chart format and allows the development of decision tables within defined limits by avoiding, or at least minimizing, repetition of conditions and actions in the resulting tables. .A Strunz, H. .K decision tables, parsing, decision grid chart,problem analysis .I 2493 .T Optimum Data Base Reorganization Points .W In certain data base organization schemes the cost per access may increase due to structural inefficiencies caused by updates. By reorganizing the data base the cost per access may be reduced. However, the high cost of a reorganization prohibits frequent reorganizations. This paper examines strategies for selecting the optimum reorganization points. .A Shneiderman, B. .K data base, reorganization, files, information retrieval .I 2494 .T A Computer Generated Aid for Cluster Analysis .W A computer generated graphic method, which can be used in conjunction with any hierarchical scheme of cluster analysis, is described and illustrated. The graphic principle used is the representation of the elements of a data matrix of similarities or dissimilarities by computer printed symbols (of character overstrikes) of various shades of darkness, where a dark symbol corresponds to a small dissimilarity. The plots, applied to a data matrix before clustering and to the rearranged matrix after clustering, show at a glance whether clustering brought forth any distinctive clusters. A well-known set of data consisting of the correlations of 24 psychological tests is used to illustrate the comparison of groupings by four methods of factor analysis and two methods of cluster analysis. .A Ling, R. F. .K computer graphics, cluster analysis, numerical taxonomy, hierarchical clustering, factor analysis .I 2495 .T Adapting Optimal Code Generation for Arithmetic Expressions to the Instruction Sets Available on Present-Day Computers .A Stockhausen, P. F. .K arithmetic expressions, code generation, compilers, object-code optimization, register assignment, trees .I 2496 .T On the Near-Optimality of the Shortest-Latency-Time-First Drum Scheduling Discipline .W For computer systems in which it is practical to determine the instantaneous drum position, a popular discipline for determining the sequence in which the records are to be accessed is the so-called shortest-latency-time-first, SLTF, discipline. When a collection of varying-length records is to be accessed from specified drum positions, it is known that the SLTF discipline does not necessarily minimize the drum latency time. However, we show that the total time to access the entire collection for any SLTF schedule is never as much as a drum revolution longer than a minimum latency schedule. .A Stone, H. S. Fuller, S. H. .K drum scheduling, shortest-access-time-first, minimal latency scheduling, shortest-latency-time-first .I 2497 .T Synchronizing Processors with Memory-Content-Generated Interrupts .W Implementations of the "Lock-Unlock" method of synchronizing processors in a multiprocessor system usually require uninterruptable, memory-pause type instructions. An interlock scheme called read-interlock, which does not require memory-pause instructions, has been developed for a dual DEC PDP-10 system with real-time requirements. The read-interlock method does require a special"read-interlock" instruction in the repertoire of the processors and a special "read-interlock" cycle in the repertoire of the memory modules. When a processor examines a "lock" (a memory location) with a read-interlock instruction, it will be interrupted if the lock was already set; examining a lock immediately sets it if it was not already set (this event sequence is a read-interlock cycle). Writing into a lock clears it. Having the processor interrupted upon encountering a set lock instead of branching is advantageous if the branch would have resulted in an effective interrupt. .A Hill, J. C. .K interrupts,supervisors, monitors, debugging, parallel processing, associative memories, microprogramming .I 2498 .T Minimizing Wasted Space in Partitioned Segmentation .W A paged virtual memory system using a finite number of page sizes is considered. Two algorithms for assigning pages to segments are discussed. Both of these algorithm are simple to implement. The problem of choosing the page sizes to minimize the expected value of total wasted space in internal fragmentation and in a page table, per segment, is then solved for a probability density function of segment size which may be expressed as a convex combination of Erlang densities. .A Gelenbe, E. .K dynamic storage allocation, virtual memory, paging, multiple page sizes, fragmentation, segmentation .I 2499 .T Efficient Multiprogramming Resource Allocation and Accounting .W Although sometimes thought of as only a component of time-sharing operation, multiprogramming can involve broader questions of resource allocation, since fairness is not required to meet a response criterion. In a multiprogrammed system, it may serve maximal resource use to be unfair, for example by holding an input/output channel idle for a program while it completes a small amount of processor usage, enabling further use of the channel. Several applications of this principle are given, and it is suggested that a multiprogramming executive might dynamically adjust its allocation algorithms to gain efficiency. Allocation of resources is closely connected to accounting for those resources, raising the problems of repeatability, minimal uncharged overhead, and relative weighting of charges for dependent resources. Since weightings may depend on allocation algorithms, these are not arbitrary accounting parameters. Often the only repeatable accounting is one which omits an extensive overhead will be paid, and should multiprogramming prove efficient, overcharges will result. Multiprogramming turns on allocation of the memory resource essential to control of other resources. The general suggestions for allocation and accounting are applied to this question, and some details provided for the case of a monitor which controls a virtual-memory machine. .A Hamlet, R. G. .K monitor, executive, multiprogramming, efficiency, resource allocation, resource accounting .I 2500 .T A Practical Approach to Managing Resources and Avoiding Deadlocks .W Resource scheduling and allocation can be expensive with regard to time and space in multiprogramming or time-sharing environments involving large numbers of tasks and resources with conflicting requirements. Detection and/or prevention of deadlocks can require massive amounts of additional overhead if efficient usage of resources is to be maintained. A resource management program is described which uses linked lists along with other techniques to overcome a large portion of this overhead. The program, which is currently running as part of a large scale general purpose operating system, keeps resources relatively active but does not detect or prevent all deadlocks in its implemented state. Certain changes, which would permit more comprehensive levels of deadlock prevention/detection at additional cost, have not been incorporated in the running system due to the infrequency of deadlock situations. .A Frailey, D. J. .K deadlock, resource allocation, scheduling, resource management, multiprogramming, time-sharing, multiprocessing, deadly embrace .I 2501 .T WYLBUR: An Interactive Text Editing and Remote Job Entry System .W WYLBUR is a comprehensive system for manipulating all kinds of text, such as computer programs, letters, and manuscripts, using typewriter terminals connected to a computer. It has facilities for remote job entry and retrieval as well as facilities for text alignment and justification. A powerful method for addressing text by content is provided. This paper describes the external appearance of WYLBUR as well as its internal structure. A short description of the major features of ORVYL, a general purpose time-sharing system which operates in conjunction with WYLBUR, is also included. .A Fajman, R. Borgelt, J. .K text editing, time-sharing, on-line text editing, interactive text editing, terminal, remote terminal, terminal system, interactive terminal, remote job entry, remote job retrieval, program preparation, document preparation, data entry, content addressing .I 2502 .T A Comment on the Practical Aspects of Computer Science Education .A Estell, R. G. .K education, computer engineering, computer sciences curriculum, systems design .I 2503 .T Another Comment on Computer Music .A Wexelblat, R. L. .I 2504 .T Concerning Music and Computer Composition in Computational Linguistics .A McMorrow, C. H. .K artificial intelligence, heuristic programming, models of cognitive processes, computer music, computer composition,music theory .I 2505 .T Reflection-Free Permutations, Rosary Permutations, and Adjacent Transposition Algorithms .A Roy, M. K. .K permutation, permutation generation, scheduling, combinatorial analysis .I 2506 .T A Sparse Matrix Package (Algorithm R408) .A Sale, R. H. J. .K matrix, sparse matrix, matrix manipulation, Fortran standards .I 2507 .T Exact Solution of Linear Equations Using Residue Arithmetic (Algorithm R406) .A Howell, J. .K residue arithmetic, symmetric residue, modulus, mixed-radix representation, symmetric mixed-radix representation, mixed radix conversion, prime number, linear equations, Gaussian elimination, matrix inversion, determinant, adjoint matrix, ill-condition .I 2508 .T Increasing the Efficiency of Quicksort (Algorithm R402) .A Wheeler, R. E. .K sorting, quicksort .I 2509 .T Minit Algorithm for Linear Programming (Algorithm R333) .A Obradovic, D. .I 2510 .T Minit Algorithm for Linear Programming (Algorithm R333) .A Holmgren, B. Obradovic, D. Kolm, A. .I 2511 .T Maxflow (Algorithm R324) .A Bayer, G. .I 2512 .T Coulomb Wave Functions (Algorithm R300) .A Vos, H. .K Coulomb wave functions, wave functions, special functions, function evaluation .I 2513 .T A Nonrecursive List Moving Algorithm .W An efficient, nonrecursive algorithm is given for moving any LISP-type list. In particular, the algorithm requires no storage other than the new nodes into which the list is to be moved, and no additional bits per node for marking; the algorithm runs in time proportional to the number of nodes in the list. The original list structure is destroyed as it is moved. .A Reingold, E. M. .K list moving, list copying, list traversal, garbage collection LISP .I 2514 .T An Array Grammar Programming System .W A package of Fortran programs has been developed that permits a user to interactively design and test array grammars. The user can control the rule selection procedure in a derivation or parse, using weighted programming matrices; he also has a choice of instance selection schemes (raster,random, parallel). Examples are given involving array languages consisting of simple geometrical patterns, as well as a language of "neuron pictures." .A Mercer, A. Rosenfeld, A. .K picture grammars, array grammars .I 2515 .T Minimal Event-Node Network of Project Precedence Relations .W A procedure for constructing a minimal event-node network to represent a set of precedence relations without parallel activities is presented. A minimal event-node network is an event-node network in which both the number of nodes and the number of arcs are the minima to preserve the given precedence relations Counterexamples are given to show that the algorithm presented by A. C. Fisher, J. S. Liebman, and G. L. Nemhauser (1968) produces event-node networks which are not minimal. Since our procedure includes the set-covering problem, the time required may grow exponentially with the number of given activities. .A Corneil, D. G. Gotlieb, C. C. Lee, Y. M. .K network, project, event-node network, activity-node network, minimal event-node network, dummy activity, project precedence relations .I 2516 .T Hierarchical Storage in Information Retrieval .W A probabilistic analysis is employed to determine the effect of hierarchical storage organizations on information retrieval operations. The data storage hardware is assumed to consist on n-levels of linearly connected memory hardware with increasing data access times and increasing data storage capabilities. A system might, for example, consist of fast semiconductor memory, computer core memory, extended core storage, disk memory, and data cells. Equations are derived to predict the effect of such a system on data access times using sequential files, random access files, and structured files employing multiple-hierarchical linked lists. .A Salasin, J. .K information retrieval, hierarchical storage .I 2517 .T Some Comments on the Use of Ambiguous Decision Tables and Their Conversion to Computer Programs .W This paper comments upon recently published work on decision table translation using methods similar to the rule-mask technique. The applicability of these methods under various possible conventions on overall table meaning is discussed, and it is argued that there is a place both for the multi-rule and the single-rule (or action set) convention in decision tale usage. .A King, P. J. H. Johnson, R. G. .K decision tables, systems analysis, programming .I 2518 .T Programming by Questionnaire: An Effective Way To Use Decision Tables .W Programming by questionnaire combines aspects of decision table programming and general purpose programming by using decision tables to construct an application program through the selection of certain source statements from a predefined file. It is proposed that programming by questionnairies a useful compromise between general and special purpose programming for a significant class of large scale problems. The elements of the approach are discussed an existing application is described. .A Low, D. W. .K customizing, modeling, applications development, programmer productivity, simulator generation, automatic program generation, no reprogramming .I 2519 .T On the Problem of Communicating Complex Information .W The nature of the difficulty involved in communicating mathematical results between scientists using a computer based information retrieval system is examined. The problem is analyzed in terms of psychological and information-processing processes, and what turns out to be a vicious circle of effects is described. These include ways of augmenting written natural language by various notational and linguistic devices, the exhibition of the structure inherent in the information we are communicating, and a sophisticated interactive system controlled by computer. .A Pager, D. .K complex information, information, communication, mathematics, proof, interactive system, language .I 2520 .T Greatest Common Divisor of n Integers and Multipliers (Algorithm C386) .A Ragland, L. C. Good, D. I. .K proof of algorithms, greatest common divisor, Euclidean algorithm, inductive assertion method .I 2521 .T Ten Subroutines for the Manipulation of Chebyshev Series [C1] (Algorithm A446) .A Broucke, R. .K Chebyshev series, differentiation, integration, curve fitting,approximations, negative powers .I 2522 .T The Design, Implementation, and Evaluation of a Working Set Dispatcher .W The behavior of a computer system is largely dependent upon the algorithms employed to allocate the system resources to the processes competing for them. Recent research in time-sharing paging systems has developed the working set model for program behavior, and are source allocation strategy based on this model has been proposed. Two implementations along these principles have been reported, but it seems that in neither case have further results been announced. This report discusses the design and implementation of a dispatcher based on the working set principle, presents data to permit analysis of its behavior, and indicates future directions of research on methods of controlling a computer system. .A Rodriguez-Rosell, J. Dupuy, J. P. .K working set, dispatcher, scheduler, time-sharing systems, resource allocation, software evaluation, operating systems, supervisory systems .I 2523 .T A Region Coloring Technique for Scene Analysis .W A method of converting a picture into a "cartoon" or "map" whose regions correspond to differently textured regions is described. Texture edges in the picture are detected, and solid regions surrounded by these (usually broken) edges are "colored in" using a propagation process. The resulting map is cleaned by comparing the region colors with the textures of the corresponding regions in the picture, and also by merging some regions with others according to criteria based on topology and size. The method has been applied to the construction of cloud cover maps from cloud cover pictures obtained by satellites. .A Strong III, J. P. Rosenfeld, A. .K picture processing, scene analysis, edge detection .I 2524 .T Some Approaches to Best-Match File Searching .W The problem of searching the set of keys in a file to find a key which is closest to a given query key is discussed. After "closest," in terms of a metric on the the key space, is suitably defined, three file structures are presented together with their corresponding search algorithms, which are intended to reduce the number of comparisons required to achieve the desired result. These methods are derived using certain inequalities satisfied by metrics and by graph-theoretic concepts. Some empirical results are presented which compare the efficiency of the methods. .A Burkhard, W. A. Keller, R. M. .K matching, file structuring, file searching, heuristics, best match .I 2525 .T A Statistical Study of the Accuracy of Floating Point Number Systems .W This paper presents the statistical results of tests of the accuracy of certain arithmetic systems in evaluating sums, products and inner products, and analytic error estimates for some of the computations. The arithmetic systems studied are 6-digit hexadecimal and 22-digit binary floating point number representations combined with the usual chop and round modes of arithmetic with various numbers of guard digits, and with a modified round mode with guard digits. In a certain sense, arithmetic systems differing only in their use of binary or hexadecimal number representations are shown to be approximately statistically equivalent inaccuracy. Further, the usual round mode with guard digits is shown to be statistically superior in accuracy to the usual chop mode in all cases save one. The modified round mode is found to be superior to the chop mode in all cases. .A Kuki, H. Cody, W. J. .K error analysis, floating point arithmetic, rounding, guard digits, number representation .I 2526 .T Asymmetric Memory Hierarchies .W A study is presented of some of the system implications of memory hierarchies in which the backing or secondary store has a very small read time, relative of both the time required for writing and to the read time of conventional backing storage devices. Several analytic models are introduced, and it is shown that such hierarchies may operate in ways which differ from those of more conventional hierarchies. In particular, it is shown that it may not be necessary to multiprogram in such a situation. In the past, backing storage devices have been roughly symmetric with respect to their read and write times. This situation may not continue, as several devices are currently under development which may have a very small read-time/write-time ratio. This study places particular emphasis on one such system-the RCA read/write holographic optical memory. .A Williams, J.G. .K asymmetric memory hierarchy, demand paging, holographic optical memory, memory device, memory hierarchy, paging, storage device, storage hierarchy, virtual memory .I 2527 .T Implementation of High Level Language Machine .W Computing machines which directly execute the statements of a high level language have been proposed in the past. This report describes the actual implementation of such a machine: it is a computer whose "machine language" is APL. The machine is fully operational and correctly executes almost all of the APL operations on scalars, vectors, and arrays. The machine automatically allocates memory, executes statements, calls functions, converts numbers from one type to another, checks subscripts, and automatically detects many types of programmer errors. .A Hassitt, A. Lageschulte, J. W. Lyon, L. E. .K computer architecture, high level language machine, emulators, microprogramming, interpreters, execution speed, APL .I 2528 .T Binary Pattern Reconstruction from Projections [Z] (Algorithm R445) .A Lau, J. .K pattern reconstruction, image reconstruction, data compression, picture processing .I 2529 .T Binary Pattern Reconstruction from Projections [Z] (Algorithm A445) .A Chang, S. .K pattern reconstruction, image reconstruction, data compression, picture processing .I 2530 .T An Algorithm for Extracting Phrases in a Space-Optimal Fashion [Z] (Algorithm A444) .A Wagner, R. A. .K information retrieval, coding, text compression .I 2531 .T Graduate Education: The Ph.D. Glut .A Payne, W. H. .K graduate education, Ph.D. production, accreditation .I 2532 .T On Harrison's Substring Testing Technique .A Bookstein, A. .K string, substring, hashing, information storage and retrieval .I 2533 .T Gray Code and the +- Sign Sequence when +-f (+-f(+-f(...+-f(x)...))) Is Ordered .A Salzer, H. E. .K Gray code, sign sequences, ordering, positive monotonic functions, binary system, Galois sum .I 2534 .T Design and Implementation of a Diagnostic Compiler for PL/I .W PL/C is a compiler for a dialect for PL/I. The design objective was to provide a maximum degree of diagnostic assistance in a batch processing environment. For the most part this assistance is implicit and is provided automatically by the compiler. The most remarkable characteristic of PL/C is its perseverance-it completes translation of every program submitted and continues execution until a user-established error limit is reached. This requires that the compiler repair errors encountered during both translation and execution, and the design of PL/C is dominated by this consideration. PL/C also introduces several explicit user-controlled facilities for program testing. To accommodate these extensions to PL/I without abandoning compatibility with IBM compiler PL/C permits "pseudo comments"-constructions whose contents can optionally be considered either source test or comment. In spite of the diagnostic effort PL/C is a fast and efficient processor. It effectively demonstrates that compilers can provide better diagnostic assistance than is customarily offered, even when a sophisticated source language is employed, and that this assistance need not be prohibitively costly. .A Conway, R. W. Wilcox, T. R. .K compilers, debugging, PL/I, programming languages .I 2535 .T The Effects of Multiplexing on a Computer-Communications System .W A study is made of the way in which asynchronous time division multiplexing changes the stochastic nature of the arrival process from a user to the computer and, consequently, affects the performance of a time-shared computer-communications system. It is concluded that while, for certain values of system parameters, there is noticeable improvement in the performance of the computer (model), in the sense that time-shared scheduling delays are reduced, these improvements are offset by the transmission delays imposed by multiplexing so that there may be little or no change in the computer-communications system performance. Analytical and simulation results are based on the model of the computer-communications system being an M/D/1 queue (the multiplexor) in tandem with a single exponential server (the computer). Analytical results include a general description of the output process of an M/D/1 queue and the conditions under which this output process is approximately Poisson. .A Pack, C. D. .K computer communications, time-sharing, multiplexing, scheduling algorithms, operating systems .I 2536 .T Telecommunications Using a Front-End Minicomputer .W The use of a front-end minicomputer to provide varied remote terminal access to a large scale computer is considered. The problems of embedding telecommunications I/O within an operating system are discussed, and it is shown how the decentralization of intelligence acquired by front-end processing vastly simplifies the problem. A specific implementation is discussed with emphasis on the main processor-minicomputer link, the hardware-software implementation, the effect of the main processor operating system, and an assessment of the advantages over a hard wired line controller. .A Feinroth, Y. Franceschini, E. Goldstein, M. .K telecommunications, minicomputer, front-end processor, remote job entry, remote terminals .I 2537 .T Common Phrases and Minimum-Space Text Storage .W A method for saving storage space for text strings, such as compiler diagnostic messages, is described. The method relies on hand selection of a set of text strings which are common to one or more messages. These phrases are then stored only once. The storage technique gives rise to a mathematical optimization problem: determine how each message should use the available phrases to minimize its storage requirement. This problem is nontrivial when phrases which overlap exist. However, a dynamic programming algorithm is presented which solves the problem in time which grows linearly with the number of characters in the text. Algorithm 444 applies to this paper. .A Wagner, R. A. .K diagnostic messages, error messages, common phrases, minimum space, text storage, optimization, dynamic programming .I 2538 .T A Computer Science Course Program for Small Colleges .W The ACM Subcommittee on Small College Programs of the Committee on Curriculum in Computer Science (CCCS) was appointed in 1969 to consider the unique problems of small colleges and universities, and to make recommendations regarding computer science programs at such schools. This report, authorized by both the subcommittee and (CCCS), supplies a set of recommendations for courses and necessary resources. Implementation problems are discussed, specifically within the constraints of limited faculty and for the purposes of satisfying a wide variety of objectives. Detailed description of four courses are given; suggestions are made for more advanced work; and an extensive library list is included. .A Austing, R. H. Engel, G. L. .K computer science education, course proposals, small colleges, programming course, social implications course, computer organization course, file organization course, bibliographies .I 2539 .T Solution of the Transcendental Equation w*exp(w)=x [C5] (Algorithm A443) .A Fritsch, F. N. Shafer, R. E. Crowley,W. P. .K transcendental function evaluation, solution of transcendental equation .I 2540 .T Properties of the Working Set Model (Corrigendum) .A Denning, P. J. Schwartz, S. C. .I 2541 .T An Overview of the ISPL Computer System Design .W This paper explores the advantages of the concurrent design of the language, operating system, and machine (via microcode) to create an interactive programming laboratory. It describes the synergistic effect that the freedom to move and alter features from one of these domains to another has had on the design of this system (which has not been implemented). This freedom simplified both incremental compilation and the system's addressing structure, and centralized the communication mechanisms enabling the construction of hierarchical subsystems. It also suggested an important new concept for operating systems: separation of the scheduling from the maintenance functions in resource allocation. This separation enables incorporation of new scheduling algorithms (decision of what to do) without endangering the system integration (correctly performing the scheduling decisions). .A Balzer, R. M. .K concurrent design, operating-system, scheduling, interprogram communication, incremental compilation, virtual addressing, debugging, hierarchical subsystems .I 2542 .T A Software Design and Evaluation System .W A critical failure of current software system design and implementation methodology is that the performance of a proposed design is not evaluated before it is actually implemented. In this paper the reasons for this failure are explored, and a new methodology which overcomes many of the difficulties is proposed. A system which integrates performance evaluation with design and implementation is described. This system is based on a simple, high level language which is used to describe the evolving system at all stages of its development. The source language description is used as direct input to performance analysis and simulation routines. Using the performance information obtained from these routines as feedback, the problems which adversely affect performance are detected early enough so that they can be corrected without costly major reimplementation of the proposed system. .A Graham, R. M. Clancy, G. J. Jr. DeVaney, D. B. .K operating system development, language processing software evaluation, compilers, system programming, supervisory systems, debugging, program maintenance, modeling, system integration, simulation .I 2543 .T Reducing the Retrieval Time of Scatter Storage Techniques .W A new method for entering and retrieving information in a hash table is described. The method is intended to be efficient if most entries are looked up several times. The expected number of probes to look up an entry, predicted theoretically and verified by Monte Carlo experiments, is considerably less than for other comparable methods if the table is nearly full. An example of a possible Fortran implementation is given. .A Brent, R. P. .K address calculation, content addressing, file searching, hash addressing, hash code, linear probing, linear quotient method, scatter storage, searching, symbol table .I 2544 .T Automatic Error bounds for Simple Zeros of Analytic Functions .W The Cauchy-Ostrowski theorem on convergence of Newton iterates for an analytic function in one variable is extended to include computational errors using complex interval arithmetic. Several numerical examples are given for polynomials with real and complex roots and one example for the Bessel function of the first kind. .A Rokne, J. .K real intervals, complex intervals, real interval arithmetic, complex interval arithmetic, Newton's method, Cauchy-Ostrowski theorem, zeros of polynomials, zeros of Bessel functions .I 2545 .T A Theory of Discrete Patterns and Their Implementation in SNOBOL4 .W The notion of a discrete pattern is formalized and certain properties deduced. A pattern is shown to be a generalization of a formal language. Algorithms for implementing the kinds of patterns in SNOBOL4 are given. The general approach is to create, in-so-far as possible, a bottom-up parse from a top-down specification. .A Gimpel, J. F. .K patterns, SNOBOL4, pattern theory, parsing, pattern matching, string processing, pattern implementation .I 2546 .T The Use of Grammatical Inference for Designing Programming Languages .W Both in designing a new programming language and in extending an existing language, the designer is faced with the problem of deriving a "natural" grammar for the language. We are proposing an interactive approach to the grammar design problem wherein the designer presents a sample of sentences and structures as input to a grammatical inference algorithm. The algorithm then constructs a grammar which is a reasonable generalization of the examples submitted by the designer. The implementation is presently restricted to a subclass of operator precedence grammars, but a second algorithm is outlined which applies to a larger class of context-free grammars. .A Crespi-Reghizzi, S. Melkanoff, M. A. Lichten, L. .K grammar design, language definition, inference, identification in the limit, extensible languages .I 2547 .T Representation of Contours ad Regions for Efficient Computer Search .W A novel computer-searchable representation for the three basic pictorial features, contour maps, region coverage, and line structures, is described. The representation, which has practical storage requirements, provides a rapid mean of searching large files for data associated with geometric position as well as with attribute value. An application of this representation to handling terrain information illustrates its utility. The algebraic properties of the data structure make it computationally easy to determine whether a point lies within a closed boundary; compute the area contained by a closed boundary; generate the closed boundary representing the union or intersection of two closed boundaries; and determine the neighboring boundaries to a point and the minimum distances between them and the point. .A Merrill, R. D. .K contour map representation, region boundary representation, computer-search-able structure, graphic data retrieval, graphic language, two-dimensional patterns, computer graphics, graphic display .I 2548 .T Normal Deviate [S14] (Algorithm A442) .A Hill, G. W. Davis, A. W. .K normal distribution inverse, probit transform, Taylor series approximation .I 2549 .T Random Deviates from the Dipole Distribution [G5] (Algorithm A441) .A Knop, R. E. .K random number, probability density, probability distribution, Dipole distribution, Cauchy distribution, simulation, Monte Carlo .I 2550 .T A Multidimensional Monte Carlo Quadrature with Adaptive Stratified Sampling [D1] (Algorithm A440) .A Gallaher, L. J. .K Monte Carloquadrature, stratified sampling, adaptive quadrature, sequential stratification .I 2551 .T Mutual Recursion in Algol 60 Using Restricted Compilers .A Atkins,M. S. .K Algol 60, mutual recursion, compiler restrictions .I 2552 .T A Note on When To Chain Overflow Items Within a Direct-Access Table .A Bays, C. .K hash code, open hash, chaining, information retrieval, collision .I 2553 .T The Practical Aspect of Computer Science Education-Discussion .A Blount, S. E. .K education, computer engineering, computer science curriculum, systems design .I 2554 .T Reduction of a Band-Symmetric Generalized Eigenvalue Problem .W An algorithm is described for reducing the generalized eigenvalue problem Ax = lambda Bx to an ordinary problem, in case A and B are symmetric band matrices with B positive definite. If n is the order of the matrix and m the bandwidth, the matrices A and B are partitioned into m-by-m blocks; and the algorithm is described in terms of these blocks. The algorithm reduces the generalized problem to an ordinary eigenvalue problem for a symmetric band matrix C whose bandwidth is the same as A and B. The algorithm is similar to those of Rutishauser and Schwartz for the reduction of symmetric matrices to band form. The calculation C requires order mn^2 operation. The round-off error in the calculation of C is of the same order as the sum of the errors at each of the n/m steps of the algorithm, the latter errors being largely determined by the condition of B with respect to inversion. .A Crawford, C. R. .K generalized eigenvalues, symmetric band matrices .I 2555 .T Variable-Precision Exponentiation .W A previous paper presented an efficient algorithm, called the Recomputation Algorithm, for evaluating a rational expression to within any desired tolerance on a computer which performs variable-precision arithmetic operations. The Recomputation Algorithm can be applied to expressions involving any variable-precision operations having O(10^(-p) + SUM{|Ei|}) error bounds, where p denotes the operation's precision and Ei denotes the error in the operation's ith argument. This paper presents an efficient variable-precision exponential operation with an error bound of the above order. Other operations such as log, sin, and cos, which have simple series expansions, can be handled similarly. .A Richman, P. L. .K variable-precision, exponential function, error analysis, interval arithmetic .I 2556 .T Adaptive Correction of Program Statements .W A method of analyzing statements in a programming language which can tolerate a considerable inaccuracy in their specification is proposed. This method involves principles at present mainly confined to studies in the area of artificial intelligence such as feature extraction, approximate tree matching, and strategy improvement by feedback from the matching process. A pilot program incorporating the principles is described and preliminary operating results are presented. A final section surveys further principles which are currently being investigated. .A James, E. B. Partridge, D. P. .K adaptive, linguistic pattern matching, automatic parsing, approximate match, compiler, program statement analysis, syntax analysis .I 2557 .T On the Time Required for a Sequence of Matrix Products .W This paper discusses the multiplication of conformable sequences of row vectors, column vectors, and square matrices. The minimum time required to evaluate such products on ordinary serial computers as well as parallel computers is discussed. Algorithms are presented which properly parse such matrix sequences subject to the constraints of the machine organization. .A Muraoka, Y. Kuck, D. J. .K matrix expressions, matrix multiplication, operation minimization, parallel machine, time minimization .I 2558 .T Protection in Programming Languages .W Linguistic mechanisms which can be used to protect one subprogram from another's malfunctioning are described. Function-producing functions and various type-tagging schemes are considered. An attempt is made to distinguish between access limitation and authentication. .A Morris, J. H. Jr. .K protection, types, environments,trademarks, seals, access keys, access control authentication, secrecy .I 2559 .T The Reallocation of Hash-Coded Tables .W When the space allocation for a hash-coded table is altered, the table entries must be rescattered over the new space. A technique for accomplishing this rescattering is presented. The technique is independent of both the length of the table and the hashing function used, and can be utilized in conjunction with a linear reallocation of the table being rescattered. Moreover, it can be used to eliminate previously flagged deletions from any hash-coded table, or to change from one hashing method to another. The efficiency of the technique is discussed and theoretical statistics are given. .A Bays, C. .K reallocation, dynamic storage, hash code, scatter storage, deletions .I 2560 .T A Queuing Model of a Multiprogrammed Computer with a Two-Level Storage System .W The results are presented of an analysis of a probabilistic model of a multiprogrammed computer system with a two-level storage system in which there is sequential dependency of accesses between the devices. Expressions are obtained for the long-run probability that both the CPU and each of the storage devices are busy. Some numerical results are given which quantify the gains in CPU utilization obtainable by multiprogramming in the presence of this type of storage system. .A Shedler, G. S. .K multiprogrammed computer system, storage system, hierarchical index sets .I 2561 .T A Heuristic Approach to Inductive Inference in Fact Retrieval Systems .W Heuristic procedures are presented which have been developed to perform inferences by generalizing from available information. The procedures make use of a similarity structure which is imposed on the data base using nonnumerical clustering algorithms. They are implemented in a model fact retrieval system which uses a formal query language and a property-list data structure. A program of experiments is described wherein the procedures are used with test data bases which are altered by deleting part of the data and by purposely introducing false data. It is found that the system can infer the correct response under a variety of conditions involving incomplete and inconsistent data. .A Skinner, C. W. .K inference, inductive inference, clustering, fact retrieval, heuristics .I 2562 .T Routing Problem (Algorithm R456) .A Tesch, G. .I 2563 .T Merge Sort Algorithm (R426) .A Bron, C. .I 2564 .T Hidden-Line Plotting Program (Algorithm R420) .A Ellis, T. M. R. .I 2565 .T A Gaussian Pseudo-Random Number Generator (Algorithm 488) .A Brent, R. P. .K random numbers, pseudo-random numbers, Gaussian distribution, normal distribution .I 2566 .T Exact Cumulative Distribution of the Kolmogorov-Smirnov Statistic for Small Samples (Algorithm A487) .A Pomeranz, J. .K Kolmogorov-Smirnov test, K-S statistic, goodness-of-fit testing .I 2567 .T An Exponential Method for the Solution of Systems of Ordinary Differential Equations .W An explicit, coupled, single-step method for the numerical solution of initial value problems for systems of ordinary differential equations is presented. The method was designed to be general purpose in nature but to be especially efficient when dealing with stiff systems of differential equations. It is, in general, second order except for the case of a linear system with constant coefficients and linear forcing terms; in that case, the method is third order. It has been implemented and put to routine usage in biological applications-where stiffness frequently appears-with favorable results. When compared to a standard fourth order Runge-Kutta implementation, computation time required by this method has ranged from comparable for certain nonstiff problems to better than two orders of magnitude faster for some highly stiff systems. .A Chu, S. C. Berman, M. .K numerical solution, ordinary differential equations, initial value problems, stiff systems .I 2568 .T A Graph Formulation of a School Scheduling Algorithm .W The problem classically titled "The Examination Schedule Problem" takes various forms in the literature. Most of these formulations can be presented in the terminology of classical Network Theory. One such formulation is: Given a nondirected network, partition its nodes into a minimal number of subsets such that no two members of the same subset are connected by anarc. An obvious lower limit to this number is the size of the largest strongly connected subgraph. Kirchgassner proved that an upper limit is this size plus one. One logical extension of the previous work is the introduction of variable length examinations where W(I) is the number of periods for exam I. The object of this paper is to generalize the definition of largest strongly connected subgraph to include the weighting of nodes, to present an approximate algorithm which usually finds the largest strongly connected subgraph, and to discuss the application of this algorithm to the solution of school scheduling and exam scheduling problems. .A Salazar, A. Oakford, R. V. .K scheduling, school scheduling, examination scheduling, nondirected network, graph, subgraph, strongly connected subgraph .I 2569 .T Computer Generation of Gamma Random Variates with Non-integral Shape Parameters .W When the shape parameter, a, is integral, generating gamma random variables with a digital computer is straightforward. There is no simple method for generating gamma random variates with non-integral shape parameters. A common procedure is to approximately generate such random variables by use of the so-called probability switch method. Another procedure, which is exact, is due to Johnk. This paper presents a rejection method for exactly generating gamma random variables when a is greater than 1. The efficiency of the rejection method is shown to be better than the efficiency of Johnk's method. The paper concludes that when a is non-integral the following mix of procedures yields the best combination of accuracy and efficiency: (1) when a is less than 1, use Johnk's method; (2) when 1 is less than a and a is less than 5, use the rejection method; (3) when a is greater than 5, use the probability switch method. .A Wallace, N. D. .K simulation, gamma random variables, probability distribution, random numbers .I 2570 .T A Comparison of List Schedules for Parallel Processing Systems .W The problem of scheduling two or more processors to minimize the execution time of a program which consists of a set of partially ordered tasks is studied. Cases where task execution times are deterministic and others in which execution times are random variables are analyzed. It is shown that different algorithms suggested in the literature vary significantly in execution time and that the B-schedule of Coffman and Graham is near-optimal. A dynamic programming solution for the case in which execution times are random variables is presented. .A Adam, T. L. Chandy, K. M. Dickson, J. R. .K parallel processing, precedence graphs, scheduling, list scheduling, optimization, dynamic programming .I 2571 .T An Analytic Model of the Hasp Execution Task Monitor .W The HASP Execution Task Monitor periodically rearranges the OS/360 dispatching chain to give tasks preemptive execution priority in inverse order to that of their cpu utilization history. The effect is to keep the I/O bound tasks active and to prevent cpu bound tasks from locking out other tasks. This paper develops a simple model of the Execution Task Monitor and employs it to study the effectiveness of the monitor in improving system performance. A modified strategy monitor control is investigated for the case of task execution in a memory hierarchy of varying speeds. .A Strauss, J. C. .K Hasp, OS/360, dispatching, scheduling, modeling, performance evaluation .I 2572 .T Arguments for a Moratorium on the Construction of a Community Information Utility .W In this article the author urges a prudent and decentralized approach to the question of the design and desirability of computerized community information utilities. Before accepting the inevitability and desirability of this or any technology, we should: (1) be sure of the feasibility (internally and externally) of what is proposed; (2) project and perhaps wait for changes in complementary techniques; (3) evaluate current and projected supplementary techniques; (4) establish the existence of demand for what is proposed; (5) take steps to involve a representative group of ultimate users in systems design, and (6) carefully think through possible side effects on man and his world view. Current proposals for community information utilities are examined in this framework, and the conclusion is drawn that society is not yet in a position to justify either the construction of an information utility in a prototype community or the acceptance of a policy in favor of its widespread implementation. .A Press, L. I. .K community information utilities, social implications, public policy .I 2573 .T Computer Programming as an Art .A Knuth, D. E. .I 2574 .T Multiple Exists from a Loop Using Neither GO TO nor Labels .A Evans, R. V. .K goto free programming, control structures, multiple exists from loops, exit statement .I 2575 .T The Best-Match Problem in Document Retrieval .A Van Rijsbergen, C. J. .K document retrieval, best match, clustering, file searching, matching, dissimilarity, hierarchy, classification .I 2576 .T A Simple Technique for Representing Strings in Fortran IV .A Hanson, D. R. .K string processing, Fortran IV, string representation,structured programming, data structures .I 2577 .T An On-Site Data Management System Application in Field Archaeology .A Brown, J. A. Werner, B. .K APL-PLUS, archaeology, Koster prehistoric site data management, retrieval systems .I 2578 .T Self-stabilizing Systems in Spite of Distributed Control .A Dijkstra, E. W. .K multiprocessing, networks, self-stabilization, synchronization, mutual exclusion, robustness, sharing, error recovery, distributed control, harmonious cooperation, self-repair .I 2579 .T Register Allocation Via Usage Counts .W This paper introduces the notion of usage counts, shows how usage counts can be developed by algorithms that eliminate redundant computations, and describes how usage counts can provide the basis for register allocation. The paper compares register allocation based on usage counts to other commonly used register allocation techniques, and presents evidence which shows that the usage count technique is significantly better than these other techniques. .A Freiburghouse, R. A. .K optimization, redundant computations, common subexpressions, register allocation, compilers, programming languages, virtual memory, demand paging .I 2580 .T A Method for Composing Simple Traditional Music by Computer .W A method is described for composing musical rounds by computer. This method uses some music theory plus additional heuristics. Fundamental to the method is a set of productions together with sets of applicability rules and weight rules which operate on the productions deciding when and to what extent they are available for use. Several rounds generated by the computer implementation of the method are presented. Generally, the resultant music sounds mediocre to the professional although usually pleasing to the layman. It appears that full-blown music theory is not needed for rounds--all the hardware required for structural levels is not necessary for these pieces. The author has tried to address both musicians and computer scientists. .A Rader, G. M. .K artificial intelligence, heuristic programming, models of cognitive processes, computer music, computer composition, music theory, formal languages, probabilistic grammars .I 2581 .T A Locally-Organized Parser for Spoken Input .W This paper describes LPARS, a locally-organized parsing system, designed for use in a continuous speech recognizer. LPARS processes a string of phonemes which contains ambiguity and error. The system is locally-organized in the sense that it builds local parse structures from reliable word candidates recognized anywhere in an input utterance. These local structures are used as "islands of reliability" to guide the search for more highly garbled words which might complete the utterance. .A Miller, P. L. .K parsing, speech recognition, speech understanding, augmented transition network, local parsing .I 2582 .T Improving Locality by Critical Working Sets .W A new approach to program locality improvement via restructuring is described. The method is particularly suited to those systems where primary memory is managed according to a working set strategy. It is based on the concept of critical working set, a working set which does not contain the next memory reference. The data the method operates upon are extracted from a trace of the program to be restructured. It is shown that, except in some special cases, the method is not optimum. However, the experimental results obtained by using the method to restructure an interactive text editor and the file system module of an operating system have shown its substantial superiority over the other methods proposed in the literature. .A Ferrari, D. .K program restructuring, program segmentation, locality improvement, memory hierarchies, virtual memory, multiprogramming, restructuring techniques, static restructuring, dynamic restructuring, working set strategy, critical working set .I 2583 .T Guidelines for Humanizing Computerized Information Systems: A Report from Stanley House .A Sterling, T. D. .K humanization, social implication, management, information systems, regulations, social and behavioral sciences, philosophy .I 2584 .T Enumerating Full-Time Programmers .W Data from the 1970 Census and the Department of Labor's Area Wage Surveys are used to derive estimates of the number of full-time programmers employed during the years 1969 through 1973. The 1973 figure of 180,000 is considerably less than suggested in earlier reports. It is recommended that educational administrators consider whether the many courses aimed at training programmers are justified on a vocational basis. .A Gilchrist, B. Weber, R. E. .K programmer, employment, 1970 Census, Area Wage Survey .I 2585 .T Efficient Implementation of a Variable Projection Algorithm for Nonlinear Least Squares Problems (Errata) .A Krogh, F. T. .I 2586 .T Adapting Optimal Code Generation for Arithmetic Expressions to the Instruction Sets Available on Present-Day Computers (Errata) .A Stockhausen, P. F. .I 2587 .T On the Construction of a Representative Synthetic Workload (Errata) .A Sreenivarsan, K. Kleinman, A. J. .I 2588 .T Rosenbrock Function Minimization (Algorithm R450) .A Klemes, J. Klemsa, J. .I 2589 .T A Computer Routine for Quadratic and Linear Programming Problems (Algorithm R431) .A Proll, L. G. .I 2590 .T Hypergeometric (Algorithm C191) .A Kopelaar, H. .I 2591 .T Numerical Inversion of Laplace Transform (Algorithm A486) .A Veillon, F. .K Laplace transform inversion .I 2592 .T On Generation of Test Problems for Linear Programming Codes .W Users of linear programming computer codes have realized the necessity of evaluating the capacity, effectiveness, and accuracy of the solutions provided by such codes. Large scale linear programming codes at most installations are assumed to be generating correct solutions without ever having been "bench-marked" by test problems with known solutions. The reason for this failure to adequately test the codes is that rarely are there large problems with known solutions readily available. This paper presents a theoretical justification and an illustrative implementation of a method for generating linear programming test problems with known solutions. The method permits the generation of test problems that are of arbitrary size and have a wide range of numerical characteristics. .A Charnes, A. Raike, W. M. Stutz, J. D. Walters, A. S. .K linear programming, test problem generation, LP program evaluation, LP program validation .I 2593 .T A Back-end Computer for Data Base Management .W It is proposed that the data base management function be placed on a dedicated back-end computer which accepts commands (in a relatively high level language such as the CODASYL Data Base Task Group, April 1971 Report) from a host computer, accesses the data base on secondary storage, and returns results. The advantages of such a configuration are discussed. An experimental implementation, called the experimental Data Management System, XDMS, is described and certain conclusions about the back-end approach are drawn from this implementation. .A Canaday, R. H. Harrison, R. D. Ivie, E. L. Ryder, J. L. Wehr, L. A. .K data base management, information retrieval, computer configurations, computer networks, Data Base Task Group Language, data base protection, data base portability, back-end computer .I 2594 .T Structured Data Structures .W Programming systems which permit arbitrary linked list structures enable the user to create complicated structures without sufficient protection. Deletions can result in unreachable data elements, and there is no guarantee that additions will be performed properly. To remedy this situation, this paper proposes a gauge which provides for the creation of a restricted class of data structures but ensures the correctness of the program. This is accomplished by an explicit structure declaration facility, a restriction on the permissible operations, and execution-time checks. .A Shneiderman, B. Scheuermann, P. .K structured programming, data structures, data base management system .I 2595 .T A Note on the Calculation Working Set Size .W Finite-length reference string of arbitrary structure are considered, and an exact expression for average working set size in terms of "corrected" interreference interval statistics is derived. An example is discussed; upper and lower bounds are obtained; and the average working set size function is shown to be efficiently obtained for a set of page sizes, in a single pass of the reference string. This work follows the developments of a paper by Denning and Schwartz, who consider infinite-length reference strings which satisfy certain statistical properties and who derive an expression relating the asymptotic average working set size to the asymptotic missing page rate function under working set replacement. .A Slutz, D. R. Traiger, I. L. .K working-set model, paging, program behavior .I 2596 .T A Weighted Buddy Method for Dynamic Storage Allocation .W An extension of the buddy method, called the weighted buddy method, for dynamic storage allocation is presented. The weighted buddy method allows block sizes of 2^k and 3(2^k), whereas the original buddy method allowed only block sizes of 2^k. This extension is achieved at an additional cost of only two bits per block. Simulation results are presented which compare this method with the buddy method. These results indicate that for a uniform request distribution, the buddy system has less total memory fragmentation than the weighted buddy algorithm. However, the total fragmentation is smaller for the weighted buddy method when the requests are for exponentially distributed block sizes. .A Shen, K. K. Peterson, J. L. .K weighted buddy algorithm, buddy systems, memory allocation, dynamic storage allocation .I 2597 .T Monitors: An Operating System Structuring Concept .W This paper develops Brinch-Hansen's concept of a monitor as a method of structuring an operating system. It introduces a form of synchronization, describes a possible method of implementation in terms of semaphores and gives a suitable proof rule. Illustrative examples include a single resource scheduler, a bounded buffer, an alarm clock, a buffer pool, a disk head optimizer, and a version of the problem of readers and writers. .A Hoare, C. A. R. .K monitors, operating systems, scheduling, mutual exclusion, synchronization, system implementation languages, structured multiprogramming .I 2598 .T Extending the Information Theory Approach to Converting Limited-Entry Decision Tables to Computer Programs .W This paper modifies an earlier algorithm for converting decision tables into flowcharts which minimize subsequent execution time when compiled into a computer program. The algorithms considered in this paper perform limited search and, accordingly, do not necessarily result in globally optimal solutions. However, the greater search effort needed to obtain a globally optimal solution for complex decision tables is usually not justified by sufficient savings in execution time. There is an analogy between the problem of converting decision tables into efficient flowcharts and the well-understood problem in information theory of noiseless coding. The results of the noiseless coding literature are used to explore the limitations of algorithms used to solve the decision table problem. The analogy between the two problems is also used to develop improvements to the information algorithm in extending the depth of search under certain conditions and in proposing additional conditions to be added to the decision table. Finally, the information algorithm is compared with an algorithm proposed in a recent paper by Verhelst. .A Shwayder, K. .K coding, decision tables, flowcharting, information theory, noiseless channel, sorting .I 2599 .T First Order Approximation to the Optimum Checkpoint Interval .A Young, J. W. .K checkpoint, job failure, operations, programming checkpoint, random failure, operations, programming .I 2600 .T Computation of g-Splines via a Factorization Method [E2] (Algorithm A485) .A Eidson, H. D. Schumaker, L. L. .K approximation, spline approximation .I 2601 .T Evaluation of the Modified Bessel Functions K0(Z) and K1(Z) for Complex Arguments [S17] (Algorithm A484) .A Burrell, K. H. .K Bessel functions, Hankel functions, modified Bessel functions, Gauss-Hermite quadrature .I 2602 .T Masked Three-Dimensional Plot Program with Rotations [J6] (Algorithm A483) .A Watkins, S. L. .K plotting, three-dimensional plotting .I 2603 .T The Equivalence of Reducing Transition Languages and Deterministic Languages .W The class of reducing transition languages introduced by Eickel, Paul, Bauer, and Samelson was shown by Morris to be a proper superclass of the simple precedence languages. In this paper this result is extended, showing that, in fact, the first class is equivalent to the class of deterministic context free languages. .A Schkolnick, M. .K reducing transition languages, syntax controlled generators, deterministic context-free grammars .I 2604 .T An Interactive Graphic Display for Region Partitioning by Linear Programming .W Using linear programming, an interactive graphic display system has been implemented to solve the region design problem of partitioning a region into N nonoverlapping subregions in such a way that their areas are in specified proportions and that the total cost of servicing them is a minimum. In a conversational manner, a user can easily obtain different partitionings by specifying and modifying the boundary, the service centers' locations, the area proportions, and the cost functions. Examples are included. .A Cheung, T. .K interactive graphic display, region partitioning, area specification, linear programming .I 2605 .T A Precise Numerical Analysis Program .W A description is given of a program for computing the solution to a small number of standard numerical analysis problems to any specified accuracy, up to a limit of 2000 correct decimal places. Each computed number is bounded in an interval with a multiple precision midpoint. Arithmetic operations involving these numbers are executed according to interval arithmetic concepts, with non-significant digits automatically discarded. Details are supplied of problem specification and problem computation. .A Aberth, O. .K interval arithmetic, multiple precision, list structure, error control .I 2606 .T A New Integration Algorithm for Ordinary Differential Equations Based on Continued Fraction Approximations .W A new integration algorithm is found, and an implementation is compared with other programmed algorithms. The new algorithm is a step-by-step procedure for solving the initial value problem in ordinary differential equations. It is designed to approximate poles of small integer order in the solutions of the differential equations by continued fractions obtained by manipulating the sums of truncated Taylor series expansions. The new method is compared with Gragg-Bulirsh-Stoer, and the Taylor series method. The Taylor series method and the new method are shown to be superior in speed and accuracy, while the new method is shown to be most superior when the solution is required near a singularity. The new method can finally be seen to pass automatically through singularities where all the other methods which are discussed will have failed. .A Willers, I. M. .K ordinary differential equations, initial value problem, integration, Taylor series, singularities, continued fractions, program comparison .I 2607 .T A Problem-List of Issues Concerning Computers and Public Policy .A ACM Committee .K economic and sociological effects, the public and computers .I 2608 .T Recurrence Relations for the Fresnel Integral and Similar Integrals .A Acton, F. S. .K recurrence relations, Fresnel integral, exponential integral .I 2609 .T Interpolation with Rounded Ramp Functions .W A new interpolation function is introduced. It has infinitely many continuous derivatives and is a composition of ramp functions with smoothed bends called Rounded Ramp Functions. How the interpolation function can be extended to more than one variable is shown. An efficient Fortran program is given by which the interpolation function can be obtained for a given point set. .A Lagerlof, R. O. E. .K interpolation, approximation, smooth interpolation, multi variable interpolation, interpolation function, approximation function, spline-like function .I 2610 .T Gauss Harmonic Interpolation Formulas .W Let R be an open, bounded, simply connected region in the (x,y)-plane and let (x*,y*) be a point in R. Assuming R is starlike with respect to (x*,y*), we discuss a method for computing Gauss harmonic interpolation formulas for R and the point (x*,y*). Such formulas approximate a harmonic function at (x*,y*) in terms of a linear combination of its values at certain selected points on the boundary of R. Such formulas are useful for approximating the solution of the Dirichlet problem for R. .A Stroud, A. H. .K interpolation, quadrature, harmonic interpolation, harmonic quadrature, Dirichlet problem .I 2611 .T The Complex Method for Constrained Optimization (Algorithm R454) .A Shere, K. D. .I 2612 .T Rosenbrock Function Minimization (Algorithm R450) .A Bultheel, A. .I 2613 .T Transitivity Sets [G7] (Algorithm A482) .A McKay, J. Regener, E. .K transitivity, sets .I 2614 .T Arrow to Precedence Network Transformation [H] (Algorithm A481) .A Crandall, K. C. .K critical path, networks, precedence networks .I 2615 .T Procedures for computing Smoothing and Interpolating Natural Splines [E1] (Algorithm A480) .A Lyche, T. Schumaker, L. L. .K approximation, interpolation, spline, natural spline, spline smoothing .I 2616 .T On the Conversion of Programs to Decision Tables: Method and Objectives .W The problems of converting programs to decision tables are investigated. Objectives of these conversions are mainly program debugging and optimization in practice. Extensions to the theory of computation and computability are suggested. .A Cavouras, J. C. .K decision tables, program optimization, debugging, semantics, theory of programming, systems analysis .I 2617 .T A Note on Subexpression Ordering in the Evaluation of Arithmetic Expressions .A Denning, P. J. Graham, G. S. .I 2618 .T A New Solution of Dijkstra's Concurrent Programming Problem .W A simple solution to the mutual exclusion problem is presented which allows the system to continue to operate despite the failure of any individual component. .A Lamport, L. .K critical section, concurrent programming, multiprocessing, semaphores .I 2619 .T Graph Coloring Conditions for the Existence of Solutions to the Timetable Problem .W A necessary and sufficient condition is presented for the existence of a solution to the Gotlieb class-teacher timetable problem. Several relationships are established between the class-teacher timetable problem and graphs with preconditions. These preconditions place additional restrictions on the coloration of a graph. The preconditions correspond to the unavailability constraints and preassigned meetings in the class-teacher timetable problem. Using some recent results that convert graphs with preconditions to graphs without them, it is shown that the existence of a coloration of a graph is the required necessary and sufficient condition. .A Neufeld, G. A. Tartar, J. .K graphs, coloration, preassignment, prevention of assignment, class-teacher timetables .I 2620 .T Execution Time Requirements for Encipherment Programs .W Although encipherment has often been discussed as a means to protect computer data, its costs are not well established. Five experiments were conducted to measure the cpu time on a CDC 6400 required by additive ciphers programmed both in assembly language and in Fortran: a "null transformation" to measure the time to move data without encipherment; encipherment with one-word key; encipherment with a 125-word key; double key encipherment; and encipherment using a pseudo random key. The results were analyzed for consistency over 100 runs, and the effects of constant and intermittent errors were considered. Timing rates for assembly language encipherment ranged from 498,800 characters per second for a pseudo random key cipher to 2,092,000 characters per second for a constant one-word key cipher. The latter is almost equivalent to the rate required simply to move data without encipherment. Fortran tests required over four times as much cpu time. This paper introduces the idea on enciphering time coefficient the ratio of enciphering time to the time taken to fetch and store data without encipherment. .A Friedman, T. D. offman, L. J. .K encipherment, ciphers, security, privacy transformations, protection, cryptography, cryptology .I 2621 .T A High Security Log-in Procedure .W The protection of time sharing systems from unauthorized users is often achieved by the use of passwords. By using one-way ciphers to code the passwords, the risks involved with storing the passwords in the computer can be avoided. We discuss the selection of a suitable one-way cipher and suggest that for this purpose polynomials over a prime modulus are superior to one-way ciphers derived from Sannon codes. .A Purdy, G. B. .K operating systems, time sharing systems, security, cryptography .I 2622 .T A User Authentication Scheme Not Requiring Secrecy in the Computer .W In many computer operating systems a user authenticates himself by entering a secret password known solely to himself and the system. The system compares this password with one recorded in a Password Table which is available to only the authentication program. The integrity of the system depends on keeping the table secret. In this paper a password scheme is presented which does not require secrecy in the computer. All aspects of the system, including all relevant code and data bases, may be known by anyone attempting to intrude. The scheme is based on using a function H which the would-be intruder is unable to invert. This function is applied to the user's password and the result compared to a table entry, a match being interpreted as authentication of the user. The intruder may know all about H and have access to the table, but he can penetrate the system only if he can invert H to determine an input that produces a given output. This paper discusses issues surrounding selection of a suitable H. Two different plausible arguments are given that penetration would be exceedingly difficult, and it is then argued that more rigorous results are unlikely. Finally, some human engineering problems relating to the scheme are discussed. .A Evans, A. Jr. Kantrowitz, W. Weiss, E. .K operating system security, security, authentication, passwords, one-way encryption, cryptology .I 2623 .T A New Technique for Compression and Storage of Data .W The widespread tendency toward storage of large programs and blocks off text has produced a need for efficient methods of compressing and storing data. This paper describes techniques that can, in most cases, decrease storage size by a factor of from two to four. The techniques involve special handling of leading and trailing blanks, and the encoding of other symbols in groups of fixed size as unique fixed point numbers. The efficiency of the system is considered and pertinent statistics are given and compared with statistics for other information coding techniques. .A Hahn, B. .K file maintenance, information retrieval, utility programs, text compression, coding techniques, data storage, data management .I 2624 .T Formal Requirements for Virtualizable Third Generation Architectures .W Virtual machine systems have been implemented on a limited number of third generation computer systems, e.g. CP-67 on the IBM 360/67. From previous empirical studies, it is known that certain third generation computer systems, e.g. the DEC PDP-10, cannot support a virtual machine system. In this paper, model of a third-generation-like computer system is developed. Formal techniques are used to derive precise sufficient conditions to test whether such an architecture can support virtual machines. .A Popek, G. J. Goldberg, R. P. .K operating system, third generation architecture, sensitive instruction, formal requirements, abstract model, proof, virtual machine, virtual memory, hypervisor, virtual machine monitor .I 2625 .T Capability-Based Addressing .W Various addressing schemes making use of segment tables are examined. The inadequacies of these schemes when dealing with shared addresses are explained. These inadequacies are traced to the lack of an efficient absolute address for objects in these systems. The direct use of a capability as an address is shown to overcome these difficulties because it provides the needed absolute address. Implementation of capability-based addressing is discussed. It is predicted that the use of tags to identify capabilities will dominate. A hardware address translation scheme which never requires the modification of the representation of capabilities is suggested. The scheme uses a main memory hash table for obtaining a segment's location in main memory given its unique code. The hash table is avoided for recently accessed segments by means of a set of associative registers. A computer using capability-based addressing may be substantially superior to present systems on the basis of protection, simplicity of programming conventions, and efficient implementation. .A Fabry, R. S. .K addressing, capabilities, addressing hardware, protection, protection hardware, shared addresses, information sharing, operating systems, computer utility, segmentation, tagged architecture .I 2626 .T Protection and the Control of Information Sharing in Multics .W The design of mechanisms to control the sharing of information in the Multics system is described. Five design principles help provide insight into the tradeoffs among different possible designs. The key mechanisms described include access control lists, hierarchical control of access specifications, identification and authentication of users, and primary memory protection. The paper ends with a discussion of several known weaknesses in the current protection mechanism design. .A Saltzer, J. H. .K Multics, protection, security, privacy, access control, authentication, computer utilities, time-sharing systems, proprietary programs, protected subsystems, virtual memory, descriptors .I 2627 .T Scheduling Independent Tasks to Reduce Mean Finishing Time .W Sequencing to minimize mean finishing time (or mean time in system) is not only desirable to the user, but it also tends to minimize at each point in time the storage required to hold incomplete tasks. In this paper a deterministic model of independent tasks is introduced and new results are derived which extend and generalize the algorithms known for minimizing mean finishing time. In addition to presenting and analyzing new algorithms it is shown that the most general mean-finishing-time problem for independent tasks is polynomial complete, and hence unlikely to admit of a non-enumerative solution .A Bruno, J. Coffman, E. G. Jr. Sethi, R. .K minimizing mean finishing time, minimizing mean flow time, sequencing algorithms, optimal scheduling algorithms, deterministic scheduling models .I 2628 .T Minimal-Total-Processing Time Drum and Disk Scheduling Disciplines .W This article investigates the application of minimal-total-processing-time (MTPT) scheduling disciplines to rotating storage units when random arrival of requests is allowed. Fixed-head drum and moving-head drum and moving-head disk storage units are considered, and emphasis is placed on the relative merits of the MTPT scheduling discipline with respect to the shortest-latency-time-first (SLTF) scheduling discipline. The results of the simulation studies presented show that neither scheduling discipline is unconditionally superior to the other. For most fixed-head drum applications, the SLTF discipline is preferable to MTPT, but for intra-cylinder disk scheduling the MTPT discipline offers a distinct advantage over the SLTF discipline. The computational requirements of an algorithm that implements the MTPT scheduling discipline are shown to be comparable to SLTF algorithms. In both cases, the sorting procedure is the most time-consuming phase of the algorithm. .A Fuller, S. H. .K drum scheduling, disk scheduling, shortest-latency-time-first (SLTF), minimal-total-processing-time (MTPT), rotating storage units .I 2629 .T The UNIX Time-Sharing system .W UNIX is a general-purpose, multi-user, interactive operating system for the Digital Equipment Corporation PDP-11/40 and 11/45 computers. It offers a number of features seldom found even in larger operating systems, including: (1) a hierarchical file system incorporating demountable volumes; (2) compatible file, device, and inter-process I/O; (3) the ability to initiate asynchronous processes; (4) system command language selectable on a per-user basis; and (5) over 100 subsystems including a dozen languages.This paper discusses the nature and implementation of the file system and of the user command interface. .A Ritchie, D. M. Thompson, K. .K time-sharing, operating system, file system, command language, PDP-11 .I 2630 .T On Computing Sets of Shortest Paths in a Graph .W Two algorithms are presented that construct the k shortest paths between every pair of vertices in a directed graph. These algorithms generalize the Floyd algorithm and the Dantzig algorithm for finding the shortest path between every pair of vertices in a directed graph. .A Minieka, E. .K graph, network, shortest path, algorithm .I 2631 .T An Information-Theoretic Approach to Text Searching in Direct Access Systems .W Using direct access computer files of bibliographic information, an attempt is made to overcome one of the problems often associated with information retrieval, namely, the maintenance and use of large dictionaries, the greater part of which is used only infrequently. A novel method is presented, which maps the hyperbolic frequency distribution. This is more suited to implementation on storage devices. This method treats text as a string of characters rather than words bounded by spaces, and chooses subsets of strings such that their frequencies of occurrence are more even than those of word types. The members of this subset are then used as index keys for retrieval. The rectangular distribution of key frequencies results in a much simplified file organization and promises considerable cost advantages. .A Barton, I. J. Creasey, S. E. Lynch, M. F. Snell, M. J. .K text searching, information theory, file organization, direct access, information retrieval, character string, bit vector .I 2632 .T HYDRA: The Kernel of a Multiprocessor Operating System .W This paper describes the design philosophy of HYDRA-the kernel of an operating system for C.mmp, the Carnegie-Mellon Multi-Mini-Processor. This philosophy is realized through the introduction of a generalized notion of "resource", both physical and virtual, called an "object". Mechanisms are presented for dealing with objects, including the creation of new types, specification of new operations applicable to a given type, sharing, and protection of any reference to a given object against improper application of any of the operations defined with respect to that type of object. The mechanisms provide a coherent basis for extension of the system in two directions: the introduction of new facilities, and the creation of highly secure systems. .A Wulf, W. Cohen, E. Corwin, W. Jones, A. Levin, R. Pierson, C. Pollack, F. .K operating system, kernel, nucleus, protection, security .I 2633 .T Compact Representation of Contour Plots for Phone Line Transmission .W Methods for the compact representation of contour plots are described and tested. These are intended to reduce the cost of transmitting contour plots over phone lines. We feel some of these methods could be used to transmit contour plots over voice grade phone lines. .A Adams, J. Gary, J. .K contour plotting, data transmission, remote terminal, data compaction .I 2634 .T An Evaluation of Statistical Software in the Social Sciences .W Several hundred college and university computer installations now offer various types of statistical packages for general use. Among those most widely available are OSIRIS, SPSS, BMD, DATA-TEXT, and TSAR. In order to provide users with a basis for selection and use, tests were made for each of these systems, and the results are summarized as to cost and performance. .A Slysz, W. D. .K statistical computation, statistical software, descriptive statistics, bivariate tables, Pearson correlation, regression, factor analysis, one-way analysis of variance .I 2635 .T Exact Probabilities for R X C Contingency Tables (Algorithm R434) .A Boulton, D. M. .I 2636 .T Generation of Random Correlated Normal Variables (Algorithm R425) .A Page, R. L. .I 2637 .T Hidden-Line Plotting Program (Algorithm R420) .A Ellis, T. M. R. .I 2638 .T Hidden-Line Plotting Program (Algorithm R420) .A Gaither, B. .I 2639 .T Calculation of Fourier Integrals (Algorithm R418) .A Piessens, R. .I 2640 .T Modified Havie Integration (Algorithm R400) .A Piessens, R. .I 2641 .T A Minimal Spanning Tree clustering Method [Z] (Algorithm A479) .A Page, R. L. .K clustering, pattern recognition, feature selection, minimal spanning trees .I 2642 .T Solution of an Overdetermined System of Equations in the L1 Norm [F4] (Algorithm A478) .A Barrodale, I. Roberts, F. D. K. .K L1 approximation, L1 norm, overdetermined system of equations, linear programming, simplex method .I 2643 .T The Minimization of Spatially-Multiplexed Character Sets .W The paper describes a technique for compacting character sets in a digital computer while retaining fast access to individual bits. It considers the problem of minimizing the storage needed to contain such tables. Reduction techniques are developed, and the problem is shown to reduce to a covering problem. .A Gimpel, J. F. .K parsing, lexical analysis,scanning, string processing, spatial multiplexing .I 2644 .T A Theorem-Proving Language for Experimentation .W Because of the large number of strategies and inference rules presently under consideration in automated theorem proving, there is a need for developing a language especially oriented toward automated theorem proving. This paper discusses some of the features and instructions of this language. The use of this language permits easy extension of automated theorem-proving programs to include new strategies and/or new inference rules. Such extend ability will permit general experimentation with the various alternative systems. .A Henschen, L. Overbeek, R. Wos, L. .K theorem proving, resolution, factoring, paramodulation, programming languages .I 2645 .T Two Languages for Estimating Program Efficiency .W Two languages enabling their users to estimate the efficiency of computer programs are presented. The program whose efficiency one wishes to estimate is written in the first language, a go-to-less programming language which includes most of the features of Algol 60. The second language consists of interactive commands enabling its users to provide additional information about the program written in the first language and to output results estimating its efficiency. Processors for the two languages are also described. The first processor is a syntax-directed translator which compiles a program into a symbolic formula representing the execution time for that program. The sound processor is a set of procedures for that program. The second processor is a set of procedures for algebraic manipulation which can be called by the user to operate on the formula produced by the first processor. Examples of the usage of the two languages are included. The limitations of the present system, its relation to Knuth's work on the analysis of algorithms, and some of the directions for further research are also discussed. .A CCohen, J. Zuckerman, C. .K programming languages, syntax-directed translation, symbolic manipulation, program efficiency, analysis of algorithms .I 2646 .T A Model for Masking Rotational Latency by Dynamic Disk Allocation .W This paper presents the background and algorithms for masking the rotational latency of a disk or drum. It discusses the anticipatory input and output of blocks of data to buffer and primary memories for a mono-programmed computer system. A basic permutation algorithm and several variations are given. Because of the anticipatory nature of the I/O scheduling, these algorithms are restricted to classes of programs with predictable behavior. While the methods are not restricted to numerical computations, matrix and partial differential equation methods are typical examples of their use. It is shown that latency may be masked using a small amount of buffer memory. The methods discussed are independent of the overall size of the data base being considered. .A Gold, D. E. Kuck, D. J. .K buffer memory, memory hierarchy, permutation algorithm, rotational latency, staging, storage allocation .I 2647 .T More on Algorithms that Reveal Properties of Floating Point Arithmetic Units .A Gentleman, W. M. Marovich, S. B. .K floating-point arithmetic, high-level languages, philosophy of language design .I 2648 .T A Design for a Number Theory Package with an Optimized Trial Division routine .W A number theory package is described which uses doubly linked list structures for storing multiprecise integers. The package has been coded in IBM's Basic Assembly Language and makes heavy use of the macro language and conditional assembly. An optimally coded trial division routine is also described which can be used to determine the unique factorization of large integers. .A Wunderlich, M. C. Selfridge, J. L. .K number theory package, trial division, multiprecise arithmetic, factorization, doubly linked lists, pseudoprime .I 2649 .T On the Distributions of Significant Digits and Roundoff Errors .W Generalized logarithmic law is derived for the distribution of the first t significant digits of a random digital integer. This result is then used to determine the distribution of the roundoff errors in floating-point operations, which is a mixture of uniform and reciprocal distributions. .A Tsao, N. .K significant digits, floating-point operations, roundoff errors, uniform distribution, reciprocal distribution, variance, mean valve .I 2650 .T Order-n Correction for Regular Languages .W A method is presented for calculating a string B, belonging to a given regular language L, which is "nearest" (in number of edit operations) to a given input string a. B is viewed as a reasonable "correction" for the possibly erroneous string a, where a was originally intended to be a string of L. The calculation of B by the method presented requires time proportional to |a|, the number of characters in a. The method should find applications in information retrieval, artificial intelligence, and spelling correction systems. .A Wagner, R. A. .K error correction, regular languages, regular events, finite state automata, compiler error recovery, spelling correction, string best match problem, correction, corrector, errors, nondeterministic finite-state automata .I 2651 .T The Treatment of Data Types in EL1 .W In constructing a general purpose programming language, a key issue is providing a sufficient set of data types and associated operations in a manner that permits both natural problem-oriented notation and efficient implementation. The EL1 language contains a number of features specifically designed to simultaneously satisfy both requirements. The resulting treatment of data types includes provision for programmer-defined data types data types and generic routines, programmer control over type conversion, and very flexible data type behavior, in a context that allows efficient compiled code and compact data representation. .A Wegbreit, B. .K data types, modes, mode unions, type conversion, coercion, generic functions, extensible languages, data type definition, data description language, compilation .I 2652 .T Reduction of Compilation Costs Through Language Contraction .W Programming languages tailored to particular groups of users can often be constructed by removing unwanted features from a general purpose language. This paper describes the use of simulation techniques to predict the savings in compilation cost achievable by such an approach. The results suggest a function which describes the effect of changes in the power of a language on the compilation cost of an algorithm expressed in that language: when features not actually used by the algorithm are removed from the language, the cost of compiling the algorithm decreases moderately, but when features that are needed are removed, the compilation cost increases sharply. .A Shaw, M. .K design of programming languages, language contraction, compiler design, compilation cost, Algol .I 2653 .T Solution of the Transcendental Equation w*exp(x)=x (Algorithm R443) .A Einarsson, B. .I 2654 .T Generator of Set-Partitions to Exactly R Subsets [G7] (Algorithm A477) .A Ehrich, G. .K partitions, subset generation, permutations .I 2655 .T Six Subprograms for Curve Fitting Using Splines Under Tension [E2] (Algorithm A476) .A Cline, A. K. .K interpolation, splines, contouring, curve fitting .I 2656 .T Scalar- and Planar- Valued Curve Fitting Using Splines Under Tension .W The spline under tension was introduced by Schweikert in an attempt to imitate cubic splines but avoid the spurious critical points they induce. The defining equations are presented here, together with an efficient method for determining the necessary parameters and computing the resultant spline. The standard scalar-valued curve fitting problem is discussed, as well as the fitting of open and closed curves in the plane. The use of these curves and the importance of the tension in the fitting of contour lines are mentioned as application. .A Cline, A. K. .K interpolation, splines, contouring, curve fitting .I 2657 .T An Improved Program-Synthesizing Algorithm and Its Correctness .W An improved program-synthesizing algorithm based on the algorithm proposed by Waldinger and Lee in 1969 is given. In the old algorithm, the program-synthesizing problem is translated into a theorem-proving problem, and a program is obtained by analyzing a proof. For the improved algorithm, the analysis is not necessary, and a program is obtained as soon as the proof is completed. This is achieved by using a modified variable tracing mechanism invented by Green in 1969. The correctness of the improved algorithm is also proved; i.e. the program thus obtained always satisfies the specification. .A Lee, R. C. T. Chang, C. L. Waldinger, R. J. .K program-synthesizing algorithms, theorem proving, consequence finding, primitive resolutions .I 2658 .T An Alternative Approach to Mutual Recursion in Algol 60 Using Restricted Compilers .A Balfour, A. .K Algol 60, mutual recursion, compiler restrictions .I 2659 .T Some Remarks on Lookup of Structured Variables .A Abrahams, P. W. .K PL/1, symbol table, structured variables, qualified references, compilers .I 2660 .T Addendum to M. L. Patrick Paper .A Simmons, G. C. .K parallelism, polynomial root finding, real zeros .I 2661 .T Ideal Teaching Machines-A Solution to the Pedagogic Language Problem .A Sterling, T. D. Pollack, S. V. .K education, programming languages, simulators .I 2662 .T Graduate Education: The Ph.D. Glut: Response and Rebuttal .A Freeman, P. Malcolm, M. A. Payne, W. H. .K graduate education, Ph.D. production, accreditation .I 2663 .T A Study of Computer Use in a Graduate School of Business .A Lucas, H. C. Jr. Montgomery, D. B. Larreche, J. C. .K education, management, business schools .I 2664 .T Parallelism in Tape-Sorting .W Two methods for employing parallelism in tape-sorting are presented. Method A is the natural way to use parallelism. Method B is new. Both approximately achieve the goal of reducing the processing time by a divisor which is the number of processors. .A Even, S. .K tape sorting, parallelism, external sorting, queues, stacks .I 2665 .T Copying List Structures Using Bounded Workspace .W Two new algorithms are presented for list structure copying using bounded workspace. The first, of primarily theoretical interest, shows that without cell tag bits the task can be performed in time n^2. The second algorithm, assuming one tag bit in each cell, delivers attractive practical speed. Any noncyclic structure is copied in linear speed, while cyclic structures are copied in average time less than nlogn. No foreknowledge of cycle absence is necessary to achieve linear speed. A variation of the second algorithm solves an open problem concerning list structure marking. That result demonstrates that marking can be done in average time nlogn without the aid of supplemental tag bits or stacks. .A Lindstrom, G. .K list processing, copying, marking, space complexity .I 2666 .T On Lions' Counter Example for Gotlieb's Method for the Construction of School Timetables .W The timetable problem is an essentially discrete problem. Although the discrete problem may have no feasible solution, there may exist a solution to the equivalent continuous problem. An example is given, for which the nondiscrete solution can be interpreted as a set of timetables, differing from week to week, which together satisfy the long-term requirements of the timetable problem. .A Smith, G. Sefton, I. M. .K combinatorial, multi-index problem, necessary conditions, schedule, school timetable, timetable .I 2667 .T Execution Characteristics of Programs in a Page-on-Demand System .W Data are presented which show the execution characteristics of two types of commonly used programs in a large-scale, time-shared computer system. A software monitoring facility built into the supervisor was used for data collection during normal system operation. These data were analyzed, and results of this analysis are presented for a Fortran compiler and an interactive line file editor. Probability distribution functions and other data are given for such things as CPU intervals, I/O intervals, and the number of such intervals during execution. Empirical distributions are compared with simple theoretical distributions (exponential, hyperexponential, and geometric). Other data show paging characteristics of tasks as a function of the number of pages those tasks have in core. .A Boyse, J. W. .K program behavior, virtual memory, paging, demand paging, software monitor, program execution characteristics, compiler execution behavior, editor execution behavior .I 2668 .T Computation of Page Fault Probability from Program Transition Diagram .W An algorithm is given for calculating page fault probability in a virtual memory system operating under demand paging with various memory sizes and replacement rules. A first order Markov model of program behavior is assumed, and a representation of the system based on memory states, control states, and memory substates is presented. The algorithm is general in the sense that the page fault probabilities can be calculated for nonpredictive replacement rules applied to any program represented by a one-step Markov chain. A detailed example is given to illustrate the algorithm for Random and Least Recently Used (LRU) replacement rules. .A Franklin, M. A. Gupta, R. K. .K virtual memory, demand paging, replacement rule, program model, program behavior, Markov model, page fault, page fault probability .I 2669 .T A Simple Linear Model of Demand Paging Performance .W Predicting the performance of a proposed automatically managed multilevel memory system requires a model of the patterns by which programs refer to the information stored in the memory. Some recent experimental measurements on the Multics virtual memory suggest that, for rough approximations, a remarkably simple program reference model will suffice. The simple model combines the effect of the information reference pattern with the effect of the automatic management algorithm to produce a single, composite statement: the mean number of memory references between paging exceptions increases linearly with the size of the paging memory. The resulting model is easy to manipulate, and is applicable to such diverse problems as choosing an optimum size for a paging memory, arranging for reproducible memory usage charges, and estimating the amount of core memory sharing. .A Saltzer, J. H. .K paging, demand paging, memory models, program models, performance measurement, multilevel memory systems, virtual memory, associative memory, memory usage accounting, Multics .I 2670 .T Efficient Implementation of a Variable Projection Algorithm for Nonlinear Least Squares Problems .W Nonlinear least squares frequently arise for which the variables to be solved for can be separated into a linear and a nonlinear part. A variable projection algorithm has been developed recently which is designed to take advantage of the structure of a problem whose variables separate in this way. This paper gives a slightly more efficient and slightly more general version of this algorithm than has appeared earlier. .A Krogh, F. T. .K nonlinear least squares, parameter estimation, variable projection .I 2671 .T A Note on a Combinatorial Problem of Burnett and Coffman .A Stone, H. S. .K memories, interleaving, derangements, rencontres, combinatorial analysis .I 2672 .T Emotional Content Considered Dangerous .A Smoliar, S. W. .K artificial intelligence, heuristic programming, models of cognitive processes, computer music, computer composition, music theory .I 2673 .T Quadratic Search for Hash Tables of Size p^n .A Ackerman, A. F. .K hashing, quadratic search .I 2674 .T Scan Conversion Algorithms for a Cell Organized Raster Display .W Raster scan computer graphics with "real time" character generators have previously been limited to alphanumeric characters. A display has been described which extends the capabilities of this organization to include general graphics. Two fundamentally different scan conversion algorithms which have been developed to support this display are presented. One is most suitable to non-interactive applications and the other to interactive applications. The algorithms were implemented in Fortran on the CDC 6400 computer. Results obtained from the implementations show that the noninteractive algorithms can significantly reduce display file storage requirements at little cost in execution time over that of a conventional raster display. The interactive algorithm can improve response time and reduce storage requirements. .A Barrett, R. C. Fordan, B. W. Jr. .K graphics, scan conversion, raster display, line drawing, discrete image, dot generation, matrix displays .I 2675 .T A Computer Routine for Quadratic and Linear Programming Problems (Algorithm R431) .A Ravindran, A. .I 2676 .T Zeros of a Complex Polynomial (Algorithm R419) .A Withers, D. H. .I 2677 .T Incomplete Beta Ratio (Algorithm R179) .A Bosten, N. E. Battiste, E. L. .I 2678 .T Visible Surface Plotting Program [J6] (Algorithm A475) .A Wright, T. .K hidden line problem, computer graphics, contour surface .I 2679 .T Some Performance Tests of "quicksort" and Descendants .W Detailed performance evaluations are presented for six ACM algorithms: quicksort (No. 64), Shellsort (No. 201), stringsort (No. 207), "TREESORT3" (No. 245), quickersort (No. 271), and qsort (No. 402). Algorithms 271 and 402 are refinements of algorithm 64, and all three are discussed in some detail. The evidence given here demonstrates that qsort (No. 402) requires many more comparisons than its author claims. Of all these algorithms, quickersort requires the fewest comparisons to sort random arrays. .A Loeser, R. .K sorting, in-place sorting, sorting efficiency, sorting performance tests, quicksort, quickersort, qsort, Shellsort, stringsort, TREESORT3,utility sort algorithm, general-purpose sort algorithm, sorting algorithm documentation .I 2680 .T Optimal Space Allocation on Disk Storage Devices .W When the amount of space required for file storage exceeds the amount which can be kept on-line, decisions must be made as to which files are to be permanently resident and which mountable. These decisions will affect the number of mount requests issued to the operators. This is often a bottleneck in a computing facility, and reducing the number of mounts thus decreases turnaround time. An optimization model for the assignment of files to disk packs, and packs to either resident or nonresident status is presented. Heuristics are suggested for those cases in which it is inefficient to compute the actual optimum. .A Morgan, H. L. .K disk analysis, disk optimization, disk files,file systems, file scheduling, space allocation, memory hierarchy .I 2681 .T Dynamic Memory Repacking .W A probabilistic model of a multiprogramming system is exercised in order to determine the conditions under which the dynamic repacking of main memory is beneficial. An expression is derived for the maximum interference that a repacking process may introduce before the original performance of the system is degraded. Alternative approaches to repacking are discussed, and the operating conditions that lead to improved system throughput through repacking are delineated. .A Balkovich, E. Chiu, W. Presser, L. Wood, R. .K dynamic memory repacking, memory compaction,storage fragmentation, multiprogramming system model, probabilistic model, central processor productivity, resource utilization, system throughput .I 2682 .T On the Construction of a Representative Synthetic Workload .W A general method of constructing a drive workload representative of a real workload is described. The real workload is characterized by its demands on the various system resources. These characteristics of the real workload are obtained from the system accounting data. The characteristics of the drive workload are determined by matching the joint probability density of the real workload with that of the drive workload. The drive workload is realized by using a synthetic program in which the characteristics can be varied by varying the appropriate parameters. Calibration experiments are conducted to determine expressions relating the synthetic program parameters with the workload characteristics. The general method is applied to the case of two variables, cpu seconds and number of I/O activities; and synthetic workload with 88 jobs is constructed to represent a month's workload consisting of about 6000 jobs. .A Sreenivasan, K. Kleinman, A. J. .K benchmarks, calibration, drive workload, input to simulation, probability distribution, representative workload, synthetic workload, workload characteristics .I 2683 .T The Synthesis of Loop Predicates .W Current methods for mechanical program verification require a complete predicate specification on each loop. Because this is tedious and error prone, producing a program with complete, correct predicates is reasonably difficult and would be facilitated by machine assistance. This paper discusses techniques for mechanically synthesizing loop predicates. Two classes of techniques are considered: (1) heuristic methods which derive loop predicates from boundary conditions and/or partially specified inductive assertions: (2) extraction methods which use input predicates and appropriate weak interpretations to obtain certain classes of loop predicates by an evaluation on the weak interpretation. .A Wegbreit, B. .K program verification, loop predicates, inductive assertions, synthesis of loop predicates, weak interpretations, well-founded sets, property extraction, theorem proving .I 2684 .T Production Systems: or Can We Do Better than BNF? .W Since the development of BNF, the definition of the syntax of programming languages has been almost universally associated with context-free requirements. Yet numerous interesting and difficult issues in syntax stem from the context-sensitive requirements, notably the compatibility between the declaration of an identifier and its uses, the correspondence between actual and formal parameters, and issues arising from block structure. This paper explores the use of a formal notation called Production Systems in providing a readable and complete formal definition of syntax. As a practical illustration, a small but significant subset of PL/I is considered. A more detailed presentation, as well as the application to define abstract syntax and translations between languages, is given in a previous paper by the author. .A Ledgard, H. F. .K syntax, translation, context-sensitive grammars, compilers, formal definition, PL/I standards .I 2685 .T The Parallel Execution of DO Loops .W Methods are developed for the parallel execution of different iterations of a DO loop. Both asynchronous multiprocessor computers and array computers are considered. Practical application to the design of compilers for such computers is discussed. .A Lamport, L. .K parallel computing, multiprocessor computers, array computers, vector computers, loops .I 2686 .T An Approximate Method for Generating Asymmetric Random Variables .W Tukey's lambda distribution is generalized to provide an algorithm for generating values of unimodal asymmetric random variables. This algorithm has the same advantages as the symmetric random variable generator previously given by the authors, except that the addition of another parameter complicates the problem of finding the parameter values to fit a distribution. .A Ramberg, J. S. Schmeiser,B. W. .K simulation, Monte Carlo, probability, statistics, approximations, random variables, random numbers, moments, distribution .I 2687 .T A Cell Organized Raster Display for Line Drawings .W Raster scan computer graphics displays with "real time" character generators have previously been limited to alphanumeric characters. A display is described which extends the capabilities of this organization to include general graphics. The feasibility of such a display is shown by deriving the minimum number of patterns required in the read only memory of the character generator to synthesize an arbitrary line. The synthesis process does not compromise picture quality since the resulting dot patterns are identical with those of a conventional raster display. Furthermore, the time constraints of a raster display are shown to be satisfied for a typical design for very complex line drawings. .A Jordan, B. W. Jr. Barrett, R. C. .K graphics, raster display, line drawing, discrete image, dot generation, matrix displays .I 2688 .T Attribute Based File Organization in a Paged Memory Environment .W The high cost of page accessing implies a need for more careful data organization in a paged memory than is typical of most inverted file and similar approaches to multi-key retrieval. This article analyses that cost and proposes a method called multiple key hashing which attempts to minimize it. Since this approach is not always preferable to inversion, a combined method is described. The exact specifications of this combination for a file with given data and traffic characteristics is formulated as a mathematical program. The proposed heuristic solution to this program can often improve on a simple inversion technique by a factor of 2 or 3. .A Rothnie, J. B. Jr. Lozano, T. .K file organization, paging, retrieval algorithm, inverted file, multiple key hashing .I 2689 .T A CRT Report Generating System .A Lucas, H. C. Jr. .K report generation, automated systems design, data processing, management .I 2690 .T A Numbering Systems for Combinations .A Knott, G. D. .K combinatorics, coding system, storage mapping function .I 2691 .T Comments on the Algorithms of Verhelst for the Conversion of Limited-Entry Decision Tables to Flowcharts .A King, P. J. H. Johnson, R. G. .K decision table, flowcharting, preprocessor, optimal programs, search .I 2692 .T Reentrant Polygon Clipping .W A new family of clipping algorithms is described. These algorithms are able to clip polygons against irregular convex plane-faced volumes in three dimensions, removing the parts of the polygon which lie outside the volume. In two dimensions the algorithms permit clipping against irregular convex windows. Polygons to be clipped are represented as an ordered sequence of vertices without repetition of first and last, in marked contrast to representation as a collection of edges as was heretofore the common procedure. Output polygons have an identical format, with new vertices introduced in sequence to describe any newly-cut edge or edges. The algorithms easily handle the particularly difficult problem of detecting that a new vertex may be required at a corner of the clipping window. The algorithms described achieve considerable simplicity by clipping separately against each clipping plane or window boundary. Code capable of clipping the polygon against a single boundary is reentered to clip against subsequent boundaries. Each such reentrant stage of clipping need store only two vertex values and may begin its processing as soon as the first output vertex from the proceeding stage is ready. Because the same code is reentered for clipping against subsequent boundaries, clipping against very complex window shapes is practical. For perspective applications in three dimentions, a six-plane truncated pyramid is chosen as the clipping volume. The two additional planes parallel to the projection screen serve to limit the range of depth preserved through the projection. A perspective projection method which provides for arbitrary view angles and depth of field in spite of simple fixed clipping planes is described. This method is ideal for subsequent hidden-surface computations. .A Sutherland, I. E. Hodgman, G. W. .K computer graphics, hidden-surface, clipping .I 2693 .T Bivariate Interpolation and Smooth Surface Fitting Based on Local Procedures [E2] (Algorithm A474) .A Akima, H. .K bivariate interpolation, interpolation, partial derivative, polynomial, smooth surface fitting .I 2694 .T Computation of Legendre Series Coefficients [C6] (Algorithm A473) .A Piessens, R. .K Legendre series, Chebyshev series .I 2695 .T Tridiagonalization by Permutations .W Tridiagonalizing a matrix by similarity transformations is an important computational tool in numerical linear algebra. Consider the class of sparse matrices which can be tridiagonalized using only row and corresponding column permutations. The advantages of using such a transformation include the absence of round-off errors and improved computation time when compared with standard transformations. A graph theoretic algorithm which examines an arbitrary n x n matrix and determines whether or not it can be permuted into tridiagonal form is given. The algorithm requires no arithmetic while the number of comparisons, the number of assignments, and the number of increments are linear in n. This compares very favorably with standard transformation methods. If the matrix is permutable into tridiagonal form, the algorithm gives the explicit tridiagonal form. Otherwise, early rejection will occur. .A Gibbs, N. E. Poole, W. G. Jr. .K tridiagonal matrix, permutation, algorithm, eigenvalues, graph, bandwidth, sparse matrix .I 2696 .T A Method of Bivariate Interpolation and Smooth Surface Fitting Based on Local Procedures .W A method is designed for interpolating values given at points of a rectangular grid in a plane by a smooth bivariate function z=z(x,Y). The interpolating function is a bicubic polynomial in each cell of the rectangular grid. Emphasis is an avoiding excessive undulation between given grid points. The proposed method is an extension of the method of univariate interpolation developed earlier by the author and is likewise based on local procedures. .A Akima, H. .K bivariate interpolation, interpolation, partial derivative, polynomial, smooth surface fitting .I 2697 .T A Fast Method for Solving a Class of Tridiagonal Linear Systems .W The solution of linear systems having real, symmetric, diagonally dominant,tridiagonal coefficient matrices with constant diagonals is considered. It is proved that the diagonals of the LU decomposition converges when floating-point precision. It is also proved that the computed LU decomposition converges when floating-point arithmetic is used and that the limits of the LU diagonals using floating point are roughly within machine precision of the limits using real arithmetic. This fact is exploited to reduce the number of floating-point operations required to solve a linear system from 8n-7 to 5n+2k-3, where k is much less than n, the order of the matrix. If the elements of the subdiagonals and superdiagonals are 1, then only 4n+2k-3 operations are needed. The entire LU decomposition takes k words of storage, and considerable savings in array subscripting are achieved. Upper and lower bounds on k are obtained in terms of the ratio of the coefficient matrix diagonal constants and parameters of the floating-point number system. Various generalizations of these results are discussed. .A Malcolm, M. A. Palmer, J. .K numerical linear algebra, linear systems, Toeplitz matrices, tridiagonal matrices .I 2698 .T Syntax-Directed Least-Errors Analysis for Context-Free Languages: A Practical Approach .W A least-errors recognizer is developed informally using the well-known recognizer of Earley, along with elements of Bellman's dynamic programming. The analyzer takes a general class of context-free grammars as drivers, and any finite string as input. Recognition consists of a least-errors count for a corrected version of the input relative to the driver grammar. The algorithm design emphasizes practical aspects which help in programming it. .A Lyon, G. .K arbitrary input strings, context-free grammars, parsing, dynamic programming, stored subanalyses, separability, state merging, least-errors correction .I 2699 .T Automatic Data Structure Choice in a Language of Very High Level .W SETL is a set-theoretically oriented language of very high level whose repertoire of semantic objects includes finite sets, ordered n-tuples, and sets of ordered n-tuples usable as mappings. This paper describes the structure of an optimizer for this language. Among other methods of interest, the optimizer uses techniques which allow relations of inclusion and membership to be established, the domains and ranges of (tabulated) mappings to be estimated from above and below, and the single-valuedness of (tabulated) mappings to be proved. Once facts of this kind have been established, automatic choice of data structures becomes possible. The methods employed are based upon, and extend, known techniques of data flow analysis. .A Schwartz, J. T. .K program optimization, automatic programming, high-level languages, set-theoretic languages, data structure choice .I 2700 .T Reduction: A Method of Proving Properties of Parallel Programs .W When proving that a parallel program has a given property it is often convenient to assume that a statement is indivisible, i.e. that the statement cannot be interleaved with the rest of the program. Here sufficient conditions are obtained to show that the assumption that a statement is indivisible can be relaxed and still preserve properties such as halting. Thus correctness proofs of a parallel system can often be greatly simplified. .A Lipton, R. J. .K deadlock free, reduction, interruptible, indivisible, parallel program, semaphore, verification method, process, computation sequence .I 2701 .T A Fast and Usually Linear Algorithm for Global Flow Analysis (Abstract only--Complete paper JACM 23,1 January, 1976) .W A new algorithm for global flow analysis on reducible graphs is presented. The algorithm is shown to treat a very general class of function spaces. For a graph of e edges, the algorithm has a worst case time bound of O(e log e) function operations. It is also shown that in programming terms, the number of operations is proportional to e plus the number of exits from program loops. Consequently a restriction to one-entry one-exit control structures linearity. The algorithm can be extended to yet larger classes of function spaces and graphs by relaxing the time bound. Examples are given of code improvement problems which can be solved using the algorithm. .A Graham, S. L. Wegman, M. .K global flow analysis, data flow, code optimization, common subexpression elimination, live-dead analysis, information propagation, flow graph, reducibility, go-to-less programming, depth-first search, path compression .I 2702 .T On the Complexity of LR(k) Testing .W The problem of determining whether an arbitrary context-free grammar is a member of some easily parsed subclass of grammars such as the LR(k) grammars is considered. The time complexity of this problem is analyzed both when k is considered to be a fixed integer and when k is considered to be a parameter of the test. In the first case, it is shown that for every k there exists an O(n(k+2)) algorithm for testing the LR(k) property, where n is the size of the grammar in question. On the other hand, if both k and the subject grammar are problem parameters, then the complexity of the problem depends very strongly on the representation chosen for k. More specifically, it is shown that this problem is NP-complete when k is expressed in unary. When k is expressed in binary the problem is complete for nondeterministic exponential time. These results carry over to many other parameterized classes of grammars, such as the LL(k), strong LL(k), SLR(k), LC(k), and strong LC(k) grammars. .A Hunt, H. B. III Szymanski, T. G. Ullman, J. D. .K computational complexity, context-free grammars, parsing, LR(k) grammars, NP-complete problems .I 2703 .T The Intrinsically Exponential Complexity of the Circularity Problem for Attribute Grammars .W Attribute grammars are an extension of context-free grammars devised by Knuth as a mechanism for including the semantics of a context-free language with the syntax of the language. The circularity problem for a grammar is to determine whether the semantics for all possible sentences (programs) in fact will be well defined. It is proved that this problem is, in general, computationally intractable. Specifically, it is shown that any deterministic algorithm which solves the problem must for infinitely many cases use an exponential amount of time.An improved version of Knuth's circularity testing algorithm is also given, which actually solves the problem within exponential time. .A Jazayeri, M. Ogden, W. F. Rounds, W. C. .K attribute grammars, circularity problem, context-free grammars, computational complexity, exponential time, semantics .I 2704 .T Exception Handling: Issues and a Proposed Notation .W This paper defines exception conditions, discusses the requirements exception handling language features must satisfy, and proposes some new language features for dealing with exceptions in an orderly and reliable way. The proposed language features serve to highlight exception handling issues by showing how deficiencies in current approaches can be remedied. .A Goodenough, J. B. .K multilevel exit, goto statement, error conditions, structured programming, ON conditions, programming languages .I 2705 .T Programming Languages, Natural Languages, and Mathematics .W Some social aspects of programming are illuminated through analogies with similar aspects of mathematics and natural languages. The split between pure and applied mathematics is found similarly in programming. The development of natural languages toward flexion less, word-order based language types speaks for programming language design based on general, abstract constructs. By analogy with incidents of the history of artificial, auxiliary languages it is suggested that Fortran and Cobol will remain dominant for a long time to come. The most promising avenues for further work of wide influence are seen to be high quality program literature (i.e. programs) of general utility and studies of questions related to program style. .A Naur, P. .K analogies related to social aspects,pure and applied mathematics, language quality, language development, artificial auxiliary languages, literature, style, descriptive and prescriptive attitudes .I 2706 .T A Note on the Set Basis Problem Related to the Compaction of Character Sets .W This note discusses the reduction of the set basis problem to the clique cover problem. .A Kou, L. T. Wong, C. K. .K compaction of character sets, set basis, set covering, computational complexity, polynomial completeness, clique cover .I 2707 .T Backtrack Programming Techniques .W The purpose of this paper is twofold. First, a brief exposition of the general backtrack technique and its history is given. Second, it is shown how the use of macros can considerably shorten the computation time in many cases. In particular, this technique has allowed the solution of two previously open combinatorial problems, the computation of new terms in a well-known series, and the substantial reduction in computation time for the solution to another combinatorial problem. .A Bitner, J. R. Reingold, E. M. .K backtrack, depth-first search, exhaustive search, macros, combinatorial computing, non-attacking queen's problem, difference-preserving codes, pentominoes, tiling problems, squaring the square .I 2708 .T Practical Syntactic Error Recovery .W This paper describes a recovery scheme for syntax errors which provides automatically-generated high quality recovery with good diagnostic information at relatively low cost. Previous recovery techniques are summarized and empirical comparisons are made. Suggestions for further research on this topic conclude the paper. .A Graham, S. L. Rhodes, S. P. .K syntax errors, error recovery, error correction, parsing, simple precedence, compilers, debugging .I 2709 .T A Genealogy of Control Structures .W The issue of program control structures has had a history of heated controversy. To put this issue on a solid footing, this paper reviews numerous theoretical results on control structures and explores their practical implications. The classic result of Bohm and Jacopini on the theoretical completeness of if-then-else and while-do is discussed. Several recent ideas on control structures are then explored. These include a review of various other control structures, results on time/space limitations, and theorems relating the relative power of control structures under notions of equivalence. In conclusion, the impact of theoretical results on the practicing programmer and the importance of one-in, one-out control structures as operational abstractions are discussed. It is argued further that there is insufficient evidence to warrant more than if-then-else, while-do, and their variants. .A Ledgard, H. F. Marcotty, M. .K structured programming, control structures, goto statements, language design, PASCAL .I 2710 .T Specifying Queries as Relational Expressions: The SQUARE Data Sublanguage .W This paper presents a data sublanguage called SQUARE, intended for use in ad hoc, interactive problem solving by non-computer specialists. SQUARE is based on the relational model of data, and is shown to be relationally complete; however, it avoids the quantifiers and bound variables required by languages based on the relational calculus. Facilities for query, insertion, deletion, and update on tabular data bases are described. A syntax is given, and suggestions are made for alternative syntaxes, including a syntax based on English key words for users with limited mathematical background. .A Boyce, R. F Chamberlin, D. D. King, W. F. III .K database, data sublanguages, relations, query languages, casual user, relational data model, tabular data, interactive problem solving, nonprocedural languages, relational completeness .I 2711 .T A Vector Space Model for Automatic Indexing .W In a document retrieval, or other pattern matching environment where stored entities (documents) are compared with each other or with incoming patterns (search requests), it appears that the best indexing (property) space is one where each entity lies as far away from the others as possible; in these circumstances the value of an indexing system may be expressible as a function of the density of the object space; in particular, retrieval performance may correlate inversely with space density. An approach based on space density computations is used to choose an optimum indexing vocabulary for a collection of documents. Typical evaluation results are shown, demonstrating the usefulness of the model. .A Salton, G. Wong, A. Yang, C. S. .K automatic information retrieval, automatic indexing, content analysis, document space .I 2712 .T Horner's Rule for the Evaluation of General Closed Queueing Networks .W The solution of separable closed queueing networks requires the evaluation of homogeneous multinomial expressions. The number of terms in those expressions grows combinatorially with the size of the network such that a direct summation may become impractical. An algorithm is given which does not show a combinatorial operation count. The algorithm is based on a generalization of Horner's rule for polynomials. It is also shown how mean queue size and throughput an be obtained at negligible extra cost once the normalization constant is evaluated. .A Reiser, M. Kobayashi, H. .K Queueing networks, queueing theory Horner's rule, evaluation of multinomial sums, load-dependent service rate .I 2713 .T Remark on Stably Updating Mean and Standard Deviation of Data (Corrigendum) .A Cotton, I. .I 2714 .T Merging with Parallel Processors .W Consider two linearly ordered sets A, B, |A|=m, |B|=n, m<=n, and p, p<=m, parallel processors working synchronously. The paper presents an algorithm for merging A and B with the p parallel processors, which requires at most 2[log2 (2m+1)]+[3m/p] + [m/p][log2 (n/m)] steps. If n = (2^B)m (B an integer), the algorithm requires at most 2[log2 (m+1)] + [m/p](2+B) steps. In the case where m and n are of the same order of magnitude, i.e. n=km with k being a constant, the algorithm requires 2[log2 (m+1)] + [m/p](3+k) steps. These performances compare very favorably with the previous best parallel merging algorithm, Batcher's algorithm, which requires n/p + ((m+n)/2p)log2 m steps in the general case and km/p + ((k+1)/2)(m/p)log2 m in the special case where n=km. .A Gavril, F. .K parallel processing, parallel merging, parallel binary insertion .I 2715 .T Implementation of a Structured English Query Language .W The relational model of data, the XRM Relational Memory System, and the SEQUEL language have been covered in previous papers and are reviewed. SEQUEL is a relational data sublanguages intended for the ad hoc interactive problem solving by non-computer specialists. A version of SEQUEL that has been implemented in a prototype interpreter is described. The interpreter is designed to minimize the data accessing operations required to respond to an arbitrary query. The optimization algorithms designed for this purpose are described. .A Astrahan, M. M. Chamberlin,D. D. .K relational model, query language, nonprocedural language, database, data structure, data organization .I 2716 .T Optimizing the Performance of a Relational Algebra Database Interface .W An approach for implementing a "smart" interface to support a relational view of data is proposed. The basic idea is to employ automatic programming techniques so that the interface analyzes and efficiently refines the high level query specification supplied by the user. A relational algebra interface, called SQUIRAL, which was designed using this approach, is described in detail. SQUIRAL seeks to minimize query response time and space utilization by: (1) performing global query optimization, (2) exploiting disjoint and pipelined concurrency, (3) coordinating sort orders in temporary relations, (4) employing directory analysis, and (5) maintaining locality in page references. Algorithms for implementing the operators of E. F. Codd's relational algebra are presented, and a methodology for composing them to optimize the performance of a particular user query is described. .A Smith, J. M. Yen-Tang Chang, P. .K relational database, database optimization, inverted file, automatic programming, query language, data manipulation language, very high level language .I 2717 .T CONVERT: A High Level Translation Definition Language for Data Conversion .W This paper describes a high level and nonprocedural translation definition language, CONVERT, which provides very powerful and highly flexible data restructuring capabilities. Its design is based on the simple underlying concept of a form which enables the users to visualize the translation processes, and thus makes data translation a much simpler task. "CONVERT" has been chosen for conveying the purpose of the language and should not be confused with any other language or program bearing the same name. .A Shu, N. C. Housel, B. C. Lum, V. Y. .K data conversion, data restructuring, data translation, database reorganization, translation definition, utility program, programming languages, nonprocedural languages .I 2718 .T A Preliminary System for the Design of DBTG Data Structures .W The functional approach to database design is introduced. In this approach the goal of design is to derive a data structure which is capable of supporting a set of anticipated queries rather than a structure which "models the business" in some other way. An operational computer program is described which utilizers the functional approach to design data structures conforming to the Data Base Task Group specifications. The automatic programming technology utilized by this program, although typically used to generate procedure, is here used to generate declaratives. .A Gerritsen, R. .K network model of databases, Data Base Task Group, database design, data structure, automatic programming, translation, nonprocedural languages .I 2719 .T Mechanical Program Analysis .W One means of analyzing program performance is by deriving closed-form expressions for their execution behavior. This paper discusses the mechanization of such analysis, and describes a system, Metric, which is able to analyze simple Lisp programs and produce, for example, closed-form expressions for their running time expressed in terms of size of input. This paper presents the reasons for mechanizing program analysis, describes the operation of Metric, explains its implementation, and discusses its limitations. .A Wegbreit, B. .K analysis of programs, performance analysis, execution time, execution behavior, difference equations, generating functions, list processing, Lisp, algebraic manipulation, programming languages, analysis of algorithms .I 2720 .T Optimal Balancing of I/O Requests to Disks .W Determining a policy for efficient allocation and utilization of a set of disk drives with differing operational characteristics is examined using analytical techniques. Using standard queueing theory, each disk drive is characterized by a queueing model with service time of a disk drive represented by the probability density function of the sum of two uniform distributions. Total response time of the set of disk models is then minimized under varying load conditions. The results indicate that faster devices should have higher utilization factors and that the number of different device types utilized tends to decrease with decreasing load. Specific examples using 2314 and 3330 combinations are examined. .A Piepmeier, W. F. .K disk drive hierarchies, system evaluation, input/output, modeling, queueing theory, balancing, scheduling, device assignment .I 2721 .T The Digital Simulation of River Plankton Population Dynamics .W This paper deals with the development of a mathematical model for and the digital simulation in Fortran IV of phytoplankton and zooplankton population densities in a river using previously developed rate expressions. In order to study the relationships between the ecological mechanisms involved, the simulation parameters were varied illustrating the response of the ecosystem to different conditions, including those corresponding to certain types of chemical and thermal pollution. As an investigation of the accuracy of the simulation methods, a simulation of the actual population dynamics of Asterionella in the Columbia River was made based on approximations of conditions in that river. Although not totally accurate, the simulation was found to predict the general annual pattern of plankton growth fairly well and, specifically, revealed the importance of the annual velocity cycle in determining such patterns. In addition, the study demonstrates the usefulness of digital simulations in the examinations of certain aquatic ecosystems, as well as in environmental planning involving such examinations. .A Claudson, R. M. .K digital simulation, mathematical modeling, plankton population dynamics, phytoplankton, zooplankton, river ecosystems, ecological mechanisms, environmental simulation, modeling ecosystems, pollution, environmental impact, environmental planning .I 2722 .T Multidimensional Binary Search Trees Used for Associative Searching .W This paper develops the multidimensional binary search tree (or k-d tree, where k is the dimensionality of the search space) as a data structure for storage of information to be retrieved by associative searches. The k-d tree is defined and examples are given. It is shown to be quite in its storage requirements. A significant advantage of this structure is that a single data structure can handle many types of queries very efficiently. Various utility algorithms are developed; their proven average running times in an n record file are: insertion, O (log n); deletion of the root, O (n^(k-1)/k); deletion of a random node, O (log n); and optimization (guarantees logarithmic performance of searches), O (n log n). Search algorithms are given for partial match queries with t keys specified [proven maximum running time of O (n^(k-t)/k)] and for nearest neighbor queries [empirically observed average running time of O (log n).] These performances far surpass the best currently known algorithms for these tasks. An algorithm is presented to handle any general intersection query. The main focus of this paper theoretical. It is felt, however, that k-d trees could be quite useful in many applications, and examples of potential uses are given. .A Bently, J. L. .K associative retrieval, binary search trees, key, attribute, information retrieval system, nearest neighbor queries, partial match queries, intersection queries, binary tree insertion .I 2723 .T Multiprocessing Compactifying Garbage Collection .W Algorithms for a multiprocessing compactifying garbage collector are presented and discussed. The simple case of two processors, one performing LISP-like list operations and the other performing garbage collection continuously, is thoroughly examined. The necessary capabilities of each processor are defined, as well as interprocessor communication and interlocks. Complete procedures for garbage collection and for standard list processing primitives are presented and thoroughly explained. Particular attention is given to the problems of marking and relocating list cells while another processor may be operating on them. The primary aim throughout is to allow the list processor to run unimpeded while the other processor reclaims list storage. The more complex cases involving several list processors and one or more garbage collection processors are also briefly discussed. .A Steele, G. L. Jr. .K garbage collection, storage reclamation, reclaimer, storage allocation, multiprocessing, synchronization, semaphores, parallel processing, compactification, relocation, LISP, list processing, free storage, pointers, data structures, gc processor .I 2724 .T The Lemniscate Constants (Corrigendum) .A Todd, J. .I 2725 .T A Comparison of Simulation Event List Algorithms (Corrigendum) .A Vaucher, J. C. Duval, P. .I 2726 .T Combining Decision Rules in a Decision Table .W The techniques for minimizing logic circuits are applied to the simplification of decision tables by the combining of decision rules. This method is logically equivalent to the Quien-McCluskey method for finding prime implicants. If some of the decision rules implied in the ELSE Rule occur with low frequency, then the ELSE Rule can be used to further simplify the decision table. Several objectives merit consideration in optimizing a decision table:(1) reducing machine execution time; (2) reducing preprocessing time; (3) reducing required machine memory; (4) reducing the number of decision rules. (This often improves the clarity of the decision table to a human reader.) It will be shown that objectives (3) and (4) can be furthered with the above methods. Objective (1) is also attained if overspecified decision rules are not combined. Objective (2) must be compared against the potential benefits of objectives (1), (3), and (4) in deciding whether to use the above methods. .A Shwayder, K. .K the Quine-McCluskey method, prime implicants, minimization, maximization, logic circuit, boolean method, coding, decision tables, flowcharting, sorting .I 2727 .T Multiple Byte Processing with Full-Word Instructions .W A method is described which allows parallel processing of packed data items using only ordinary full-word computer instructions, even though the processing requires operations whose execution is contingent upon the value of a datum. It provides a useful technique for processing small data items such as alphanumeric characters. .A Lamport, L. .K byte processing, character processing, packed data .I 2728 .T Consecutive Storage of Relevant Records with Redundancy .W This paper studies the properties of a new class of file organizations (CRWR) where records relevant to every query are stored in consecutive storage locations but the organizations contain redundancy. Some theorems which provide tools for reducing redundancy in CRWR organizations have been also developed. Redundancies obtained by the application of these theorems are compared with that of query-inverted file organizations. Some CRWR organization with minimum redundancy have also been developed for queries which specify sets of keys. .A Ghosh, S. P. .K consecutive, retrieval, storage, file, records, query, redundancy, key .I 2729 .T Comments on a Paper by T. C. Chen and I. T. Ho .A Smith, A. J. .K binary coded decimal digits, decimal data storage, data compression, Huffman codes, variable length codes .I 2730 .T Interactive Consulting via Natural Language .W Interactive programming systems often contain help commands to give the programmer on-line instruction regarding the use of the various systems commands. It is argued that it would be relatively easy to make these help commands significantly more helpful by having them accept requests in natural language. As a demonstration, Weizenbaum's ELIZA program has been provided with a script that turns it into a natural language system consultant. .A Sharo, S. C. Kwasny, S. C. .K interactive programming, time-sharing systems, natural language processing, computer assisted instruction .I 2731 .T Remark on Stably Updating Mean and Standard Deviation of Data .A Cotton, I. W. .K mean, standard deviation .I 2732 .T Guarded Commands, Nondeterminacy and Formal Derivation of Programs .W So-called "guarded commands" are introduced as a building block for alternative and repetitive constructs that allow nondeterministic program components for which at least the activity evoked, but possible even the final state, is not necessarily uniquely determined by the initial state. For the formal derivation of programs expressed in terms of these constructs, a calculus will be shown. .A Dijkstra, E. W. .K programming languages, sequencing primitives, program semantics, programming language semantics, nondeterminacy, case-construction, repetition, termination, correctness proof, derivation of programs, programming methodology .I 2733 .T Deterministic Parsing of Ambiguous Grammars .W Methods of describing the syntax of programming languages in ways that are more flexible and natural than conventional BNF descriptions are considered. These methods involve the use of ambiguous context-free grammars together with rules to resolve syntactic ambiguities. It is shown how efficient LR and LL parsers can be constructed directly from certain classes of these specifications. .A Aho, A. V. Johnson, S. C. Ullman, J. D. .K programming language specification, parser generation, translator writing systems, syntax analysis, LR parsing, LL parsing, ambiguous grammars .I 2734 .T On the External Storage Fragmentation Produced by First-Fit and Best-Fit Allocation Strategies .W Published comparisons of the external fragmentation produced by first-fit and best-fit memory allocation have not been consistent. Through simulation, a series of experiments were performed in order to obtain better data on the relative performance of first-fit and best-fit and a better understanding of the reasons underlying observed differences. The time-memory-product efficiencies of first-fit and best-fit were generally within 1 to 3 percent of each other. Except for small populations, the size of the request population had little effect on allocation efficiency. For exponential and hyperexponential distributions of requests, first-fit outperformed best-fit; but for normal and uniform distributions, and for exponential distributions distorted in various ways, best-fit outperformed first-fit. It is hypothesized that when first-fit outperforms best-fit, it does so because first-fit, by preferentially allocating toward one end of memory, encourages large blocks to grow at the other end. Sufficient contiguous space is thereby more likely to be available for relatively large requests. Results of simulation experiments supported this hypothesis and showed that the relative performance of first-fit and best-fit depends on the frequency of request. When the coefficient of variation of the request distribution is greater than or approximately equal to unity, first-fit outperformed best-fit. .A Shore, J. E. .K storage fragmentation, dynamic memory allocation, first-fit, best-fit .I 2735 .T Discrimination in the Employment of Women in the Computer Industry .A Weber, R. E. Gilchrist, B. .K discrimination against women, salaries, employment, programmers, systems analysis, keypunch operators, machine operators .I 2736 .T A Note on Hash Linking .A Bobrow, D. G. .K hash search, address space extension, implicit pointers, monitor conditions .I 2737 .T Determining the Minimum-Area Encasing Rectangle for an Arbitrary Closed Curve .W This paper describes a method for finding the rectangle of minimum area in which a given arbitrary plane curve can be contained. The method is of interest in certain packing and optimum layout problems. It consists of first determining the minimal-perimeter convex polygon that encloses the given curve and then selecting the rectangle of minimum area capable of containing this polygon. Three theorems are introduced to show that one side of the minimum-area rectangle must be colinear with an edge of the enclosed polygon and that the minimum-area encasing rectangle for the convex polygon is also the minimum-area rectangle for the curve. .A Freeman, H. Shapira, R. .K enclosed curve, optimum layout, optimum packing, minimum-area encasing rectangle .I 2738 .T Use of the Concept of Transparency in the Design of Hierarchically Structured Systems .W This paper deals with the design of hierarchically structured programming systems. It develops a method for evaluating the cost of requiring programmers to work with an abstraction of a real machine. A number of examples from hardware and software are given as illustrations of the method. .A Parnas, D. L. Siewiorek, D. P. .K hierarchical systems, bottom up design, levels of abstraction, synchronization primitives .I 2739 .T The Restriction Language for Computer Grammars of Natural Language .W Over the past few years, a number of systems for the computer analysis of natural language sentences have been based on augmented context-free grammars: a context-free grammar which defines a set of parse trees for a sentence, plus a group of restrictions to which a tree must conform in order to be a valid sentence analysis. As the coverage of the grammar is increased, an efficient representation becomes essential for further development. This paper presents a programming language designed specifically for the compact and perspicuous statement of restrictions of a natural language grammar. It is based on ten years' experience parsing text sentences with the comprehensive English grammar of the N.Y.U. Linguistic String Project, and embodies in its syntax and routines the relations which were found to be useful and adequate for computerized natural language analysis. The language is used in the current implementation of the Linguistic String Parser. .A Sager, N. Grishman, R. .K natural language, parsing, grammar, programming languages .I 2740 .T A Large Semaphore Based Operating System .W The paper describes the internal structure of a large operating system as a set of cooperating sequential processes. The processes synchronize by means of semaphores and extended semaphores (queue semaphores). The number of parallel processes is carefully justified, and the various semaphore constructions are explained. The system is proved to be free of "deadly embrace" (deadlock). The design principle is an alternative to Dijkstra's hierarchical structuring of operating systems. The project management and the performance are discussed, too. The operating system is the first large one using the RC 4000 multiprogramming system. .A Lauesen, S. .K cooperating processes, operating system, semaphores, semaphore applications, queue semaphores, deadlock, deadly embrace, hierarchical structuring, multiprogramming, operating system structure, asynchronous structuring, buffering, parallel processes, synchronizing primitives, reentrant code, RC 4000, project management, time schedule, debugging, project planning, project scheduling, reliability, program proving, coroutines, correctness, program maintenance, software paging .I 2741 .T Decomposability, Instabilities, and Saturation in Multiprogramming Systems .W A step-by-step approach to model the dynamic behavior and evaluate the performance of computing systems is proposed. It is based on a technique of variable aggregation and the concept of nearly decomposable system, both borrowed from Econometrics. This approach is taken in order to identify in multiprogramming paging systems (i) unstable regimes of operations and (ii) critical computing loads which bring the system into states of saturation. This analysis leads to a more complete definition of the circumstances in which "thrashing" can set in. .A Courtois, P. J. .K multiprogramming, paging, performance evaluation, saturation, instabilities, thrashing, aggregation, system levels, hierarchy,networks of queues .I 2742 .T Improved Event-Scanning Mechanisms for Discrete Event Simulation .W Simulation models of large, complex "real-world" applications have occasionally earned the reputation of eating up hours of computer time. This problem may be attributed in part to difficulties such as slow stochastic convergence. However, an additional problem lies in the fact that a significant amount of bookkeeping time is required to keep future events in their proper sequence. This paper presents a method for significantly reducing the time spent scanning future event lists in discrete event simulations. There models are presented, all of which improve in effectiveness as the events-list scan problem becomes more burdensome. .A Wyman, F. P. .K discrete event simulation, simulation, event scanning mechanisms .I 2743 .T Sorting X + Y .A Harper, L. H. Payne, T. H. Savage, J. E. Straus, E. .K merge sorting, computational complexity, data modeling, computing models, binary comparisons .I 2744 .T Addition in an Arbitrary Base Without Radix Conversion .W This paper presents a generalization of an old programming technique; using it,one may add and subtract numbers represented in any radix, including a mixed radix, and stored one digit per byte in bytes of sufficient size. Radix conversion is unnecessary, no looping is required, and numbers may even be stored in a display (I/O) format. Applications to Cobol, MIX, and hexadecimal sums are discussed. .A Soule, S. .K addition, subtraction, decimal arithmetic, arbitrary radix arithmetic, radix conversion, MIX arithmetic, Cobol display arithmetic, mixed radix arithmetic .I 2745 .T A Linear Space Algorithm for Computing Maximal Common Subsequences .W The problem of finding a longest common subsequence of two strings has been solved in quadratic time and space. An algorithm is presented which will solve this problem in quadratic time and in linear space. .A Hirschberg, D. S. .K subsequence, longest common subsequence, string correction, editing .I 2746 .T Efficient String Matching: An Aid to Bibliographic Search .W This paper describes a simple, efficient algorithm to locate all occurrences of any of a finite number of keywords in a string of text. The algorithm consists of constructing a finite state pattern matching machine from the keywords and then using the pattern matching machine to process the text string in a single pass. Construction of the pattern matching machine takes time proportional to the sum of the lengths of the keywords. The number of state transitions made by the pattern matching machine in processing the text string is independent of the number of keywords. The algorithm has been used to improve the speed of a library bibliographic search program by a factor of 5 to 10. .A Aho, A. V. Corasick, M. J. .K keywords and phrases, string pattern matching, bibliographic search, information retrieval, text-editing, finite state machines, computational complexity. .I 2747 .T A Simplified Recombination Scheme for the Fibonacci Buddy System .W A simplified recombination scheme for the Fibonacci buddy system which requires neither tables nor repetitive calculations and uses only two additional bits per buffer is presented. .A Cranston, B. Thomas, R. .K Fibonacci buddy system, dynamic storage allocation, buddy system .I 2748 .T Indirect Threaded Code .W An efficient arrangement for interpretive code is described. It is related to Bell's notion of threaded code but requires less space and is more amenable to machine independent implementations. .A Dewar, R. B. K. .K threaded code, SNOBOL4, interpretors, code generation .I 2749 .T Significant Event Simulation .W This paper compares a new method of simulation organization, called the significant event method, with an old one, called the clock pulse method, using as examples two automobile traffic models. The significant event method is found to be more efficient than the clock pulse method at low levels of system interaction and less efficient at high levels. A simple mathematical model for the trade-off in the relative running time of the two methods is developed. The model aids in choosing between the two simulation methods for a particular experiment. It is concluded that the significant event method can be of value in the simulation of some systems when computational efficiency is of sufficient importance. .A Babich, A. F. Grason, J. Parnas, D. L. .K simulation organization, event simulation, clock pulse simulation, significant event simulation. .I 2750 .T A Cost Oriented Algorithm for Data Set Allocation in Storage Hierarchies .W Data set allocation in today's multilevel storage systems is usually based on qualitative, ad hoc decisions. While it would be desirable to obtain an optimal solution to this allocation problem, it is clear that the number of parameters involved makes it intractable to straight-forward solution. In such a situation, we must find a set of assumptions which simplify the problem greatly, but which still provide a basis for considering all significant cost elements. This paper presents such a first, quantitative allocation step. It considers many of the significant detailed costs of system utilization, data storage, data staging, and data migration. Although many avenues of further improvement are available, the present algorithm seems to be usefully accurate. As such, it can aid in quantifying the problems of data set allocation, storage system configuration, and new device designs. .A Lum, V. Y. Senko, M. E Wang, C. P. Ling, H. .K data set allocation, hierarchical storage, storage system configuration, data staging, data migration, storage allocation analysis .I 2751 .T Illumination for Computer Generated Pictures .W The quality of computer generated images of three-dimensional scenes depends on the shading technique used to paint the objects on the cathode-ray tube screen. The shading algorithm itself depends in part on the method for modeling the object, which also determines the hidden surface algorithm. The various methods of object modeling, shading, and hidden surface removal are thus strongly interconnected. Several shading techniques corresponding to different methods of object modeling and the related hidden surface algorithms are presented here. Human visual perception and the fundamental laws of optics are considered in the development of a shading rule that provides better quality and increased realism in generated images. .A Phong, B. T. .K computer graphics, graphic display, hidden surface removal. .I 2752 .T Generation of All the Cycles of a Graph from a Set of Basic Cycles [H] (Algorithm 492) .A Gibbs, N. E. .K basic cycle, cycle, graph .I 2753 .T A Heuristic Problem Solving Design System for Equipment or Furniture Layouts .W The Designer Problem Solver (DPS) demonstrates that the computer can perform simple design tasks. In particular, it designs furniture and equipment layouts. This task was chosen because it is simple, well defined, and characteristic of many design tasks in architecture, engineering, urban planning, and natural resource management. These space planning tasks usually involve manipulating two-dimensional representations of objects to create feasible or optimal solutions for problems involving topological and metric spatial constraints. The paper describes extensive tests performed on the program. DPS is a heuristic problem solver with a planning phase prefixed to it. It uses the planning process to give it a sense of direction, diagnostic procedures to locate difficulties, and remedial actions to recover from difficulties. It uses a convex polygon representation to accurately describe the objects and the layout. This representation allows topological and metric constraints to be tested and the design to be easily updated. DPS has been applied to 50 problems. While it is slow and limited in scope, the ideas behind it are general. It demonstrates the need for selectivity in controlling search and the methods used to achieve it: task-specific information, planning, diagnostic procedures, remedial actions, and selective alternative generators. .A Pfefferkorn, C. E. .K artificial intelligence, computer-aided design, design synthesis, diagnostic search, heuristics, planning, problem solving, representations, search strategies, space planning, spatial representations .I 2754 .T A Syntactic Algorithm for Peak Detection in Waveforms with Applications to Cardiography .W Peaks in a digitized waveform are detected by an algorithm incorporating piecewise linear approximation and tabular parsing techniques. Several parameters serve to identify the waveform context enabling accurate measurement of peak amplitude, duration, and shape. The algorithm is of sufficient speed to allow on-line real-time processing. An example of its application is demonstrated on an electrocardiogram. .A Horowitz, S. L. .K peak detection, digitized waveform, piecewise linear approximation, context-free grammar, bottom-up parsing, electrocardiogram. .I 2755 .T The New Math of Computer Programming (Corrigendum) .A Mills, H. D. .I 2756 .T A Problem-List of Public Policy Issues Concerning Computers and Health Care .A Wasserman, A. I. .K economic and social implications, the public and computing, medicine and health care .I 2757 .T More on kth Shortest Paths .A Fox, B.L. .K networks, kth shortest paths .I 2758 .T A Note on the LU Factorization of a Symmetric Matrix .A Evans, D. J. Hatzopoulos, M. .K symmetric matrices, factorization, test matrices, matrix inversion, separable systems .I 2759 .T Solution of an Overdetermined System of Equations in the L1 Norm (Algorithm R478) .A Fritsch, F. N. Hindmarsh, A. C. .I 2760 .T Visible Surface Plotting Program (Algorithm R475) .A Doran, C. J. .I 2761 .T Visible Surface Plotting Program (Algorithm R475) .A Mashburn, R. G. .I 2762 .T Ten Subroutines for the Manipulation of Chebyshev Series (Algorithm R446, C446) .A Piessens, R. Mertens, I. .I 2763 .T Basic Cycle Generation [H] (Algorithm 491) .A Gibbs, N. E. .K Graph, basic cycles,fundamental cycle, spanning tree, vertex adjacency matrix .I 2764 .T An Intelligent Analyzer and Understander of English .W The paper describes a working analysis and generation program for natural language, which handles paragraph length input. Its core is a system of preferential choice between deep semantic patterns, based on what we call "semantic density." The system is contrasted: (1) with syntax oriented linguistic approaches, and (2) with theorem proving approaches to the understanding problem. .A Wilks, Y. .K artificial intelligence, computational linguistics, template, paraplate, stereotype, machine translation, understanding, natural language processing, semantic preference, semantic density .I 2765 .T Analysis and performance of Inverted Data Base Structures .W The need to envision and architecture data base systems in a hierarchical level by level framework is stressed. The inverted data base (file) organization is then analyzed, considering implementation oriented aspects. The inverted directory is viewed realistically as another large data base which itself is subjected to inversion. Formulations are derived to estimate average access time (read only) and storage requirements, formalizing the interaction of data base content characteristics, logical complexity of queries, and machine timing and blocking specifications identified as having a first-order effect on performance. The formulations presented are necessary to be used in conjunction with any index selection criteria to determine the optimum set of index keys. .A Cardenas, A. F. .K data base architecture, inverted file organization, data base performance and measurement, secondary index organization, information storage and retrieval, query answering .I 2766 .T Copying Cyclic List Structures in Linear Time Using Bounded Workspace .W A bounded workspace copying algorithm for arbitrary list structures is given. This algorithm operates in linear time and does not require tag bits. The best previous bounded workspace copying algorithms achieved n^2 time without tag bits and n log n time with one tag. The only restriction on the algorithm given here is that the copy must be placed into a contiguous section of memory. The method is applicable to fixed or variable size nodes. .A Fisher, D. A. .K list processing, copying, linear time, space complexity .I 2767 .T A Comparison of Simulation Event List Algorithms .W Four algorithms are considered which can be used to schedule events in a general purpose discrete simulation system. Two of the algorithms are new, one is based on an end-order tree structure for event notices, and another uses an indexed linear list. The algorithms are tested with a set of typical stochastic scheduling distributions especially chosen to show the advantages and limitations of the algorithms. The end-order tree algorithm is shown to be an advantageous, immediate replacement for the algorithm in use with current simulation languages. The most promising algorithm uses the indexed list concept. It will require an adaptive routine before it can be employed in general purpose simulators,but its performance is such that further study would be fruitful. .A Vaucher, J. G. Duval, P. .K simulation, time flow mechanisms, event list algorithm, simulation, time flow mechanisms, event list algorithm, simulation executive, event scheduling routine, discrete system simulation, sorting .I 2768 .T An Algorithm for Locating Adjacent Storage Blocks in the Buddy System .W A simple scheme for the determination of the location of a block of storage relative to other blocks is described. This scheme is applicable to the buddy type storage allocation systems. .A Hinds, J. A. .K dynamic storage allocation, buddy system, generalized Fibonacci sequences .I 2769 .T A Modification of Warshall's Algorithm for the Transitive Closure of Binary Relations .W An algorithm is given for computing the transitive closure of a binary relation that is represented by a Boolean matrix. The algorithm is similar to Warshall's although it executes faster for sparse matrices on most computers, particularly in a paging environment. .A Warren, H. S. Jr. .K Warshall's algorithm, transitive closure, reachability matrix, directed graph, digraph, Boolean matrix, binary relation .I 2770 .T The Quadratic Hash Method When the Table Size Is Not a Prime Number .W Previous work on quadratic hash methods is limited mainly to the case where the table size is a prime number. Here, certain results are derived for composite numbers. It is shown that all composite numbers containing at least the square of one of the component primes have full-period integer-coefficient quadratic hash functions. .A Batagelj, V. .K quadratic search, hash code, scatter storage, table size .I 2771 .T The Synthesis of Solids Bounded by Many Faces .W A technique is presented which allows a class of solid objects to be synthesized and stored using a computer. Synthesis begins with primitive solids like a cube, wedge, or cylinder. Any solid can be moved, scaled, or rotated. Solids may also be added together or subtracted. Two algorithms to perform addition are described. For practical designers, the technique has the advantage that operations are concise, readily composed, and are given in terms of easily imagined solids.Quite short sequences of operations suffice to build up complex solids bounded by many faces. .A Braid, I. C. .K computational geometry, computer-aided design, graphics, machined components, polyhedra, shape synthesis, three-dimensional modeling .I 2772 .T On Maintenance of the Opportunity List for Class-Teacher Timetable Problems .W One of the principal components of procedures for the solution of class-teacher timetable problems is that for maintenance of the opportunity list. Opportunity list maintenance methods are based on necessary conditions for the existence of a solution. A general framework for necessary conditions, together with four specific sets of necessary conditions, is given. .A Smith, G. .K combinatorial, necessary conditions, opportunity list, schedule,school timetable, timetable .I 2773 .T A Weighted Buddy Method for Dynamic Storage Allocation (Corrigendum) .A Shen, K. K. Peterson, J. L. .I 2774 .T Remark on Algorithm 475 .A Frederick, L. W. .I 2775 .T The Dilogarithm Function of a Real Argument [S22] (Algorithm 490) .A Ginsberg, E. S. Zaborowski, D. .K dilogarithm .I 2776 .T Computer Networks in Higher Education: Socio-Economic-Political Factors .W This study presents the results of a nationwide survey of computer networks in higher education conducted during 1971-73. Five major and 18 minor networks were identified. The five major networks included: the ARPA Net, the California State College network, the University of Iowa/Iowa State University network, the Michigan Educational Research Information Triad, Inc., and the Triangle Universities Computation Center network in North Carolina. In-depth studies were conducted of the latter two nets. Based on the experiences of these operating networks, a number of factors are identified for consideration in developing networks. Finally, recommendations are advanced regarding the development of networks in higher education in the future. .A Chambers, J. A. Poore, R. V. .K networks, higher education .I 2777 .T On a Solution to the Cigarette Smoker's Problem (Without Conditional Statements) .W This report discusses a problem first introduced by Patil, who has claimed that the cigarette smoker's problem cannot be solved using the P and V operations introduced by Dijkstra unless conditional statements are used. An examination of Patil's proof shows that he has established this claim only under strong restrictions on the use of P and V. These restrictions eliminate programming techniques used by Dijkstra and others since the first introduction of the semaphore concept. This paper contains a solution to the problem. It also discusses the need for the generalized operators suggested by Patil. .A Parnas, D. L. .K operating systems, co-operating processes,process synchronization primitives .I 2778 .T Perturbations of Eigenvalues of Non-normal Matrices (Corrigendum) .A Sluis, A. .I 2779 .T Discrete Least Squares Polynomial Fits .W The recurrence relation between orthogonal polynomials is widely used for discrete least squares data fitting. A variant of the classical algorithm which has better numerical properties is presented and the reason for its improved performance is explained. .A Shampine, L. F. .K orthogonal polynomials, data fitting, least squares, recurrence relation between orthogonal polynomials, residual .I 2780 .T On Computing Certain Elements of the Inverse of a Sparse Matrix .W A recursive algorithm for computing the inverse of a matrix from the LU factors based on relationships in Takahashi, et al., is examined. The formulas for the algorithm are given; the dependency relationships are derived; the computational costs are developed; and some general comments on application and stability are made. .A Erisman, E. M. Tinney, W. F. .K sparse matrices, triangular factorization, elements of inverse, tridiagonal matrix, sensitivities .I 2781 .T The Algorithm Sequential Access Method: An Alternative to Index Sequential .A Whitt, J. D. Sullenberger, A. G. .K keys, direct access method, sequential access method, randomizing information retrieval .I 2782 .T A Reply to Gentleman and Marovich .A Karp, R. A. .K high-level languages, philosophy of language design .I 2783 .T The Algorithm SELECT-for Finding the ith Smallest of n Elements [M1] (Algorithm 489) .A Floyd, R. W. Rivest, R. L. .K selection, medians, quantiles .I 2784 .T Expected Time Bounds for Selection .W A new selection algorithm is presented which is shown to be very efficient on the average, both theoretically and practically. The number of comparisons used to select the ith smallest of n numbers is n+min(i,n-i)+o(n). A lower bound within 9 percent of the above formula is also derived. .A Floyd, R. W. Rivest, R. L. .K selection, computational complexity, medians, tournaments, quantiles .I 2785 .T Glypnir-A Programming Language for Illiac IV .W GLYPNIR is one of the earliest existing languages designed for programming the Illiac IV computer. The syntax of the language is based on ALGOL 60, but has been extended to allow the programmer explicitly to specify the parallelism of his algorithm in terms of 64-word vectors. This paper describes the characteristics, goals and philosophy of the language, and discusses some of the problems associated with parallel computer architectures. .A Lawrie, D. H. Layman, T. Baer, D. Randal, J. M. .K GLYPNIR, Illiac IV, Programming language, parallel computation, parallel architecture .I 2786 .T A System for Typesetting Mathematics .W This paper describes the design and implementation of a system for typesetting mathematics. The language has been designed to be easy to learn and to use by people (for example, secretaries and mathematical typists) who know neither mathematics nor typesetting. Experience indicates that the language can be learned in an hour or so, for it has few rules and fewer exceptions. For typical expressions, the size and font changes, positioning, line drawing, and the like necessary to print according to mathematical conventions are all done automatically. For example, the input sum from i=o to infinity x sub i=pi over 2 produces (formula). The syntax of the language is specified by a small context-free grammar; a compiler-compiler is used to make a compiler that translates this language into typesetting commands. Output maybe produced on either a phototypesetter or on a terminal with forward and reverse half-line motions. The system interfaces directly with text formatting programs, so mixtures of text and mathematics may be handled simply. This paper was typeset by the authors using the system described .A Kernighan, B. W. Cherry, L. L. .K typesetting, photocomposition,compiler-compiler, graphics, printing, text processing. .I 2787 .T Matrix Reduction-An Efficient Method .W The paper describes an efficient method for reduction of the binary matrices which arise in some school time-tabling problems. It is a development of that described by John Lions. It has been generalized and adapted to fit into the complete timetabling process; to use a more compact data representation and more efficient processing techniques; to take fuller advantage of possible available previous knowledge about the matrix. And it is designed as a structured program, which can readily be coded by the reader in the high level or low level programming language of his choice. Practical tests of the method have shown it to be a good basis for a realistic timetabling algorithm. .A Johnston, H. C. Hoare, C. A. R. .K binary matrices, matrix reduction, tight set, school timetable construction, structured programming .I 2788 .T Finding Circles by an Array of Accumulators .A Kimme, C. Balard, D. Sklansky, J. .K picture processing, pattern recognition, curve detection,line fitting .I 2789 .T A Minimal Spanning Tree Clustering Method (Algorithm R479) .A Magnuski, H. S. .I 2790 .T The Elementary Circuits of a Graph (Algorithm R459) .A Syslo, M. M. .I 2791 .T Exact Probabilities for R x C Contingency Tables (Algorithm R434) .A Hancock, T. W. .I 2792 .T Jacobi Polynomials (Algorithm R332) .A Skovgaard, O. .I 2793 .T Chi-Square Quantiles (Algorithm C451) .A Knight,W. .I 2794 .T State-Space, Problem-Reduction, and Theorem Proving-Some Relationships .W This paper suggests a bidirectional relationship between state-space and problem-reduction representations. It presents a formalism based on multiple-input and multiple-output operators which provides a basis for viewing the two types of representations in this manner. A representation of the language recognition problem which is based on the Cocke parsing algorithm is used as an illustration. A method for representing problems in first-order logic in such a way that the inference system employed by a resolution-based theorem prover determines whether the set of clauses is interpreted in the state-spacer mode or in the problem-reduction mode is presented. The analogous concepts in problem-reduction and theorem proving, and the terminology used to refer to them, are noted. The relationship between problem-reduction, input resolution, and linear resolution is discussed. .A VanderBrug, G. J. Minker, J. .K artificial intelligence, state-space representation, problem-reduction representation, theorem proving, language recognition .I 2795 .T Sentence Paraphrasing from a Conceptual Base .W A model of natural language based on an underlying language-free representation of meaning is described. A program based on this model is able to produce sentence paraphrases which demonstrate understanding with respect to a given context. This generator operates in conjunction with a natural language analyzer and a combined memory and inference model. In generating sentences from meaning structures, the program employs both the information retrieval and deduction capabilities of the memory model. The model encompasses several diverse classes of linguistic knowledge, which include: (1) executable tests of conceptual properties stored in discrimination nets; (2) information relating conceptual to syntactic roles, stored in a word-sense dictionary, and (3) surface grammatical knowledge, stored in a formal grammar. .A Goldman, N. M. .K artificial intelligence, natural language processing, language generation, models of cognitive processes, semantic representation .I 2796 .T Monitors: An Operating System Structuring Concept (Corrigendum) .A Hoare, C. A. R. .I 2797 .T A First Order Approximation to the Optimal Checkpoint Interval (Corrigendum) .A Young, J. W. .I 2798 .T Analysis of Interleaved Memory Systems Using Blockage Buffers .W A model of interleaved memory systems is presented, and the analysis of the model by Monte Carlo simulation is discussed. The simulations investigate the performance of various system structures, i.e. schemes for sending instruction and data requests to the memory system. Performance is measured by determining the distribution of the number of memory modules in operation during a memory cycle. An important observation from these investigations is that separately grouping instruction and data requests for memory can substantially increase the average number of memory modules in operation during a memory cycle. Results of the simulations and an analytical study are displayed for various system structures. .A Burnett, G. J. Coffman, E. G. Jr. .K interleaved memory systems, modular memory systems, memory performance analysis, blockage buffer, conflict buffer, simulation, Monte Carolo simulation .I 2799 .T Stably Updating Mean and Standard Deviation of Data .W By considering the (sample) mean of a set of data as a fit to this data by a constant function, a computational method is given based on a matrix formulation and Givens transformations. The (sample) mean and standard deviation can be updated as data accumulates. The procedure is numerically stable and does not require storage of the data. Methods for dealing with weighted data and data removal are presented. When updating the mean and square of the standard deviation, the process requires no square roots. .A Hanson, R. J. .K mean, standard deviation, least squares, Givens transformation, updating estimates, removing data .I 2800 .T Connections Between Accuracy and Stability Properties of Linear Multistep Formulas .W This paper is concerned with stability and accuracy of families of linear k-step formulas depending on parameters, with particular emphasis on the numerical solution of stiff ordinary differential equations. An upper bound, p=k, is derived for the order of accuracy of A(inf)-stable formulas. Three criteria are given for A(0)-stability. It is shown that (1) for p=k, k arbitrary, A(inf)-stability implies certain necessary conditions for A(0)-stability and for strict stability (meaning that the extraneous roots of p(psi) satisfy |psi|<1); (2) for p=k=2,3,4,and 5, A(inf)-stability (for k=5 together with another constraint) implies strict stability; and (3) for certain one-parameter classes of formulas with p=k=3,4,and/or 5, A(inf)-stability implies A(0)-stability. .A Liniger, W. .K stiff equations, parametrized linear multistep formulas, order of accuracy, A(0)-stability, A(inf)-stability, strict stability .I 2801 .T Storage-Efficient Representation of Decimal Data .W Usually n decimal digits are represented by 4n bits in computers. Actually, two BCD digits can be compressed optimally and reversibly into 7 bits, and three digits into 10 bits, by a very simple algorithm based on the fixed-length combination of two variable field-length encodings. In over half of the cases the compressed code results from the conventional BCD code by simple removal of redundant 0 bits. A long decimal message can be subdivided into three-digit blocks, and separately compressed; the result differs from the asymptotic minimum length by only 0.34 percent. The hardware requirement is small, and the mappings can be done manually. .A Chi Chen, T. Ho, I. T. .K binary-coded decimal digits, decimal data storage .I 2802 .T The New Math of Computer Programming .W Structured programming has proved to be an important methodology for systematic program design and development. Structured programs are identified as compound function expressions in the algebra of functions. The algebraic properties of these function expressions permit the reformulation (expansion as well as reduction) of a nested subexpression independently of its environment, thus modeling what is known as stepwise program refinement as well as program execution. Finally, structured programming is characterized in terms of the selection and solution of certain elementary equations defined in the algebra of functions. These solutions can be given in general formulas, each involving a single parameter, which display the entire freedom available in creating correct structured programs. .A Mills, H. D. .K structured programming, algebra of functions, stepwise refinement, program correctness .I 2803 .T Pseudoinverses and Conjugate Gradients .W This paper is devoted to the study of connections between pseudoinverses of matrices and conjugate gradients and conjugate direction routines. .A Hestenes, M. R. .K pseudoinverse, conjugate gradients, hermitian matrix, minimization .I 2804 .T Elementary Divisors of Tensor Products .W The elementary divisors of a tensor product of linear transformations have been known for 40 years. This paper provides a short, easily accessible proof of these results, and points out an interesting combinatorial consequence of the proof. .A Marcus, M. Robinson, H. .K elementary divisors, tensor products, linear transformations .I 2805 .T Perturbations of Eigenvalues of Non-normal Matrices .W The problem considered is to give bounds for finite perturbations of simple and multiple eigenvalues of nonnormal matrices, where these bounds are in terms of the eigenvalues, the departure from normality, and the Frobenius norm of the perturbation matrix, but not in terms of the eigen system. The bounds which are derived are shown to be almost attainable for any set of matrices. .A van der Sluis, A. .K perturbation of eigenvalues, non-normal matrices, departure from normality, Gershgorin circles .I 2806 .T Two Hadamard Numbers for Matrices .W A discussion is given of two functions of the entries of a square matrix, both related to Hadamard's determinant theorem, which have some merits as alternatives to norm-bound "condition numbers." One (for linear systems) is known; the other (for eigen systems) seems to be new. .A Birkhoff, G. .K matrices, eigenvalues, norms, condition numbers, error analysis, Gram-Schmidt orthogonalization .I 2807 .T On the Stability of Gauss-Jordan Elimination with Pivoting .W The stability of the Gauss-Jordan algorithm with partial pivoting for the solution of general systems of linear equations is commonly regarded as suspect. It is shown that in many respects suspicions are unfounded, and in general the absolute error in the solution is strictly comparable with that corresponding to Gaussian elimination with partial pivoting plus back substitution. However, when A is ill conditioned, the residual corresponding to the Gauss-Jordan solution will often be much greater than that corresponding to the Gaussian elimination solution. .A Peters, G. Wilkinson, J. H. .K Gauss-Jordan algorithm, Gaussian elimination, back-substitution, backward error analysis, bounds for error in solution, bound for residual .I 2808 .T The Lemniscate Constants .W The lemniscate constants, and indeed some of the methods used for actually computing them, have played an enormous part in the development of mathematics. An account is given here of some of the methods used-most of the derivations can be made by elementary methods. This material can be used for teaching purposes, and there is much relevant and interesting historical material. The acceleration methods developed for the purpose of evaluating these constants are useful in other problems. .A Todd, J. .K lemniscate, acceleration, elliptic functions, Euler transformation .I 2809 .T Positivity and Norms .W Following some lines of joint work with A. S. Householder, the character and use of algebraic methods in the theory of norms is demonstrated. New results concerning norms with values in an Archimedian vector lattice (not necessarily being totally ordered) are given, in particular for the generalization of order unit norms, L-norms and M-norms. An example of application to operator norms is given concerning contraction properties of positive operators. .A Bauer, F. L. .K matrices, norms, positivity, numerical range, positivity cones, vector lattice,absolute, monotonic .I 2810 .T Professionalism in the Computing Field .W The term professional means different things to different people; nevertheless, there are certain general technical and social standards normally associated with a professional. Further, the term is more generally applied to the practitioner rather than to the researcher. But within the rather broad definition specified, the computing practitioner is, as yet, not regarded as a professional. Each of the four types of institutions-academic, industry, government, and the professional society- that educate, employ, regulate, and mold the practitioner contributes to the "nonprofessional" status of the computing practitioner. The roles of these institutions are examined, various shortcomings are noted, and recommended changes are suggested. In the last analysis, professional status is not bestowed; it is earned. However, universities and industry, specifically, can make certain improvements to help the computing practitioner achieve professional status. .A Finerman, A. .K professional aspects, educational programs, industry attitudes, professional societies, licensing and certification .I 2811 .T Structural Pattern Recognition Of Carotid Pulse Waves Using A General Waveform Parsing System .W A general waveform parsing system with application to structural pattern recognition of carotid pulse waves is described. The carotid arterial pulse wave is of medical importance because of variation in its structure induced by arterial aging and cardiovascular disease. The syntax-driven waveform analysis system has been applied with good results to these pulse waves to detect and measure structural variations. The waveform parsing system is modeled on a compiler-compiler system and allows the user to enter application specific information as data. It is thus general enough to be applicable to other waveforms. .A Stockman, G. Kanal, L. Kyle, M. C. .K structural pattern recognition, parsing, waveform analysis, pulse waves .I 2812 .T Computer-Aided Analysis and Design of Information Systems .W This paper describes the use of computer-aided analysis for the design and development of an integrated financial management system by the Navy Material Command Support Activity (NMCSA). Computer-aided analysis consists of a set of procedures and computer programs specifically designed to aid in the process of applications software design, computer selection and performance evaluation. There are four major components: Problem Statement Language, Problem Statement Analyzer, Generator of Alternative Designs, and Performance Evaluator. The statement of requirements was written in ADS (Accurately Defined Systems) and analyzed by a Problem Statement Analyzer for ADS. The ADS problem definition was supplemented with additional information in order to create a complete problem definition. The analyzed problem statement was translated to the form necessary for use by the SODA (Systems Optimization and Design Algorithm) program for the generation of alternative specifications of program modules and logical database structures. .A Nunamaker, J. F. Jr. Konsynski, B. R. Jr. Ho, T. Singer, C. .K computer-aided analysis, information systems, logical system design, problem statement language, problem statement analyzer, physical system design, accurately defined systems, systems optimization and design algorithm .I 2813 .T The Computer Science and Engineering Research Study (COSERS) .W The Computer Science and Engineering Research Study (COSERS) is briefly described. The motivation, organization, and schedule for this NSF supported study are given. For possible further reference, the subject area panel chairmen and the members of the Steering Committee are identified. .A Arden, B. .K computer science research, computer engineering research, national research study .I 2814 .T Roster of Programming Languages for 1974-75 .A Sammet, J. E. .I 2815 .T High-Level Binding with Low-Level Linkers .W An easy to implement scheme is described by which a compiler can enforce agreement between complex data types in separately compiled modules. The scheme is designed to work with any existing link editor or linking loader, no matter how deficient. Obscure run-time errors caused by inconsistent usages are forestalled by static errors detected at linking time. .A Hamlet, R. G. .K separate compilation, binding, linking, strong typing .I 2816 .T Optimal Reorganization of Distributed Space Disk Files .W In most database organizations, the cost of accessing the database will increase due to structural changes caused by updates and insertions. By reorganizing the database,the access costs can be reduced. A basic problem is to establish the proper tradeoff between performance, storage costs, and reorganization costs. This paper considers the optimum points at which to reorganize a database. A disk file organization which allows for distributed free space is described. A cost function describing the excess costs due to physical disorganization is defined, and this function is minimized to obtain the optimum reorganization points. Numerical examples based on the characteristics of existing disk storage devices are given. .A Maruyama, K. Smith, S. E. .K disk file, free space,retrieval, insertion, deterioration, reorganization .I 2817 .T The Notions of Consistency and Predicate Locks in a Database System .W In database systems, users access shared data under the assumption that the data satisfies certain consistency constraints. This paper defines the concepts of transaction, consistency and schedule and shows that consistency requires that a transaction cannot request new locks after releasing a lock. Then it is argued that a transaction needs to lock a logical rather than a physical subset of the database. These subsets may be specified by predicates. An implementation of predicate locks which satisfies the consistency condition is suggested. .A Eswarran, K.. Gray, J.. Lorie, R.. Traiger, I. L. .K consistency, lock, database, concurrency, transaction .I 2818 .T Interference in Multiprocessor Computer Systems with Interleaved Memory (Corrigendum) .A Baskett, F. Smith, A. J. .I 2819 .T Experiments in Text File Compression .W A system for the compression of data files, viewed as strings of characters, is presented. The method is general, and applies equally well to English, to PL/I, or to digital data. The system consists of an encoder, an analysis program, and a decoder. Two algorithms for encoding a string differ slightly from earlier proposals. The analysis program attempts to find an optimal set of codes for representing substrings of the file. Four new algorithms for this operation are described and compared. Various parameters in the algorithms are optimized to obtain a high degree of compression for sample texts. .A Rubin, F. .K text compression, data file compaction, Huffman codes, N-gram encoding, comparison of algorithms .I 2820 .T The Design and Implementation of a Table Driven, Interactive Diagnostic Programming System .W CAPS is a highly interactive diagnostic compiler/interpreter that allows beginning programmers to prepare, debug, and execute fairly simple programs at a graphics display terminal. Complete syntax checking and most semantic analysis is performed as the program is entered and as it is subsequently edited. Analysis is performed character by character. The most remarkable feature of CAPS is its ability to automatically diagnose errors both at compile time and at run time. Errors are not automatically corrected. Instead, CAPS interacts with the student to help him find the cause of his error. Most components of CAPS are table driven, both to reduce the space needed for implementation and to increase the flexibility of the multilingual system. Over 500 students have used CAPS to learn Fortran, PL/I, or Cobolin conjunction with a computer assisted course on introductory computer science. .A Wilcox, T. R. Davis, A. M. Tindall, M. H. .K interactive programming, table driven compilers, error correction, interpreters, debugging, computer assisted instruction, computer science education .I 2821 .T Cobol Under Control .W A sample set of Cobol programming standards is offered. These standards constrain code to be developed in a "structured" form for both data and control structures. They do not require syntax beyond the existing Cobol language and in fact utilize a typical limited subset of the 1974 ANS Cobol standard. These standards have proved extremely valuable in practice and have reduced the cost and time to produce and maintain large software systems that have been deployed in live multiple customer environments. .A Ledgard, H. F. Cave, W. C. .K Cobol, structured programming,software development, program standards .I 2822 .T Homilies for Humble Standards .W Copyright 1976, Association for Computing Machinery, Inc. General permission to republish, but not for profit, all or part of this material is granted provided that ACM's copyright notice is given and that reference is made to the publication, to its data of issue, and to the fact that reprinting privileges were granted by permission of the Association for Computing Machinery. .A Ross, D. T. .K standards, CASE Standards criteria for standards, standardization .I 2823 .T The Status of Women and Minorities in Academic Computer Science .W The results of a survey concerning women and minority students and faculty in computer science during the years 1971 to 1975 are presented. Analysis of the data indicated that effective affirmative action programs for recruitment into graduate degree programs are needed to enlarge the number of women and minorities qualified for later employment in computer science. Also, possible discrimination in employment of women and minority graduate students was revealed. .A Montanelli, R. G. Jr. Mamrak, S. A. .K discrimination against women, discrimination against minorities, graduate students, undergraduate students, academic employment, faculty, computer science degree programs, affirmative action, Title VII, Title IX .I 2824 .T An Improvement to Martin's Algorithm for Computation of Linear Precedence Functions .A Duong-Kien, C. Hoffmann, H. J. Muth, D. .K syntax analysis, precedence functions, Boolean matrices .I 2825 .T The BMD and BMDP Series of Statistical Computer Programs .A Frane, J. W. .K analysis of variance, cluster analysis, contingency tables, data analysis, discriminant analysis, factor analysis, graphics, outliers, regression, time series, transformations .I 2826 .T Interactive Skeleton Techniques for Enhancing Motion Dynamics in Key Frame Animation .W A significant increase in the capability for controlling motion dynamics in key frame animation is achieved through skeleton control. This technique allows an animator to develop a complex motion sequence by animating a stick figure representation of an image. This control sequence is then used to drive an image sequence through the same movement. The simplicity of the stick figure image encourages a high level of interaction during the design stage. Its compatibility with the basic key frame animation technique permits skeleton control to be applied selectively to only those components of a composite image sequence that require enhancement. .A Burtnyk, N. Wein, M. .K interactive graphics, computer generated animation, key frame animation, interactive skeleton control, stick figure animation .I 2827 .T A Parametric Algorithm for Drawing Pictures of Solid Objects Composed of Quadric Surfaces .W An algorithm for drawing pictures of three-dimensional objects, with surfaces made up of patches of quadric surfaces, is described. The emphasis of this algorithm is on calculating the intersections of quadric surfaces. A parameterization scheme is used. Each quadric surface intersection curve (QSIC) is represented as a set of coefficients and parameter limits. Each value of the parameter represents at most two points, and these may easily be distinguished. This scheme can find the coordinates of points of even quartic (fourth-order) intersection curves, using equations of no more than second order. Methods of parameterization for each type of OSIC are discussed, as well as surface bounding and hidden surface removal. .A Levin, J. .K computer graphics, hidden surface removal, quadric surface intersection curves .I 2828 .T Hierarchical Geometric Models for Visible Surface Algorithms .W The geometric structure inherent in the definition of the shapes of three-dimensional objects and environments is used not just to define their relative motion and placement, but also to assist in solving many other problems of systems for producing pictures by computer. By using an extension of traditional structure information, or a geometric hierarchy, five significant improvements to current techniques are possible. First, the range of complexity of an environment is greatly increased while the visible complexity of any given scene is kept within a fixed upper limit. Second, a meaningful way is provided to vary the amount of detail presented in a scene. Third, "clipping" becomes a very fast logarithmic search for the resolvable parts of the environment within the field of view. Fourth, frame to frame coherence and clipping define a graphical "working set," or fraction of the total structure that should be present in primary store for immediate access by the visible surface algorithm. Finally, the geometric structure suggests a recursive descent, visible surface algorithm in which the computation time potentially grows linearly with the visible complexity of the scene. .A Clark, J. H. .K visible surface algorithms, hidden surface algorithms, hierarchical data structures, geometric models .I 2829 .T Texture and Reflection in Computer Generated Images .W In 1974 Catmull developed a new algorithm for rendering images of bivariate surface patches. This paper describes extensions of this algorithm in the areas of texture simulation and lighting models. The parameterization of a patch defines a coordinate system which is used as a key for mapping patterns onto the surface. The intensity of the pattern at each picture element is computed as a weighted average of regions of the pattern definition function. The shape and size of this weighting function are chosen using digital signal processing theory. The patch rendering algorithm allows accurate computation of the surface normal to the patch at each picture element, permitting the simulation of the mirror reflections. The amount of light coming from a given direction is modeled in a similar manner to the texture mapping and then added to the intensity obtained from the texture mapping. Several examples of images synthesized using these new techniques are included. .A Blinn, J. F. Newell, M. E. .K computer graphics, graphic display, shading, hidden surface removal .I 2830 .T A Practitioner's Guide to Addressing Algorithms (Corrigendum) .A Severance, D. G. Duhne, R. A. .I 2831 .T Analysis of the PFF Replacement Algorithm via a Semi-Markov Model (Corrigendum) .A Chu, W. W. Opderbeck, H. .I 2832 .T Faster Retrieval from Context Trees (Corrigendum) .W Context trees provide a convenient way of storing data which is to be viewed as a hierarchy of contexts. This note presents an algorithm which improves on previous context tree retrieval algorithms. It is based on the observation that in typical uses context changes are infrequent relative to retrievals, so that data can be cached to speed up retrieval. A retrieval is started from the position of the previous retrieval and auxiliary structures are built up to make the search rapid. Algorithms for addition and deletion of data and for garbage collection are outlined. .A Wegbreit, B. .K context trees, frame problem, variable bindings, data structures .I 2833 .T An Efficient, Incremental, Automatic Garbage Collector .W This paper describes a new way of solving the storage reclamation problem for a system such as Lisp that allocates storage automatically from a heap, and does not require the programmer to give any indication that particular items are no longer useful or accessible. A reference count scheme for reclaiming non-self-referential structures, and a linearizing, compacting, copying scheme to reorganize all storage at the users discretion are proposed. The algorithms are designed to work well in systems which use multiple levels of storage, and large virtual address space. They depend on the fact that most cells are referenced exactly once, and that reference counts need only be accurate when storage is about to be reclaimed. A transaction file stores changes to reference counts, and a multiple reference table stores the count for items which are referenced more than once. .A Deutsch, L. P. Bobrow, D. G. .K storage management, garbage collection, Lisp .I 2834 .T Efficient Generation of the Binary Reflected Gray Code and Its Applications .W Algorithms are presented to generate the n-bit binary reflected Gray code and codewords of fixed weight in that code. Both algorithms are efficient in that the time required to generate the next element from the current one is constant. Applications to the generation of the combinations of n things taken k at a time, the compositions of integers, and the permutations of a multiset are discussed. .A Bitner, J. R. Ehrlich, G. Reingold, E. M. .K Gray code, combinations, subsets, compositions, combinatorial computing .I 2835 .T Recursion Analysis for Compiler Optimization .W A relatively simple method for the detection of recursive use of procedures is presented for use in compiler optimization. Implementation considerations are discussed, and a modification of the algorithm is given to further improve optimization. This analysis can also be used to determine what possible subset of values could be assumed by variables which can only take on a relatively small discrete set of values. The most common are parameters of variables assuming values of label, procedure, or Pascal's enumerated type. .A Walter, K. G. .K recursion, compiler optimization .I 2836 .T Weighted Derivation Trees .W The nodes of a weighted derivation tree are associated with weighting functions over the vocabulary of a context-free grammar. An algorithm is presented for constructing the optimal derivation tree having the same structure as a given weighted derivation tree. In addition, the correctness of the algorithm is established. The method may be applied to problems involving probabilistic parsing or combinatorial optimization. .A Loui, M. C. .K derivation tree, parse tree, probabilistic grammar, structural ambiguity, combinatorial optimization .I 2837 .T New Upper Bounds for Selection .W The worst-case minimum number of comparisons complexity Vi(n) of the i-th selection problem is considered. A new upper bound for Vi(n) improves the bound given by the standard Hadian-Sobel algorithm by a generalization of the Kirkpatrick-Hadian-Sobel algorithm, and extends Kirkpatrick's method to a much wider range of application. This generalization compares favorably with a recent algorithm by Hyafil. .A Yap, C. K. .K selection problem, algorithms, comparison problems, concrete computational complexity, upper bounds, worst-case analysis .I 2838 .T Analysis of an Algorithm for Real Time Garbage Collection .W A real time garbage collection system avoids suspending the operations of a list processor for the long times that garbage collection normally requires by performing garbage collection on a second processor in parallel with list processing operations, or on a single processor time-shared with them. Algorithms for recovering discarded list structures in this manner are presented and analyzed to determine sufficient conditions under which the list processor never needs to wait on the collector. These techniques are shown to require at most twice as much processing power as regular garbage collectors, if they are used efficiently. The average behavior of the program is shown to be very nearly equal to the worst-case performance, so that the sufficient conditions are also suitable for measuring the typical behavior of the algorithm. .A Wadler, P. L. .K garbage collection, storage reclamation, list processing, Lisp, time-sharing, multiprocessing, parallel processing, real time, data structures, analysis of algorithms .I 2839 .T An Insertion Technique for One-Sided Height-Balanced Trees .W A restriction on height-balanced binary trees is presented. It is seen that this restriction reduces the extra memory requirements by half (from two extra bits per node to one) and maintains fast search capabilities at a cost of increased time requirements for inserting new nodes. .A Hirschberg, D. S. .K balanced, binary, search, trees .I 2840 .T Protection in Operating Systems .W A model of protection mechanisms in computing systems is presented and its appropriateness is argued. The "safety" problem for protection systems under this model is to determine in a given situation whether a subject can acquire a particular right to an object. In restricted cases, it can be shown that this problem is decidable, i.e. there is an algorithm to determine whether a system in a particular configuration is safe. In general, and under surprisingly weak assumptions, it cannot be decided if a situation is safe. Various implications of this fact are discussed. .A Harrison, M. A. Ruzzo, W. L. Ullman, J. D. .K protection, protection system, operating system, decidability, Turing machine .I 2841 .T Designing Surfaces in 3-D .W An experimental system for computer-aided design of free-form surfaces in three dimensions is described. The surfaces are represented in the system as parametric basis splines. The principal features of the system are: (1) the surfaces are rendered as isoparametric line drawings on a head-mounted display, and they are designed with the aid of a three-dimensional "wand," which allows 3-D movements of the points controlling the shapes of the surfaces, (2) all of the interactions with the surfaces are in real-time, and (3) the mathematical formulations used assume no knowledge of them by the user of the system. Also examined are some of the features that should be part of a practical 3-D system for designing space-forms. .A Clark, J. H. .K real-time graphics, computer-aided design, picture processing, B-splines, 3-D displays .I 2842 .T The Denotational Semantics of Programming Languages .W This paper is a tutorial introduction to the theory of programming language semantics developed by D. Scott and C. Strachey. The application of the theory to formal language specification is demonstrated and other applications are surveyed. The first language considered, LOOP, is very elementary and its definition merely introduces the notation and methodology of the approach. Then the semantic concepts of environments, stores, and continuations are introduced to model classes of programming language features and the underlying mathematical theory of computation due to Scott is motivated and outlined. Finally, the paper presents a formal definition of the language GEDANKEN. .A Tennent, R. D. .K semantics, programming language, applicative, imperative, environment, store, continuation, theory of computation, higher-order function, recursive definition, LOOP, GEDANKEN .I 2843 .T Tools and Philosophy for Software Education .W This paper describes a set of tools and a philosophy for teaching software that have been found very useful in course at MIT over the past seven years. The tools include programs such as simulators, graders, compilers, and monitor. These allow the instructor to augment the basic concepts with relevant, exciting, and economical student project activities. .A Donovan, J. J. .K software education, simulators, grading programs, student assignments .I 2844 .T Heaps Applied to Event Driven Mechanisms .A Gonnet, G. H. .K discrete event simulation, event-scanning mechanisms, priority queues, heaps .I 2845 .T A Buddy System Variation for Disk Storage Allocation .W A generalization of the buddy system for storage allocation is described. The set of permitted block sizes {SIZE(i)}, i=0,n, must satisfy the condition SIZE(i)=SIZE(i-1)+SIZE(i-k(i)) where k may be any meaningful integral-valued function. This makes it possible to force logical storage blocks to coincide with physical storage blocks, such as tracks and cylinders. .A Burton, W. .K buddy system, dynamic storage allocation .I 2846 .T Compressed Tries .W This paper presents a new data structure, called a compressed trie or C-trie, to be used in information retrieval systems. It has the same underlying m-ary tree structure as a trie, where m is a parameter of the trie, but whereas the fields of the nodes in a trie have to be large enough to hold a key or at least a pointer, the fields in a C-trie are only one bit long. In the analysis part of the paper it will be shown that for a collection of n keys the retrieval time, measured in terms of bit inspections of one key, is of the order logm(n) and the storage requirement of the order n*(m+log2 n) bits. This improvement in storage requirements and retrieval time is achieved at the cost of decreasing the flexibility of the structure, and therefore updating costs are increased. First the C-trie is analyzed as a data structure, and then several methods of its use for relatively static databases are discussed. .A Maly, K. .K data structure, database, m-ary tree, trie, retrieval time, storage requirement, keys .I 2847 .T Sampling from the Gamma Distribution on a Computer .W This paper describes a method of generating gamma variates that appears to be less costly than Wallace's recently suggested method. For large shape parameter (a); the cost of computation is proportional to (a), whereas Wallace's method is proportional to (a). Experimentation by Robinson and Lewis indicates that for small (a) the method suggested here also dominates methods recently suggested by Dieter and Ahrens, albeit those methods dominate for large (a). The method suggested here uses the rejection technique. .A Fishman, G. S. .K gamma variates, reflection method, sampling .I 2848 .T Synthesis of Decision Rules .W Decision tables can be used as an effective tool during an interview to record the logic of processes to be automated. The result of such an interview is not a structure of complete decision tables but rather sets of decision rules. The purpose of this paper is to provide a procedure for synthesizing the decision rules and thus provide an aid in developing a structure of complete decision tables. .A Cheng, C. Rabin, J. .K decision rules, decision tables, logical tables, logical design, system design, specification language .I 2849 .T Ethernet: Distributed Packet Switching for Local Computer Networks .W Ethernet is a branching broadcast communication system for carrying digital data packets among locally distributed computing stations. The packet transport mechanism provided by Ethernet has been used to build systems which can be viewed as either local computer networks or loosely coupled multiprocessors. An Ethernet's shared communication facility, its Ether, is a passive broadcast medium with no central control. Coordination of access to the Ether for packet broadcasts is distributed among the contending transmitting stations using controlled statistical arbitration. Switching of packets to their destinations on the Ether is distributed among the receiving stations using packet address recognition. Design principles and implementation are described, based on experience with an operating Ethernet of 100 nodes along a kilometer of coaxial cable. A model for estimating performance under heavy loads and a packet protocol for error controlled communication are included for completeness. .A Metcalfe, R. M. Boggs, D. R. .K computer networks, packet switching, multiprocessing, distributed control, distributed computing, broadcast communication, statistical arbitration .I 2850 .T Symbolic Execution and Program Testing .W This paper describes the symbolic execution of programs. Instead of supplying the normal inputs to a program (e.g. numbers) one supplies symbols representing arbitrary values. The execution proceeds as in a normal execution except that values may be symbolic formulas over the input symbols. The difficult, yet interesting issues arise during the symbolic execution of conditional branch type statements. A particular system called EFFIGY which provides symbolic execution for program testing and debugging is also described. It interpretively executes programs written in a simple PL/I style programming language. It includes many standard debugging features, the ability to manage and to prove things about symbolic expressions, a simple program testing manager, and a program verifier. A brief discussion of the relationship between symbolic execution and program proving is also included. .A King, J. C. .K symbolic execution, program testing, program debugging, program proving, program verification, symbolic interpretation .I 2851 .T Formal Verification of Parallel Programs .W Two formal models for parallel computation are presented: an abstract conceptual model and a parallel-program model. The former model does not distinguish between control and data states. The latter model includes the capability for the representation of an infinite set of control states by allowing there to be arbitrarily many instruction pointers (or processes) executing the program. An induction principle is presented which treats the control and data state sets on the same ground. Through the use of "place variables," it is observed that certain correctness conditions can be expressed without enumeration of the set of all possible control states. Examples are presented in which the induction principle is used to demonstrate proofs of mutual exclusion. It is shown that assertions-oriented proof methods are special cases of the induction principle. A special case of the assertions method, which is called parallel place assertions, is shown to be incomplete. A formalization of "deadlock" is then presented. The concept of a "norm" is introduced, which yields an extension, to the deadlock problem, of Floyd's technique for proving termination. Also discussed is an extension of the program model which allows each process to have its own local variables and permits shared global variables. Correctness of certain forms of implementation is also discussed. An Appendix is included which relates this work to previous work on the satisfiability of certain logical formulas. .A Keller, R. M. .K parallel program, correctness, verification, assertions, deadlock, mutual exclusion, Petrinet .I 2852 .T The Technology of Computer Center Management: A Proposed Course for Graduate Professional Programs in Computer Science or in Information Systems .W McFarlan and Nolan have made a strong case for adding a course on information systems administration to the 13 courses proposed by the ACM Curriculum Committee on Computer Education for Management for Graduate Professional Programs in Information Systems. This paper is a report on a course entitled, "The Technology of Computer Center Management," which has been offered at Purdue for the past four years. The course is suitable either for graduate professional programs in information systems or for graduate professional programs in computer science. .A Conte, S. D. Halstead, M. H. .K education, information systems administration, computer center management, computer system performance .I 2853 .T A Numbering System for Permutations of Combinations .A Knott, G. D. .K combinatorics,coding systems, storage mapping functions .I 2854 .T Multiprocessing Compactifying Garbage Collection (Corrigendum) .A Steele, G. L. Jr. .I 2855 .T An Efficient List-Moving Algorithm Using Constant Workspace .W An efficient algorithm is presented for moving arbitrary list structures, using no storage (apart from program variables) other than that required to hold the original list and the copy. The original list is destroyed as it is moved. No mark bits are necessary, but pointers to the copy must be distinguishable from pointers to the original. The algorithm is superior in execution speed to previous algorithms for the same problem. Some variations and extensions of the algorithm are discussed. .A Clark, D. W. .K list moving, list copying, LISP, space complexity, constant workspace .I 2856 .T The Synthetic Approach to Decision Table Conversion .W Previous approaches to the problem of automatically converting decision tables to computer programs have been based on decomposition. At any stage, one condition is selected for testing, and two smaller problems (decision tables with one less condition) are created. An optimal program (with respect to average execution time or storage space, for example) is located only through implicit enumeration of all possible decision trees using a technique such as branch-and-bound. The new approach described in this paper uses dynamic programming to synthesize an optimal decision tree from which a program can be created. Using this approach, the efficiency of creating an optimal program is increased substantially, permitting generation of optimal programs for decision tables with as many as ten to twelve conditions. .A Schumacher, H. Sevcik, K. C. .K decision tables, decision trees, dynamic programming, optimal programs .I 2857 .T Referencing Lists by an Edge .W An edge reference into a list structure is a pair of pointers to adjacent nodes. Such a reference often requires little additional space, but its use can yield efficient algorithms. For instance, a circular link between the ends of a list is redundant if the list is always referenced by that edge, and list traversal is easier when that link is null. Edge references also allow threading of nonrecursive lists, can replace some header cells, and enhance the famous exclusive-or-trick to double-link lists .A Wise, D. S. .K list processing, circular, doubly linked, overlapping sublist, header cell, pointer, cursor .I 2858 .T A Process for the Determination of Addresses in Variable Length Addressing .W An algorithm is presented for the assignment of instruction addresses and formats under the following conditions: (1) the length of the instruction varies as a function of the distance of the instruction from its target; (2) there exists an optimality criterion which implies some preferential choices subject to the addressing constraints. This may be, for example, achieving the smallest number of long instructions, in which case the total code length is minimized, or minimizing the assigned address of a specified point in the program. The algorithm is suitable for arbitrary program structure and a choice of optimization criteria. .A Frieder, G. Saal, H. J. .K variable length addressing, assembler, paging .I 2859 .T Interference in Multiprocessor Computer Systems with Interleaved Memory .W This paper analyzes the memory interference caused by several processors simultaneously using several memory modules. Exect results are computed for a simple model of such a system. The limiting value is derived for the relative degree of memory interference as the system size increases. The model of the limiting behavior of the system yields approximate results for the simple model and also suggests that the results are valid for a much larger class of models, including those more nearly like real systems that the simple model are tested against some measurements of program behavior and simulations of systems using memory references from real programs. The model results provide a good indication of the performance that should be expected from real system of this type. .A Baskett, F. Smith, A. J. .K memory, memory interference, multiprocessing, interleaved memory, trace driven simulation .I 2860 .T A Practitioner's Guide To Addressing Algorithms .W This paper consolidates a number of popular rules of thumb which have been suggested for the design of record addressing algorithms, and discusses the applicability of these rules to large commercial databases. Guidelines for selecting identifier transformations, overflow techniques, loading factors, bucket sizes, and loading order and considered. Particular attention is focused on the reasonableness of common heuristics for determining primary or secondary bucket sizes. A mathematical model which explicitly considers storage device characteristics and time/space cost tradeoffs is used to analyze the effect of design parameters on overall system costs. A specific design example is presented and solved. .A Severance, D. Duhne, R. .K data management, file retrieval, searching, addressing techniques, hashing functions, synonym resolution, loading factor, bucket size, heuristic design, rules of thumb .I 2861 .T Production and Employment of Ph.D.'s in Computer Science .A Taulbee, O. E. Conte, S. D. .I 2862 .T Analysis of the PFF Replacement Algorithm via a Semi-Markov Model .W An analytical model is presented to estimate the performance of the Page Fault Frequency (PFF) replacement algorithm. In this model, program behavior is represented by the LRU stack distance model and the PFF replacement algorithm is represented by a semi-Markov model. Using these models, such parameters as the inter-page-fault interval distribution, the probability of the number of distinct pages being referenced during an inter-page-fault interval, etc. are able to be analytically determined. Using these models to evaluate these parameter values permits study of the performance of the replacement algorithm by simulating the page fault events rather than every page reference event. This significantly reduces the required computation time in estimating the performance of the PFF algorithm. .A Chu, W. W. Opderbeck, H. .K PFF replacement algorithm, semi-Markov model, simulation of replacement algorithm .I 2863 .T VMIN-An Optimal Variable-Space Page Replacement Algorithm .W A criterion for comparing variable space page replacement algorithms is presented. An optimum page replacement algorithm, called VMIN, is described and shown to be optimum with respect to this criterion. The results of simulating VMIN, Denning's working set, and the page partitioning replacement algorithms on five virtual memory programs are presented to demonstrate the improvement possible over the known realizable variable space algorithms. .A Prieve, B. G. Fabry, R. S. .K demand paging, performance measurement, multilevel memory systems, virtual memory, working set, page replacement algorithms, optimal page replacement .I 2864 .T Characteristics of Program Localities .W The term "locality" has been used to denote that subset of a program's segments which are referenced during a particular phase of its execution. A program's behavior can be characterized in terms of its residence in localities of various sizes and lifetimes, and the transitions between these localities. In this paper the concept of a locality is made more explicit through a formal definition of what constitutes a phase of localized reference behavior, and by a corresponding mechanism for the detection of localities in actual reference strings. This definition provides for the existence of a hierarchy of localities at any given time, and the reasonableness of the definition is supported by examples taken from actual programs. Empirical data from a sample of production Algol 60 programs is used to display distributions of locality sizes and lifetimes, and these results are discussed in terms of their implications for the modeling of program behavior and memory management in virtual memory systems. .A Madison, A. W. Batson, A. P. .K program behavior, memory management, locality .I 2865 .T Verifying Properties of Parallel Programs: An Axiomatic Approach .W An axiomatic method for proving a number of properties of parallel programs is presented. Hoare has given a set of axioms for partial correctness, but they are not strong enough in most cases. This paper defines a more powerful deductive system which is in some sense complete for partial correctness. A crucial axiom provides for the use of auxiliary variables, which are added to a parallel program as an aid to proving it correct. The information in a partial correctness proof can be used to prove such properties as mutual exclusion, freedom from deadlock, and program termination. Techniques for verifying these properties are presented and illustrated by application to the dining philosophers problem. .A Owicki, S. Gries, D. .K structured multiprogramming correctness proofs, program verification, concurrent processes, synchronization, mutual exclusion, deadlock .I 2866 .T Proving Monitors .W Interesting scheduling and sequential properties of monitors can be proved by using state variables which record the monitor's history and by defining extended proof rules for their wait and signal operations. These two techniques are defined, discussed, and applied to examples to prove properties such as freedom from indefinitely repeated overtaking or unnecessary waiting upper bounds on queue lengths, and historical behavior. .A Howard, J.H. .K monitors, correctness, proof rules, historical variables, concurrency, scheduling, bounded buffer, semaphores, alarm clock, disk head .I 2867 .T Modularization and Hierarchy in a Family of Operating Systems .W This paper describes the design philosophy used in the construction of a family of operating systems. It is shown that the concepts of module and level do not coincide in a hierarchy of functions. Family members can share much software as a result of the implementation of run-time modules at the lowest system level. .A Habermann,A. N. Flon, L. Cooprider, L. .K incremental machine design, module, data type, address space, virtual memory .I 2868 .T Reflections on an Operating System Design .W The main features of a general purpose multiaccess operating system developed for the CDC 6400 at Berkeley are presented, and its good and bad points are discussed as they appear in retrospect. Distinctive features of the design were the use of capabilities for protection, and the organization of the system into a sequence of layers, each building on the facilities provided by earlier ones and protecting itself from the malfunctions of later ones. There were serious problems in maintaining the protection between layers when levels were added to the memory hierarchy; these problems are discussed and a new solution is described. .A Lampson, B. W. Sturgis, H. E. .K operating system, protection, capabilities, layering domains, memory hierarchy, faults .I 2869 .T Security Kernel Validation in Practice .W A security kernel is a software and hardware mechanism that enforces access controls within a computer system. The correctness of a security kernel on a PDP-11/45 is being proved. This paper describes the technique used to carry out the first step of the proof: validating a formal specification of the program with respect to a axioms for a secure system. .A Millen, J. K. .K validation, verification, correctness, security kernel, formal specification, protection .I 2870 .T A Lattice Model of Secure Information Flow .W This paper investigates mechanisms that guarantee secure information flow in a computer system. These mechanisms are examined within a mathematical framework suitable for formulating the requirements of secure information flow among security classes. The central component of the model is a lattice structure derived from the security classes and justified by the semantics of information flow. The lattice properties permit concise formulations of the security requirements of different existing systems and facilitate the construction of mechanisms that enforce security. The model provides a unifying view of all systems that restrict information flow, enables a classification of them according to security objectives, and suggests some new approaches. It also leads to the construction of automatic program certification mechanisms for verifying the secure flow of information through a program. .A Denning, D. E. .K protection, security, information flow, security class, lattice, program certification .I 2871 .T Logical Analysis of Programs .W Most present systems for verification of computer programs are incomplete in that intermediate inductive assertions must be provided manually by the user, termination is not proven, and incorrect programs are not treated. As a unified solution to these problems, this paper suggests conducting a logical analysis of programs by using invariants which express what is actually occurring in the program. The first part of the paper is devoted to techniques for the automatic generation of invariants. The second part provides criteria for using the invariants to check simultaneously for correctness (including termination) or incorrectness. A third part examines the implications of the approach for the automatic diagnosis and correction of logical errors. .A Katz, S. Manna, Z. .K logical analysis, invariants, program verification, correctness, incorrectness, termination, automatic debugging .I 2872 .T A Counterintuitive Example of Computer Paging (Corrigendum) .A Fagin, R. .I 2873 .T LG: A Language for Analytic Geometry .W A conversational programming language for analytic geometry is described, together with some aspects of its implementation. The language allows the flexible definition of geometric objects and elements, computes their parameters, and displays the results. It also provides the capability of specifying a geometric figure via a collection of parameters and displaying various loci corresponding to these parameters. A third characteristic consists of the possibility of using this language to design other user oriented languages. LG has been specifically designed for use by nonprogrammers; it is easy to learn and very close to the natural language used in geometry. .A Raymond, J. .K interactive programming, problem oriented languages, computer graphics, interpreters, analytic geometry .I 2874 .T A Comparative Evaluation of Versions of BASIC .W From its inception, The BASIC language has grown in terms of its usage, scope of usage, and its features. This article compares ten of the current versions of BASIC with each other, with two earlier versions, and with the proposed standard for minimal BASIC. The comparison is arranged by the features of the versions and by computational comparison of computation and times and processing costs. .A Lientz, B. P. .K BASIC, interpretive language summary .I 2875 .T Development of an International System for Legal Protection of Computer Programs .A Smoot, O. R. .K copyright of software, patenting of software, legal protection of software .I 2876 .T Intentional Resolution of Privacy Protection in Database Systems .W Traditionally, privacy protection in database systems is understood to be the control over what information a given user can get from a database. This paper is concerned with another, independent, dimension of privacy protection, the control over what a user is allowed to do with a piece of information supplied to him by the database. The ability to condition the supply of information on its intended use is called here "intentional resolution" of privacy protection. The practical importance of intentional resolution is demonstrated by several examples, and its realization is discussed. It is shown that intentional resolution can be achieved, but that it involves a radical change from the traditional approach to the process of user-database interaction. In particular, it appears to be necessary for the database to impose a certain amount of control over the internal behavior of users' programs which interact with it. A model for user-database interaction which admits such a control is developed. .A Minsky, N. .K protection in database, protection in programming languages, privacy, security, intentional resolution of privacy, interaction with databases .I 2877 .T A Program Data Flow Analysis Procedure .W The global data relationships in a program can be exposed and codified by the static analysis methods described in this paper. A procedure is given which determines all the definitions which can possibly "reach" each node of the control flow graph of the program and all the definitions that are "live" on each edge of the graph. The procedure uses an "interval" ordered edge listing data structure and handles reducible and irreducible graphs indistinguishably. .A Allen, J. E. Cocke, J. .K program optimization, data flow analysis, flow graphs, algorithms, compilers .I 2878 .T Joining Policies in a Multipriority Multiclass Batch Computer System .W Consider a multipriority batch computer system which users from several different classes may join, its toll, service, and waiting charges. Such a system is formulated here as a semi-Markov decision process, in which the aim of arriving users is to minimize their expected loss. The optimal joining policy is one of arriving users who may join the system at some of its queues is a control limit policy, with a single control number for any possible queue and the user's class; a newly arriving user will join a queue that is not filled up to the control number corresponding to this queue and the user's class. In this paper control numbers, as well as lower and upper bounds for the control numbers and the capacities of the system's queues, are derived. .A Babad, J. M. Modiano, M. M. .K priority queues, semi-Markov process, price scheduling, operating system .I 2879 .T Computer Science as Empirical Inquiry: Symbols and Search .A Newell, A. Simon, H. A. .K symbols, search, science, computer science, empirical, Turing, artificial intelligence, intelligence, list processing, cognition, heuristics, problem solving .I 2880 .T A Fast Division Technique for Constant Divisors .W A fast algorithm for division by constant divisors is presented. The method has proved very useful implemented as microcode ona binary machine, and can be adapted directly into hardware. The mathematical foundations of the algorithm are presented as well as some performance measures. .A Artzy, E. Hinds, J. A. Saal, H. J. .K constant divisors, division algorithms, bit addressable memory, microprogram .I 2881 .T A Counterintuitive Example of Computer Paging .W A counterexample is exhibited to a natural conjecture concerning the optimal way to group records into pages in the independent reference model of computer paging (an organization is said to be optimal if the "least recently used" miss ratio is minimized). .A Fagin, R. .K least recently used, most likely together, independent reference model, storage organization, record allocation .I 2882 .T A Stochastic Evaluation Model for Database Organization in Data Retrieval Systems .W Experimental work in the valuation of large scale data retrieval systems has been scarce due to its difficulty and prohibitive cost. This paper discusses a simulation model of a data retrieval system which has the effect of significantly reducing the cost of experimentation and enabling research never attempted before. The model is designed to estimate the retrieval workload of alternative data retrieval systems. These data retrieval systems can be organized under several database organizations, including inverted list, threaded list, and cellular list organizations and hybrid combinations of these systems. Effectiveness of the methodology is demonstrated by using the model to study the effect of database organizations in data retrieval systems. In particular, the impact of query complexity is analyzed. .A Siler, K. F. .K database architecture, database performance and evaluation, invented list, threaded list, cellular list, information retrieval, database organizations, query complexity, stochastic model, Monte Carlo simulation .I 2883 .T An Application of Heuristic Search Methods to Edge and Contour Detection .W This paper presents a method for detecting edges and contours in noisy pictures. The properties of an edge are embedded in a figure of merit and the edge detection problem becomes the problem of minimizing the given figure of merit. This problem can be represented as a shortest path problem on a graph and can be solved using well-known graph search algorithms. The relations between this representation of the minimization problem and a dynamic programming approach are discussed, showing that the graph search method can lead to substantial improvements in computing time. Moreover, if heuristic search methods are used, the computing time will depend on the amount of noise in the picture. Some experimental results are given; these show how various information about the shape of the contour of an object can be embedded in the figure of merit, thus allowing the extraction of contours from noisy picture and the separation of touching objects. .A Martelli, A. .K picture processing, pattern recognition, edge detection, contour detection, contour following, optimization problems, dynamic programming, shortest path, heuristic search methods, problem solving methods .I 2884 .T Permutation Enumeration: Four New Permutation Algorithms .W Classical permutation enumeration algorithms encounter special cases requiring additional computation every nth permutation when generating the n! permutations on n marks. Four new algorithms have the attribute that special cases occur every n(n-1)permutations. Two of the algorithms produce the next permutation with a single exchange of two marks. The other two algorithms infrequently exchange more than two marks, but the rules for generating the next permutation are very simple. Performance tests which have counted execution of assignment statements, comparisons, arithmetic operations, and subscripted array references have shown superiority of the new algorithms compared to Boothroyd's implementation of M. B. Well's algorithm and Ehrlich's implementation of the Johnson-Trotter algorithm. .A Ives, F. M. .K permutations, loop-free algorithms .I 2885 .T On Self-Organizing Sequential Search Heuristics .W This paper examines a class of heuristics for maintaining a sequential list in approximately optimal order with respect to the average time required to search for a specified element, assuming that each element is searched for with a fixed probability independent of previous searches performed. The "move to front" and "transposition" heuristics are shown to be optimal to within a constant factor, and the transposition rule is shown to be the more efficient of the two. Empirical evidence suggests that transposition is in fact optimal for any distribution of search probabilities. .A Rivest, R. .K searching, self-organizing, list-processing, heuristics .I 2886 .T Semantic Evaluation from Left to Right .W This paper describes attribute grammars and their use for the definition of programming languages and compilers; a formal definition of attribute grammars and a discussion of some of its important aspects are included. The paper concentrates on the evaluation of semantic attributes in a few passes from left to right over the derivation tree of a program. A condition for an attribute grammar is given which assures that the semantics of any program can be evaluated in a single pass over the derivation tree, and an algorithm is discussed which decides how many passes from left to right are in general necessary, given the attribute grammar. These notions are explained in terms of an example grammar which describes the scope rules of Algol 60. Practical questions, such as the relative efficiency of different evaluation schemes, and the ease of adapting the attribute grammar of a given programming language to the left-to-right evaluation scheme are discussed. .A Bochmann, G. V. .K attribute grammars, semantics of programming languages, semantic attributes, left-to-right parsing, multipass compilers, semantic evaluation, semantic conditions .I 2887 .T A Study of Errors, Error-Proneness, and Error Diagnosis in Cobol .W This paper provides data on Cobol error frequency for correction of errors in student-oriented compilers, improvement of teaching, and changes in programming language. Cobol was studied because of economic importance, widespread usage, possible error-including design, and lack of research. The types of errors were identified in a pilot study; then, using the 132 error types found, 1,777 errors were classified in 1,4000 runs of 73 Cobol students. Error density was high: 20 percent of the types contained 80 percent of the total frequency, which implies high potential effectiveness for software based correction of Cobol. Surprisingly, only four high-frequency errors were error-prone, which implies minimal error inducing design. 80 percent of Cobol misspellings were classifiable in the four error categories of previous researchers, which implies that Cobol misspellings are correctable by existent algorithms. Reserved word usage was not error-prone, which implies minimal interference with usage of reserved words. Over 80 percent of error diagnosis was found to be inaccurate. Such feedback is not optimal for users, particularly for the learning user of Cobol. .A Litecky, C. R. Davis, G. B. .K errors in programming, error correction, Cobol, programming language errors, error analysis, diagnostics, error-proneness, error frequency, spelling errors, syntactic errors, learning of programming, teaching of programming .I 2888 .T Information Reference Coding .W Items in business systems have to be identified by reference codes, which can later be used as data codes and file keys in an associated data processing system. In business systems associated with large collections of integrated files (database) it is vital to assign codes in a methodical way so as to control future extension and changes while maintaining correct program action. The principles of methodical coding are discussed, and the way in which logical connections between data items must be reflected in the reference code framework is shown through a set-theoretic information model. .A Florentin, J. J. .K data, file, reference code, systems analysis, information modeling, database .I 2889 .T Performance of Height-Balanced Trees .W This paper presents the results of simulations that investigate the performance of height-balanced (HB[k]) trees. It is shown that the only statistic of HB[1] trees (AVL trees) that is a function of the size of the tree is the time to search for an item in the tree. For sufficiently large trees, the execution times of all procedures for maintaining HB[1] trees are independent of the size of the tree. In particular, an average of .465 restructures are required per insertion, with an average of 2.78 nodes revisited to restore the HB[1] property; an average of .A Karlton, P. L. Fuller, S. H. Scroggs, R. E. Kaehler, E. B. .K HB[k] trees, balanced trees, AVL trees, information storage and retrieval, searching .I 2890 .T On Quadratic Adaptive Routing Algorithms .W Two analytic models of a store-and-forward communications network are constructed, one to find the optimal message routing and the other to illustrate the equilibrium (stationary state) maintained by an adaptive routing algorithm. These models show that adaptive routing does not satisfy the necessary conditions for an optimal routing, Adaptive routing tends to overuse the direct path and underuse alternate routes because it does not consider the impact of its current routing decision on the future state of the network. The form of the optimality conditions suggests that a modification of the adaptive algorithm will result in optimality. The modification requires the substitution of a quadratic bias term instead of a linear one in the routing table maintained at each network node. Simulation results are presented which confirm the theoretical analysis for a simple network. .A Agnew, C. E. .K routing algorithms, adaptive routing, quadratic routing, alternate routing, store-and-forward network, distributed network, computer network, message switching .I 2891 .T An Anomaly in Disk Scheduling: A Comparison of FCFS and SSTF Seek Scheduling Using an Empirical Model for Disk Accesses .W A model for disk accesses based on published measurements is developed. The model is used to show that under highly probable conditions, FCFS seek scheduling is superior to SSTF scheduling in the sense of having a lower mean queue length. A simple example of an arrival sequence illustration this anomaly is presented. .A Wilhelm, N. C. .K disks, disk scheduling, seek scheduling .I 2892 .T A Study of Line Overhead in the Arpanet .W The form, extent, and effect of the communication line overhead in the ARPANET are considered. The source of this over head is separated into various levels of protocol hierarchy and the characteristics of each level are summarized. Then the line efficiency for various models of system use is studied. Some measurements of line efficiency for the ARPANET are presented and by extrapolation these measurements are used to anticipate overhead in a heavily loaded network. Similar results are derived for a recently proposed network protocol and compared with those for the current system. .A Kleinrock, L. Naylor, W. E. Opderbeck, H. .K ARPANET, computer communication networks, interprocess communication, measurement, packet switching, performance evaluation and efficiency, resource sharing .I 2893 .T Computers as an Innovation in American Local Governments .W Computers and electronic data processing are a major technological innovation in the operations of American local government. This paper establishes that there is substantial variation among the larger local governments in the rate at which they adopt computer technology, in the level of financial support they provide for EDP, and in the extensiveness and sophistication of their automated applications. The central question addressed is: What might explain the differences between governments in the extent to which they adopt and use computers? Hypotheses are tested for several streams of explanatory factors, using data from more than 500 city and county governments. The findings identify certain local government milieus which are particularly conducive to higher levels of computer innovation. Somewhat unexpected findings reveal the significant impact of the distribution of control over EDP decisions and the dominant political values within the government. Other important factors include the measured need for computer applications and the presence of external funding support for computing. Finally, the paper suggests a framework for identifying the key determinants of other technological innovations. .A Danziger, J. N. Dutton, W. H. .K innovation, technological innovation, computer utilization, computer adoption, American local government, city government computers, county government computers. .I 2894 .T A Methodology for Interactive Computer Service Measurement .W A measurement methodology applicable to in teractive computer service is described. Its primary purpose is to enable external, user-oriented assessment of computer performance, instead of the more frequently used in ternal system measurement techniques. The NBS Network Measurement System is employed as the external measurement tool. Example data have been collected and analyzed. A demonstration of the methodology, leading to a pragmatic figure-of-merit evaluation of results, is included. .A Adrams, M. D. .K in teractive system, computer service, measurement, performance, external measurement, methodology, measurement model,network measurement system, measures, figure-of-merit. .I 2895 .T A Language for Formal Problem Specification .W A language for specifying the in tended behavior of communicating parallel processes is described. The specifications are constrain ts on the order in which events of a computation can occur. The language is used to write specifications of the readers/writers problem and the writer priority of the second readers/writers problem. .A Greif, I. .K formal specifications,program correctness, parallel processing, synchronization, readers/writers problem .I 2896 .T An Exercise in Proving Parallel Programs Correct .W A parallel program, Dijkstra's on-the-fly garbage collector, is proved correct using a proof method developed by Owicki. The fine degree of in terleaving in this program makes it especially difficult to understand, and complicates the proof greatly. Difficulties with proving such parallel programs correct are discussed. .A Gries, D. .K garbage collection, multiprocessing, program correctness for multiprocessing tasks .I 2897 .T A Case Study of a New Code Generation Technique for Compilers .W Recent developments in optimizing techniques have allowed a new design for compilers to emerge. Such a compiler translates the parsed source code into lower level code by a sequence of steps. Each step expands higher level statements into blocks of lower level code and then performs optimizations on the result. Each statement has only one possible expansion-the task of tailoring this code to take advantage of any special cases is done by the optimizations. This paper provides evidence that this strategy can indeed result in good object code. The traditionally difficult PL/I concatenate statement was investigated as a detailed example. A set of fairly simple optimizations was identified which allow the compiler to produce good code. More elaborate optimizations can further improve the object code. For most contexts of the concatenate statement, the code produced by a compiler using the expansion-optimization strategy described above compares favorably with the code produced by a conventional PL/I optimizing compiler. .A Carter, J. L. .K compiler structure, optimizing compiler, code generation, PL/I compiler, concatenation, program optimization, optimization techniques, data flow analysis .I 2898 .T A Conceptual Framework for a Nonprocedural Programming Language .W A sequential programming language forces the programmer to prescribe explicitly the order in which the operations in his program have to be executed, even if the order is not relevant to the solution of his problem. The requirement to indicate irrelevant sequencing can be removed if the language provides facilities for specifying a task in a nonprocedural manner. In general, a program specified in this way will allow concurrent evaluation. This paper describes a conceptual framework for a high level programming language providing both nonprocedural and sequential facilities. Within a program, nonprocedural and sequential program modules may be nested freely. .A Kessels, J. L. W. .K parallel programming, descriptive programming, nonprocedural programming, definitional language, data flow programming, applicative programming .I 2899 .T A Survey of Computer Science Offerings In Small Liberal Arts Colleges. .W Recent curricular development in computer science together with student in terest in pursuing topics in computer science beyond the usual programming courses have encouraged small liberal arts colleges to expand their offerings. This paper summarizes the results of a survey taken to determine the type of computer science programs being offered in these colleges. The results indicate that over half of these colleges either have no computer science program or offer only programming courses. .A Lopez, A. A. Raymond, R. Tardiff, R. .K computer science, education, curricula, small colleges .I 2900 .T Some Theorems to Aid in Solving the File Allocation Problem .W The file allocation problem-i.e. the problem of finding the optimal set of network sites at which to locate copies of a file-is known to be, in general, polynomial complete. Heuristics and other aids to finding optimal, or near-optimal, solutions are therefore much needed. In this paper we present three theorems which can be applied a priori to indicate that certain sites should (or should not) be included in an optimal allocation. .A Grapa, E. Belford, G. G. .K File allocation, computer networks, distributed data management .I 2901 .T An Encoding Method for Multifield Sorting and Indexing .W Sequences of character strings with an order relation imposed between sequences are considered. An encoding scheme is described which produces a single, order-preserving string from a sequence of strings. The original sequence can be recovered from the encoded string, and one sequence of strings precedes another if and only if the encoding of the first precedes the encoding of the second. The strings may be variable length, without a maximum length restriction, and no symbols need be reserved for control purposes. Hence any symbol may occur in any string. The scheme is useful for multifield sorting, multifield indexing, and other applications where ordering on more than one field is important. .A Blasgen, M. W. Casey, R. G. Eswaran, K. P. .K Sorting multifield indexes, lexicographic order, searching, encoding .I 2902 .T Dynamic Memory Allocation in Computer Simulation .W This paper investigates the performance of 35 dynamic memory allocation algorithms when used to service simulation programs as represented by 18 test cases. Algorithm performance was measured in terms of processing time, memory usage, and external memory fragmentation. Algorithms main taining separate free space lists for each size of memory block used tended to perform quite well compared with other algorithms. Simple algorithms operating on memory ordered lists (without any free list) performed surprisingly well. Algorithms employing power-of-two block sizes had favorable processing requirements but generally unfavorable memory usage. Algorithms employing LIFO, FIFO, or memory ordered free lists generally performed poorly compared with others. .A Nielsen, N. R. .K algorithm performance,dynamic memory allocation, dynamic memory management, dynamic storage allocation, garbage collection, list processing, memory allocation, memory management, programming techniques, simulation, simulation memory management, simulation techniques, space allocation, storage allocation .I 2903 .T Improving Programs by the Introduction of Recursion .W A new technique of program transformation, called "recursion in troduction," is described and applied to two algorithms which solve pattern matching problems. By using recursion in troduction, algorithms which manipulate a stack are first translated into recursive algorithms in which no stack operations occur. These algorithms are then subjected to a second transformation, a method of recursion elimination called "tabulation," to produce programs with a very efficient running time. In particular, it is shown how the fast linear pattern matching algorithm of Knuth, Morris, and Pratt can be derived in a few steps from a simple nonlinear stack algorithm. .A Bird, R. S. .K program transformation, optimization of programs, recursion elimination, pattern matching algorithms, stacks, computational induction .I 2904 .T An Algorithm for Reduction of Operator Strength .W A simple algorithm which uses an indexed temporary table to perform reduction of operator strength in strongly connected regions is presented. Several extensions, including linear function test replacement, are discussed. These algorithms should fit well into an integrated package of local optimization algorithms. .A Cocke, J. .K compilers, optimization of compiled code, program analysis, operator strength reduction, test replacement, strongly connected region .I 2905 .T Perfect Hashing Functions: A Single Probe Retrieving Method for Static Sets .W A refinement of hashing which allows retrieval of an item in a static table with a single probe is considered. Given a set I of identifiers, two methods are presented for building, in a mechanical way, perfect hashing functions, i.e. functions transforming the elements of I into unique addresses. The first method, the "quotient reduction" method, is shown to be complete in the sense that for every set I the smallest table in which the elements of I can be stored and from which they can be retrieved by using a perfect hashing function constructed by this method can be found. However, for nonuniformly distributed sets, this method can give rather sparse tables. The second method, the "remainder reduction" method, is not complete in the above sense, but it seems to give minimal (or almost minimal) tables for every kind of set. The two techniques are applicable directly to small sets. Some methods to extend these results to larger sets are also presented. A rough comparison with ordinary hashing is given which shows that this method can be used conveniently in several practical applications. .A Sprugnoli, R. .K hashing, hashing methods, hash coding, direct addressing, identifier-to-address transformations, perfect hashing functions, perfect hash coding, reduction, scatter storage .I 2906 .T A Very High Level Programming Language for Data Processing Applications .W Application development today is too labor-in tensive. In recent years, very high-level languages have been increasingly explored as a solution to this problem. The Business Definition Language (BDL) is such a language, one aimed at business data processing problems. The concepts in BDL mimic those which have evolved through the years in businesses using manual methods. This results in three different sublanguages or components: one for defining the business forms, one for describing the business organization, and one for writing calculations. .A Hammer, M. owe, W. G. Kruskal, V. J. Wladawsky, I. .K very high level language, nonprocedural language, data flow language, business application, business data processing, structured programming, modular programming, format specification, and design methodology .I 2907 .T The Optimal Approach to Recursive Programs .W The classical fixed poin t approach toward recursive programs suggests choosing the "least defined fixed poin t" as the most appropriate solution to a recursive program. A new approach is described which in troduction an " optimal fixed point," which, in contrast to the least defined fixed poin t, embodies the maximal amount of valuable information embedded in the program. The practical implications of this approach are discussed and techniques for proving properties of optimal fixed poin t are given. The presentation is informal, with emphasis on examples. .A Manna, Z. Shamir, A. .K recursive programs, fixed poin ts, least fixedpoints, optimal fixed poin ts, proof techniques .I 2908 .T A Note On Reflection-Free Permutation Enumeration .A Roy, M. K. .K permutations, reflection-free generation .I 2909 .T What Can We Do about the Unnecessary Diversity of Notation for Syntactic Definitions? .A Wirth, N. .K syntactic description language, extended BNF .I 2910 .T Equivalence of Hough Curve Detection to Template Matching .A Stockman, G. C. .K picture processing, pattern recognition, curve detection, Hough transformation, template matching .I 2911 .T Anomalous Behavior of the Fifty-Percent Rule in Dynamic Memory Allocation .W This paper reports simulation data showing that, in dynamic memory allocation, the average free-to-allocated-block ratio can differ considerably and in both directions from the predictions of the 50 percent rule. A new derivation is given, and it is shown that previous derivations make an assumption that may be violated frequently. On the basis of the simulation data and the derivation, it is hypothesized that the anomalous behavior results from the combined effects of systematic placement and the statistics of the release process. Additional simulations support this hypothesis. Systematic placement, which refers to the natural convention of always allocating storage requests against the same end of the free block selected by the allocation strategy, tends to order blocks within contiguous groups according to their allocation time. The degree of anomalous behavior depends on the extent to which allocated blocks are released in the order of their allocation. For non-Markovian release processes, the extent of the correlation between allocation order and release order varies approximately inversely with the coefficient of variation of the memory residence time distribution. The simulations show that allocation efficiency depends strongly on the residence time distribution; efficiency decreases as the distribution's coefficient of variation increases. Some practical implications are briefly discussed. .A Shore, J. E. .K dynamic memory allocation, storage fragmentation, fifty-percent rule, first-fit, simulation .I 2912 .T Concurrent Reading and Writing .W The problem of sharing data among asynchronous process is considered. It is assumed that only one process at a time can modify the data, but concurrent reading and writing is permitted. Two general theorems are proved, and some algorithms are presented to illustrate their use. These include a solution to the general problem in which a read is repeated if it might have obtained an incorrect result, and two techniques for transmitting messages between processes. These solutions do not assume any synchronizing mechanism other than data which can be written by one process and read by other processes. .A Lamport, L. .K asynchronous multiprocessing, multiprocess synchronization, readers/writers problem, shared data .I 2913 .T The Aliasing Problem in Computer-Generated Shaded Images .W Certain defects, such as jagged edges and disappearing detail, have long been an annoyance in digitally generated shaded images. Although increasing the resolution or defocusing the display can attenuate them, an understanding of these defects leads to more effective methods. This paper explains the observed defects in terms of the aliasing phenomenon inherent in sampled signals and discusses prefiltering as a recognized cure. A method for evaluating filters is presented, the application of prefiltering to hidden-surface algorithms is discussed, and an implementation of a filtering tiler is shown accompanied by examples of its effectiveness. .A Crow, F. C. .K aliasing, computer graphics, convolutional filtering, hidden-surface removal, sampling .I 2914 .T Use of the LRU Stack Depth Distribution for Simulation of Paging Behavior .W Two families of probability distributions were needed for use by a virtual memory simulation model: headway between page fault distributions, and working set size distributions. All members of both families can be derived from the LRU stack depth distribution. Simple expressions for the computation of both kinds of distributions are given. Finally, examples are given of both families of distributions as computed from a published stack depth distribution. .A Turner, R. Strecker, B. .K virtual memory, paging, LRU stack, working set, headway between page faults, computer system simulation .I 2915 .T Considerations for Future Programming Language Standards Activities .W This paper reviews the current state of programming language standards activities with respect to the anomalies which exist between the various published and proposed standards for Fortran, Cobol, PL/I, and Basic. Proposals are made for the inclusion of formalisms within future standards and the extension of the standards to include additional items such as error conditions and documentation. .A Lee, J. A. N. .K programming languages, standards, formalisms, formal descriptions, Fortran, Cobol, PL/I, Basic, Vienna Definition Language (VDL) .I 2916 .T A Fast String Searching Algorithm .W An algorithm is presented that searches for the location, "i," of the first occurrence of a character string, "pat," in another string, "string." During the search operation, the characters of pat are matched starting with the last character of pat. The information gained by starting the match at the end of the pattern often allows the algorithm to proceed in large jumps through the text being searched. Thus the algorithm has the unusual property that, in most cases, not all of the first i characters of string are inspected. The number of characters actually inspected (on the average) decreases as a function of the length of pat. For a random English pattern of length 5, the algorithm will typically inspect i/4 characters of string before finding a match at i. Furthermore, the algorithm has been implemented so that (on the average) fewer than i+patlen machine instructions are executed. These conclusions are supported with empirical evidence and a theoretical analysis of the average behavior of the algorithm. The worst case behavior of the algorithm is linear in i+patlen, assuming the availability of array space for tables linear in patlen plus the size of the alphabet. .A Boyer, R. S. .K bibliographic search, computational complexity, information retrieval, linear time bound, pattern matching, text editing .I 2917 .T SITAR: An Interactive Text Processing System for Small Computers (Corrigendum) .A Schneider, B. R. Jr. Watts, R. M. .I 2918 .T Multiprocessor Memory Organization and Memory Interference .W The structure of shared memory in a multiprocessor computer system is examined with particular attention to nonin terleaved memory. Alternative memory organizations are compared and it is shown that a home memory organization, in which each processor is associated with one or more memories in which its address space is concentrated, is quite effective in reducing memory in terference. Home memory organization is shown to be particularly suited to certain specialized computation problems as well as to possess advantages in terms of in terference and reliability for general purpose computation. Results for in terleaved memory are drawn from previous work and are used for comparison. Trace-driven simulations are used to verify the conclusions of the analysis. .A Smith, A. J. .K memory in terference, interleaving, multiprocessing, trace-driven simulation, queueing theory, shared memory .I 2919 .T The Programmer's Workbench-A Machine for Software Development .W On almost all software development projects the assumption is made that the program development function will be done on the same machine on which the eventual system will run. It is only when this production machine is unavailable or when its programming environment is totally inadequate that alternatives are considered. In this paper it is suggested that there are many other situations where it would be advantageous to separate the program development and main tenance function onto a specialized computer which is dedicated to that purpose. Such a computer is here called a Programmer's Workbench. The four basic sections of the paper in troduce the subject,outline the general concept, discuss areas where such an approach may prove beneficial, and describe an operational system utilizing this concept. .A Ivie, E. L. .K computer configurations, computer networks, software development, software engineering, software main tenance, UNIX .I 2920 .T Game Interpretation of the Deadlock Avoidance Problem .W The deadlock avoidance problem may be defined informally as the determination, from some a priori information about the processes, resources, operating system, etc., of the "safe situations" which may be realized without endangering the smooth running of the system. When each process specifies its future needs by a flowchart of need-defined steps, a global approach to the phenomenon and its in terpretation as a game between the operating system and the processes allows formalization of risk and safety concepts. The bipartite graph representation of this game may then be used to construct explicitly the set of safe states and to study their properties. .A Devillers, R. .K operating system, multiprogramming, time-sharing, resource allocation, deadlock, in terlock, deadly embrace, deadlock avoidance, flowchart .I 2921 .T Regular Right Part Grammars and Their Parsers .W This paper in troduces an alternative to context-free grammars called regular right part (RRP) grammars, which resemble PASCAL syntax diagrams. Formally, RRP grammars have production right parts, which are nondeterministic finite state machines (FSMs), and, as a special case, regular expressions, since these can be converted to FSMs. RRP grammars describe the syntax of programming languages more concisely and more understandably than is possible with CF grammars. Also in troduced is a class of parsers, RRP LR(m, k) parsers, which includes the CF LR(k) parsers and provides the same advantages. Informally, an RRP LR(m, k) parser can determine the right end of each handle by considering at most k symbols to the right of the handle and the left end, after the right end has been found, by considering at most m symbols to the left of the handle. A mechanism for determining the left end is required because there is no bound on the length of the handle. .A LaLonde, W. R. .K finite state machines (automata), regular expressions, syntax diagrams,LR(k) grammars, parser construction, parsing, programming languages, language generation, formal definition, compilers, translators, scanners .I 2922 .T Two-Level Control Structure for Nondeterministic Programming .W The basic ideas of nondeterministic programming are critically reconsidered to single out a proper attitude and programming style for language allowing direct control of nondeterministic features. The proposed attitude aims at retaining the purity of the nondeterministic formulation of search processes on one level (the attempt level), deferring the coordination of problem solving efforts to another (the choice level). The feasibility of recognizing these two levels is discussed, stressing that the structure to be managed at the choice level is a free of contexts. The leaves are computational environments, each holding an alternative under inspection, while the other nodes are associated with choice poin ts. According to the proposed programming style, a generative function is associated with each choice poin t, which expresses the desired choice strategy. The main advantage on this approach is the localization of the search strategies: Each nonterminal node of the tree keeps track of the state of the computation as it was when the choice poin t was last interrogated, holding at the same time the strategy to coordinate the available alternatives. Examples are given in term of ND-Lisp, an extension of Lisp designed and implemented according to these guidelines. .A Montangero, C. Pacini, G. Turini, F. .K nondeterministic programming, artificial in telligence, control structures, backtracking, search strategy planning, context tree .I 2923 .T High-Level Data Flow Analysis .W In contrast to the predominant use of low-level in termediate text, high-level data flow analysis deals with programs essentially at source level and exploits the control flow information implicit in the parse tree. The need for high-level flow analysis arises from several aspects of recent work on advanced methods of program certification and optimization. This paper proposes a simple general method of high-level data flow analysis that allows free use of escape and jump statements, avoids large graphs when compiling large programs, facilitates updating of data flow information to reflect program changes, and derives new global information helpful in solving many familiar global flow analysis problems. An illustrative application to live variable analysis is presented. Many of the graphs involved are constructed and analyzed before any programs are compiled, thus avoiding certain costs that low-level methods incur repeatedly at compile time. .A Rosen, B. K. .K data flow analysis, high-level language, control flow graph, structured programming, escapes, exits, jumps, goto statements .I 2924 .T An Interactive Computer Graphics Approach to Surface Representation .W An in teractive computer graphics method has been developed for the rapid generation of arbitrary shaped three-dimensional surfaces. The method is a synthesis of spline theory and algorithms, an in teractive means for man-machine communication, and software for static or dynamic graphics display. The basic technique employed is a modified lofting method on which sectional curves are represented by uniform B-splines and the surface is in terpolated between sections by Cardinal splines. Among the features of this method are algorithms which enable in teractive modification of the B-spline representation of the sectional curves. At all stages of the process, the spatial information is graphically displayed to the user. Complex surfaces can be created by the combination of a number of shapes that have been separately generated and automatically joined. The system has been successfully in terfaced to a variety of analytical routines for structural, medical and graphical applications. .A Wu, Sheng-Chuan Abel, J. F. Greenberg, D. P. .K computer graphics, three-dimensional surface representation, splines, lofting,finite element input methods .I 2925 .T Optimal Surface Reconstruction from Planar Contours .W In many scientific and technical endeavors, a three-dimensional solid must be reconstructed from serial sections, either to aid in the comprehension of the object's structure or to facilitate its automatic manipulation and analysis. This paper presents a general solution to the problem of constructing a surface over a set of cross-sectional contours. This surface, to be composed of triangular tiles, is constructed by separately determining an optimal surface between each pair of consecutive contours. Determining such a surface is reduced to the problem of finding certain minimum cost cycles in a directed toroidal graph. A new fast algorithm for finding such cycles is utilized. Also developed is a closed-form expression, in term of the number of contour poin ts, for an upper bound on the number of operations required to execute the algorithm. An illustrated example which involves the construction of a minimum area surface describing a human head is included. .A Fuchs, H. Kedem,Z. M. Uselton, S. P. .K surface reconstruction, contour data, serial sections, three-dimensional computer graphics, minimum cost paths, continuous tone displays .I 2926 .T Pagination of B*-Trees with Variable-Length Records .W A strategy is presented for pagination of B*-trees with variable-length records. If records of each length are uniformly distributed within the file, and if a wide distribution of record lengths exists within the file, then this strategy results in shallow trees with fast access times. The performance of this strategy in an application is presented, compared with that of another strategy, and analyzed. .A McCreight, E. M. .K B-tree, index, database, tree storage structure, searching .I 2927 .T Some New Upper Bounds on the Generation of Prime Numbers .W Given an integer N, what is the computational complexity of finding all the primes less than N? A modified sieve of Eratosthenes using doubly linked lists yields an algorithm of O(N) arithmetic complexity. This upper bound is shown to be equivalent to the theoretical lower bound for sieve methods without preprocessing. Use of preprocessing techniques involving space-time and additive-multiplicative tradeoffs reduces this upper bound to O(N/log logN) and the bit complexity to O(N logN log log logN). A storage requirement is described using O(N logN/log logN) bits as well. .A Mairson, H. G. .K computational complexity, sieve, prime number generation, number theory, linked list, preprocessing, balancing .I 2928 .T Hardware Estimation of a Process' Primary Memory Requirements .W A minor hardware extension to the Honeywell 6180 processor is demonstrated to allow the primary memory requirements of a process in Multics to be approximated. The additional hardware required for this estimate to be computed consists of a program accessible register containing the miss rate of the associative memory used for page table words. This primary memory requirement estimate was employed in an experimental version of Multics to control the level of multiprogramming in the system and to bill for memory usage. The resulting system's tuning parameters display configuration insensitivity, and it is conjectured that the system would also track shifts in the referencing characteristics of its workload and keep the system in tune. .A Giffor, D. K. .K primary memory requirement, virtual memory, level of multiprogramming, associative memory, working set, resource allocation, LRU stack model, referencing characteristics .I 2929 .T An Analysis of Inline Substitution for a Structured Programming Language .W An optimization technique known as inline substitution is analyzed. The optimization consists of replacing a procedure invocation by a modified copy of the procedure body. The general problem of using inline substitution to minimize execution time subject to size constrain ts is formulated, and an approximate algorithmic solution is proposed. The algorithm depends on run-time statistics about the program to be optimized. Preliminary results for the CLU structured programming language indicate that, in programs with a low degree of recursion, over 90 percent of all procedure calls can be eliminated, with little increase in the size of compiled code and a small savings in execution time. Other conclusions based on these results are also presented. .A Scheifler, R. W. .K inline substitution, open coding, open compilation, program optimization, compilers, structured programming languages, run-time statistics .I 2930 .T The GRE Advanced Test in Computer Science .W This report describes the Advanced Test in Computer Science which was recently in troduced in the Graduate Record Examination Program. The GRE program is described in general, and, the events leading to the establishment of the Advanced Computer Science Test are discussed. Content specifications and their rationale are given. A set of sample questions is included. .A Austing, R. H. .K education, computer science, graduate school admissions, test development examinations .I 2931 .T Logic and Programming Languages .W Logic has been long in terested in whether answers to certain questions are computable in principle, since the outcome puts bounds on the possibilities of formalization. More recently, precise comparisons in the efficiency of decision methods have become available through the developments in complexity theory. These, however, are applications to logic, and a big question is whether methods of logic have significance in the other direction for the more applied parts of computability theory. Programming languages offer an obvious opportunity as their syntactic formalization is well advanced; however, the semantical theory can hardly be said to be complete. Though we have many examples, we have still to give wide-ranging mathematical answers to these queries: What is a machine? What is a computable process? How (or how well) does a machine simulate a process? Programs naturally enter in giving descriptions of processes. The definition of the precise meaning of a program then requires us to explain what are the objects of computation (in a way, the statics of the problem) and how they are to be transformed (the dynamics). So far the theories of automata and of nets, though most in teresting for dynamics, have formalized only a portion of the field, and there has been perhaps too much concentration on the finite-state and algebraic aspects. It would seem that the understanding of higher-level program features involves us with infinite objects and forces us to pass through several levels of explanation to go from the conceptual ideas to the final simulation on a real machine. These levels can be made mathematically exact if we can find the right abstractions to represent the necessary structures. The experience of many independent workers with the method of data types as lattices (or partial orderings) under an information content ordering, and with their continuous mappings, has demonstrated the flexibility of this approach in providing definitions and proofs, which are clean and without undue dependence on implementations. Nevertheless much remains to be done in showing how abstract conceptualizations can (or cannot) be actualized before we can say we have a unified theory. .A Scott, D. S. .K logic, programming languages, automata, denotational semantics, a-calculus models, computability, partial functions, approximation, function spaces .I 2932 .T Complexity of Computations .W The framework for research in the theory of complexity of computations is described, emphasizing the in terrelation between seemingly diverse problems and methods. Illustrative examples of practical and theoretical significance are given. Directions for new research are discussed. .A Rabin, M. O. .K complexity of computations, algebraic complexity, in tractable problems, probabilistic algorithms .I 2933 .T Another Advantage of Keyword Notation for Parameter Communication with Subprograms .A Francez, N. .K Keyword notation, positional notation, parameters, transmission, subprograms, readability, call by value, call by reference, call by name, compile-time errors .I 2934 .T Comment on Computing the k Shortest Paths in a Graph .A Lawler, E. L. .K graph, network, shortest path, algorithm, ranking .I 2935 .T Production and Employment of Ph.D.'s in Computer Science-1976 (Corrigendum) .A Taulbee, O. E. Conte, S. D. .I 2936 .T An Efficient Data Structure for the Simulation Event Set .W Recently algorithms have been presented for the realization of event scheduling routines suitable for general purpose discrete event simulation systems. Several exhibited a performance superior to that of commonly used simple linked list algorithms. In this paper a new event scheduling algorithm is presented which improves on two aspects of the best of the previously published algorithms. First, the new algorithm's performance is quite insensitive to skewed distributions, and second, its worst-case complexity is O( n), where n is the number of events in the set. Furthermore, tests conducted to estimate the average complexity showed it to be nearly independent of n. .A Franta, W. R. Maly, K. .K simulation, time flow mechanisms, event scanning mechanisms, multilinked lists .I 2937 .T An Experimental Evaluation of Data Type Conventions .W The language in which programs are written can have a substantial effect on the reliability of the resulting programs. This paper discusses an experiment that compares the programming reliability of subjects using a statically typed language and a "typeless" language. Analysis of the number of errors and the number of runs containing errors shows that, at least in one environment, the use of a statically typed language can increase programming reliability. Detailed analysis of the errors made by the subjects in programming solutions to reasonably small problems shows that the subjects had difficulty manipulating the representation of data. .A Gannon, J. D. .K data types, experimentation, language design, redundancy, reliable software .I 2938 .T Toward a Discipline of Real-Time Programming .W Programming is divided into three major categories with increasing complexity of reasoning in program validation: sequential programming, multiprogramming, and real-time programming. By adhering to a strict programming discipline and by using a suitable high-level language molded after this discipline, the complexity of reasoning about concurrency and execution time constrain ts may be drastically reduced. This may be the only practical way to make real-time systems analytically verifiable and ultimately reliable. A possible discipline is outlined and expressed in terms of the language Modula. .A Wirth, N. .K multiprogramming, real-time programming, process synchronization, processor sharing, program validation, Modula .I 2939 .T Abstraction Mechanisms in CLU .W CLU is a new programming language designed to support the use of abstractions in program construction. Work in programming methodology has led to the realization that three kinds of abstractions-procedural, control, and especially data abstractions-are useful in the programming process. Of these, only the procedural abstraction is supported well by conventional languages, through the procedure or subroutine. CLU provides, in addition to procedures, novel linguistic mechanisms that support the use of data and control abstractions. This paper provides an in troduction to the abstraction mechanisms in CLU. By means of programming examples, the utility of the three kinds of abstractions in program construction is illustrated, and it is shown how CLU programs may be written to use and implement abstractions. The CLU library, which permits incremental program development with complete type checking performed at compile time, is also discussed. .A Liskov, B. Snyder, A. Atkinson, R. Schaffert, C. .K programming languages, data types, data abstractions, control abstractions, programming methodology, separate compilation .I 2940 .T Abstraction and Verification in Alphard: Defining and Specifying Iteration and Generators .W The Alphard "form" provides the programmer with a great deal of control over the implementation of abstract data types. In this paper the abstraction techniques are extended from simple data representation and function definition to the iteration statement, the most important poin t of interaction between data and the control structure of the language itself. A means of specializing Alphard's loops to operate on abstract entities without explicit dependence on the representation of those entities is in troduced. Specification and verification techniques that allow the properties of the generators for such iterations to be expressed in the form of proof rules are developed. Results are obtained that for common special cases of these loops are essentially identical to the corresponding constructs in other languages. A means of showing that a generator will terminate is also provided. .A Shaw, M. Wulf, W. A. .K abstraction and representation, abstract data types, assertions, control specialization, correctness, generators,invariants, iteration statements, modular decomposition, program specifications, programming languages, programming methodology, proofs of correctness, types, verification .I 2941 .T Early Experience with Mesa .W The experiences of Mesa's first users-primarily its implementers-are discussed, and some implications for Mesa and similar programming languages are suggested. The specific topics addressed are: module structure and its use in defining abstractions, data-structuring facilities in Mesa, an equivalence algorithm for types and type coercions, the benefits of the type system and why it is breached occasionally, and the difficulty of making the treatment of variant records safe. .A Geschke, C. M. Morris, J. H. Jr. Satterthwaite, E. H. .K programming languages, types, modules, data structures, systems programming .I 2942 .T An Algol-Based Implementation of SNOBOL 4 Patterns .A Brownlee, J. N. .K patterns SNOBOL 4, pattern matching, string processing, pattern implementation, algorithms in Pascal .I 2943 .T Lucid, a Nonprocedural Language with Iteration .W Lucid is a formal system in which programs can be written and proofs of programs carried out. The proofs are particularly easy to follow and straightforward to produce because the statements in a Lucid program are simply axioms from which the proof proceeds by (almost) conventional logical reasoning, with the help of a few axioms and rules of inference for the special Lucid functions. As a programming language, Lucid is unconventional because, among other things, the order of statements is irrelevant and assignment statements are equations. Nevertheless, Lucid programs need not look much different than iterative programs in a conventional structured programming language using assignment and conditional statements and loops. .A Ashcrof, E. A. Wadge, W. W. .K program proving, formal systems, semantics, iteration, structured programming .I 2944 .T Shifting Garbage Collection Overhead to Compile Time .W This paper discusses techniques which enable automatic storage reclamation overhead to be partially shifted to compile time. The paper assumes a transaction oriented collection scheme, as proposed by Deutsch and Bobrow, the necessary features of which are summarized. Implementing the described optimizations requires global flow analysis to be performed on the source program. It is shown that at compile time certain program actions that affect the reference counts of cells can be deduced. This information is used to find actions that cancel when the code is executed and those that can be grouped to achieve improved efficiency. .A Barth, J. M. .K garbage collection, global flow analysis, list processing, optimization, reference counts, storage management .I 2945 .T Certification of Programs for Secure Information Flow .W This paper presents a certification mechanism for verifying the secure flow of information through a program. Because it exploits the properties of a lattice structure among security classes, the procedure is sufficiently simple that it can easily be included in the analysis phase of most existing compilers. Appropriate semantics are presented and proved correct. An important application is the confinement problem: The mechanism can prove that a program cannot cause supposedly nonconfidential results to depend on confidential input data. .A Denning, D. E. Denning, P. J. .K protection, security, information flow, program certification, lattice, confinement, security classes .I 2946 .T An Alternative to Event Queues for Synchronization in Monitors .W In the monitor concept, as proposed by Brinch Hansen and Hoare, event are used for synchronization. This paper describes another synchronizing primitive which is nearly as expressive as the conditional wait, but can be implemented more efficiently. An implementation of this primitive in terms of P and V operations is given together with a correctness proof. Two examples are presented: the readers and writers problem and the problem of information streams sharing a finite buffer pool. .A Kessels, J. L. W. .K monitor, operating system, mutual exclusion, synchronization, conditional critical region, structuring concept .I 2947 .T SITAR: An Interactive Text Processing System for Small Computers .W SITAR, a low-cost in teractive text handling and text analysis system for nontechnical users, is in many ways comparable to in teractive bibliographical search and retrieval systems, but has several additional features. It is implemented on a PDP/11 time-sharing computer invoked by a CRT with microprogrammed editing functions. It uses a simple command language designating a function, a file, and a search template consisting of the textual string desired and strings delimiting the context in which the hit is to be delivered. Extensive experience with SITAR shows that the combined powers of simple commands, string orientation, circular file structure, a CRT with local memory, and conversational computing produce a system much more powerful than the sum of its parts. .A Schneider, B. R. Jr. Watts, R. M. .K information retrieval, text editing, minicomputers, CRTs,time sharing, bibliographic search and retrieval, literary analysis, linguistic analysis, command languages .I 2948 .T A Terminal-Oriented Communication System .W This paper describes a system for full-duplex communication between a time-shared computer and its terminals. The system consists of a communications computer directly connected to the time-shared system, a number of small remote computers to which the terminals are attached, and connecting medium speed telephone lines. It can service a large number of terminals of various types. The overall system design is presented along with the algorithms used to solve three specific problems: local echoing, error detection and correction on the telephone lines, and multiplexing of character output. .A Heckel, P. G. Lampson, B. W. .K terminal system, error correction, multiplexing, local echoing, communication system, network .I 2949 .T A Correctness Proof of a Topology Information Main tenance Protocol for a Distributed Computer Network .W In order for the nodes of a distributed computer network to communicate, each node must have information about the network's topology. Since nodes and links sometimes crash, a scheme is needed to update this information. One of the major constrain ts on such a topology information scheme is that it may not involve a central controller. The Topology Information Protocol that was implemented on the MERIT Computer Network is presented and explained; this protocol is quite general and could be implemented on any computer network. It is based on Baran's "Hot Potato Heuristic Routing Doctrine." A correctness proof of this Topology Information Protocol is also presented. .A Tajibnapis, W. D. .K distributed computer network, correctness proofs, computer networks, distributed control, network topology, routing problem in networks, distributed operating system, store and forward packet switching, store and forward message switching, traffic control .I 2950 .T A Unifying Approach to Scheduling .W This paper presents a scheme for classifying scheduling algorithms based on an abstract model of a scheduling system which formalizes the notion of priority. Various classes of scheduling algorithms are defined and related to existing algorithms. A criterion for the implementation efficiency of an algorithm is developed and results in the definition of time-invariant algorithms, which include most of the commonly implemented ones. For time-invariant algorithms, the dependence of processing rates on priorities is derived. The abstract model provides a framework for implementing flexible schedulers in real operating systems. The policy-driven scheduler of Bernstein and Sharp is discussed as an example of such an implementation .A Ruschitzka, M. Fabry, R. S. .K scheduling algorithms, scheduling models, priority, operating systems,processor sharing, implementation efficiency .I 2951 .T Dynamic Response Time Prediction for Computer Networks .W If the ultimate aim of a computing network is resource sharing, then the human component as well as the technical component of networking must be fully investigated to achieve this goal. This research is a first step toward assisting the user in participating in the vast store of resources available on a network. Analytical, simulation, and statistical performance evaluation tools are employed to investigate the feasibility of a dynamic response time monitor that is capable of providing comparative response time information for users wishing to process various computing applications at some network computing node. The research clearly reveals that sufficient system data are currently obtainable, at least for the five diverse ARPA network systems studied in detail, to describe and predict the response time for network time-sharing systems as it depends on some measure of system activity or load level. .A Mamrak, S. A. .K response time monitor, computer networks, time-sharing systems, comparative response time, ARPA network, anlytic modeling, simulation, benchmark jobs, system measurement .I 2952 .T Functions Realizable with Word-Parallel Logical and Two's-Complement Addition Instructions .A Warren, H. S. Jr. .K Boolean functions, two's-complement, sign propagation .I 2953 .T Notes on Recursion Elimination .W Various methods of recursion elimination are applied to the schematic recursive procedure: proc S(x); px then N(x); S(fx); S(gx); M(x) fi. Procedures with this general form arise in connection with tree traversal and sorting algorithms. Each method of recursion removal involves the use of one or more stacks, and the solutions are compared on the basis of their running time. .A Bird, R. S. .K recursion elimination, optimization of programs, stacks, trees, sorting algorithms, computational induction .I 2954 .T A Bounded Storage Algorithm for Copying Cyclic Structures .W A new algorithm is presented which copies cyclic list structures using bounded workspace and linear time. Unlike a previous similar algorithm, this one makes no assumptions about the storage allocation system in use and uses only operations likely to be available in a high-level language. The distinctive feature of this algorithm is a technique for traversing the structure twice, using the same spanning tree in each case, first from left to right and then from right to left. .A Robson J. M. .K copying, shared subtrees, cyclic structures .I 2955 .T Buddy Systems .W Two algorithms are presented for implementing any of a class of buddy systems for dynamic storage allocation. Each buddy system corresponds to a set of recurrence relations which relate the block sizes provided to each other. Analyses of the in ternal fragmentation of the binary buddy system, the Fibonacci buddy system, and the weighted buddy system are given. Comparative simulation results are also presented for in ternal, external, and total fragmentation. .A Peterson, J. L. Norman, T. A. .K dynamic storage allocation, buddy system, fragmentation, Fibonacci buddy system, weighted buddy system .I 2956 .T Some Ideas on Data Types in High-Level Languages .W A number of issues are explored concerning the notion that a data type is a set of values together with a set of primitive operations on those values. Among these are the need for a notation for iterating over the elements of any finite set (instead of the more narrow for i:= 1 to n notation), the use of the domain of an array as a data type, the need for a simple notation for allowing types of parameters to be themselves parameters (but in a restrictive fashion), and resulting problems with conversion of values from one type to another. .A Gries, D. Gehani, N. .K data types, generic procedures, programming languages .I 2957 .T Database Abstractions: Aggregation .W Aggregation is in troduced as an abstraction which is important in conceptualizing the real world. Aggregation transforms a relationship between objects into a higher-level object. A new data type, called aggregation, is developed which, under certain criteria of "well-definedness," specifies aggregation abstractions. Relational databases defined as collections of aggregates are structured as a hierarchy on n-ary relations. To main tain well-definedness, update operations on such databases must preserve two invariants. Well-defined relations are distinct from relations in third normal form. It is shown that these notions are complementary and both are important in database design. A top-down methodology for database design is described which separates decisions concerning aggregate structure from decisions concerning key identification. It is suggested that aggregate types, and other types which support real-world abstractions without in troducing implementation detail, should be incorporated into programming languages. .A Smith, J. M. Smith, D. C. P. .K data abstraction, relational database, data type, aggregation, database design, data structure, knowledge representation, data definition language .I 2958 .T Abstract Data Types and the Development of Data Structures .W Abstract data types can play a significant role in the development of software that is reliable, efficient, and flexible. This paper presents and discusses the application of an algebraic technique for the specification of abstract data types. Among the examples presented is a top-down development of a symbol table for a block structured language; a discussion of the proof of its correctness is given. The paper also contains a brief discussion of the problems involved in constructing algebraic specifications that are both consistent and complete. .A Guttag, J. .K abstract data type, correctness proof, data type, data structure, specification, software specification .I 2959 .T The System for Business Automation (SBA): Programming Language .W The system for business automation (SBA) is a system within which application experts-nonprogrammers-can describe and execute their applications on a computer. The user of SBA views his application as manipulation of information in two-dimensional pictures of tables, business forms, and reports on a display terminal. He can gradually automate this application by giving "examples" to the system of how he manually manipulates the information. The Query-by-Example database language is a subset of the SBA programming language. .A Zloof, M. M. de Jong, S. P. .K programming language, graphics, user in terface, data flow, forms flow, data abstraction, database, query, data processing, business system specification, application programming .I 2960 .T Two Views of Data Abstraction .A Ledgard, H. F. Taylor, R. W. .I 2961 .T Experimental Investigations of the Utility of Detailed Flowcharts in Programming .W This paper describes previous research on flowcharts and a series of controlled experiments to test the utility of detailed flowcharts as an aid to program composition, comprehension, debugging, and modification. No statistically significant difference between flowchart and nonflowchart groups has been shown, thereby calling into question the utility of detailed flowcharting. A program of further research is suggested. .A Shneiderman, B. Mayer, R. McKay, D. Heller, P. .K flowcharts, program composition, program comprehension, debugging, modification, experimental testing, human factors .I 2962 .T Production and Employment of Ph.D.'s in Computer Science-1976 .W Statistics are presented on the production and employment of Ph.D.'s in computer science for the calendar year 1975-76. Data include profiles of graduate students and of faculty at 60 Ph.D.-producing departments as well as a breakdown of degrees granted by specialty areas. Significant trends are noted and comparisons with comparable data gathered for the 1974-75 calendar year are made. .A Taulbee, O. E. Conte, S. D. .K computer science, production of Ph.D.'s, employment, students .I 2963 .T A Fast Algorithm for Computing Longest Common Subsequences .W Previously published algorithms for finding the longest common subsequence of two sequences of length n have had a best-case running time of O(n^2). An algorithm for this problem is presented which has a running time of O((r + n)log n), where r is the total number of ordered pairs of positions at which the two sequences match. Thus in the worst case the algorithm has a running time of O(n^2 log n). However, for those applications where most positions of one sequence match relatively few positions in the other sequence, a running time of O(n log n) can be expected. .A Hunt, J. W. Szymanski, T. G. .K Longest common subsequence, efficient algorithms .I 2964 .T An Approach to Optimal Design of Storage Parameters in Databases .A Milman, Y. .K database organization, storage parameter optimization, resident, overflow storage .I 2965 .T An Optimal Evaluation of Boolean Expressions in an Online Query System .A Hanani, M. Z. .K query, Boolean expression, information retrieval, file organization .I 2966 .T The Choice of Reference Poin ts in Best-Match File Searching .W Improvements to the exhaustive search method of best-match file searching have previously been achieved by doing a preprocessing step involving the calculation of distances from a reference poin t. This paper discusses the proper choice of reference poin ts and extends the previous algorithm to use more than one reference poin t. It is shown that reference poin ts should be located outside of data clusters. The results of computer simulations are presented which show that large improvements can be achieved by the proper choice and location of multiple reference poin ts. .A Shapiro, M. .K matching, file searching, best match, nearest-neighbor classification .I 2967 .T A Comparison of Hardware and Software Associative Memories in the Context of Computer Graphics .W The Associative Processing of Line Drawings (APLD) System utilizes a hardware associative memory and creates, modifies, deletes, stores, and retrieves two-dimensional line drawings consisting of poin ts, lines, rectangles, and triangles. The APLD functions were duplicated on the TX-2 computer at M.I.T.'s Lincoln Laboratory under the LEAP Language and Data Structure, A comparison of the hardware approach with the software simulation illustrates the advantages of the hardware associative memory in three areas: (1) processing speed, (2) storage requirements, and (3) flexibility. The major problem areas of hardware associative memory technology, namely input/output and cost effectiveness, are also addressed. .A Stillman, N. J. Berra, P. B. .K associative memory, associative processor, content-addressable memory, graphics, information retrieval, data structures, software evaluation, hardware evaluation, parallel processing, database management .I 2968 .T A Comparison of Tree-Balancing Algorithms .W Several algorithms-height-balance (i.e. AVL and extensions), weight-balance (i.e. BB and WB), and total restructuring-for building balanced binary search trees are compared. The criteria for comparison encompass theoretical aspects (e.g. path lengths) and implementation independent and machine/algorithm-dependent measures (e.g. run time). A detailed analysis of code is also presented at a level believed to be language-and compiler-independent. The quality of the resulting trees and the overhead spent on building them are analyzed, and some guidelines are given for an efficient use of the methods. If insertion and subsequent queries are the only operations of in terest, then "pure" AVL trees present the overall best qualities. .A Baer, J. L. Schwab, B. .K binary search trees, AVL trees, weight-balanced trees, path length, analysis of algorithms, information storage and retrieval .I 2969 .T Optimal Program and Data Locations in Computer Networks .W An optimization procedure for the allocation of program and data files in a computer network is presented. This algorithm takes into account the dependencies between files and programs such as occur in real heterogeneous computer networks. Insights into whether or not to convert programs from one computer to another can also be gained from the model. A search procedure for the file location problem is described, along with an example and a possible application of the model. .A Morgan, H. L. Levin, K. D. .K computer networks, databases, distributed databases, optimal file location .I 2970 .T Achieving Specific Accuracy in Simulation Output Analysis .W This paper extends the use of the regenerative property of queueing systems in the analysis of simulation output. In particular, it describes a sequential estimation method which when used with the regenerative property allows results to be obtained with specified statistical accuracy. This method includes a test to check the normality assumption on which the sequential procedure relies. The paper illustrates the method using the empty and idle state as the regenerative state. A second example then describes how using the most frequently entered state as the regenerative state reduces the chance of making a costly error in a preliminary simulation run. The paper also described how a variance reduction method due to Page [9] can be used to obtain a specified accuracy with considerably fewer job completions than are required when no variance reduction technique is applied. .A Fishman, G. S. .K confidence in terval, ratio estimator, regenerative property, sequential estimator, simulation, stopping rule, variance reduction .I 2971 .T SP/k: A System for Teaching Computer Programming .W SP/k is a compatible subset of the PL/I language that has been designed for teaching programming. The features of the SP/k language were chosen to encourage structured problem solving by computers, to make the language easy to learn and use, to eliminate confusing and redundant constructs, and to make the language easy to compile. The resulting language is suitable for in troducing programming concepts used in various applications, including business data processing, scientific calculations and non-numeric computation. SP/k is actually a sequence of language subsets called SP/1, SP/2,...SP/8. Each subset in troduces new programming language constructs while retaining all the constructs of preceding subsets. Each subset is precisely defined and can be learned or implemented without the following subsets. .A Holt, R. C. Wortman, D. B. Barnard, D. T. Cordy, J. R. .K programmer education, universities, community colleges, high schools, PL/I, SP/k, minicomputers, programming language design, teaching programming, in troductory computing .I 2972 .T Proof Techniques for Hierarchically Structured Programs .W A method for describing and structuring programs that simplifies proofs of their correctness is presented. The method formally represents a program in terms of levels of abstraction, each level of which can be described by a self-contained nonprocedural specification. The proofs, like the programs, are structured by levels. Although only manual proofs are described in the paper, the method is also applicable to semi-automatic and automatic proofs. Preliminary results are encouraging, indicating that the method can be applied to large programs, such as operating systems. .A Robinson, L. Levitt, K. N. .K hierarchical structure, program verification, structured programming, formal specification, abstraction, and programming methodology .I 2973 .T Sorting on a Mesh-Connected Parallel Computer .W Two algorithms are presented for sorting n^2 elements on an n X n mesh-connected processor array that require O(n) routing and comparison steps. The best previous algorithm takes time O(n log n). The algorithms of this paper are shown to be optimal in time within small constant factors. Extensions to higher-dimensional arrays are also given. .A Thompson, C. D. Kung, H. T. .K parallel computer, parallel sorting, parallel merge, routing and comparison steps, perfect shuffle. processor in terconnection pattern .I 2974 .T Comment on Weighted Increment Linear Search for Scatter Tables .A Bandyopadhyay, S. K. .K hash address, primary clustering, index, sequence, complementary relation, search .I 2975 .T Remark on Uniform Insertion in Structured Data Structures .A Hollander, C.R. .K data structures, directed graphs, uniform insertion .I 2976 .T Approximating Block Accesses in Database Organizations .A Yao, S. B. .K database, inverted file organization, database performance and measurement, information retrieval, query answering .I 2977 .T The Stage Hypothesis and the S-Curve: Some Contradictory Evidence .W This paper presents the results of a study testing the s-shaped budget curve of Nolan's stage model of computer development in an organization. Research on the data processing budgets of California counties fails to support the s-shaped curve or the use of budgets as a basis for a stage model. However, the results do not invalidate the concept of a stage model. The analysis suggests an alternative model of budget growth and a separation between models of budgeting growth and growth stages in the development of the computer resource. .A Lucac, H. C. Jr. Sutton, J. A. .K budgets, stage theories, stage hypothesis .I 2978 .T Analysis of Design Alternatives for Virtual Memory Indexes .W A class of index structures for use in a virtual memory environment is described. Design alternatives within this class of index structures are analyzed. These alternatives include a choice of search strategy, whether or not pages in the index are structured, and whether or not keys are compressed. The average cost of retrieving entries from these indexes is expressed as a wieghted sum of the cost of a basic key comparison and the cost of crossing a page boundary in the index structure. Formulas for the retrieval costs for possible combinations of design alternatives are given. These are used in numerical case studies which compare the retrieval costs of the alternatives. Qualitative comparisons of the main tenance costs (insertion, deletion, reorganization) of the design alternatives are also included. .A Maruyama, K. Smith, S. E. .K index, index structure, pages, virtual memory, files, retrieval, main tenance, search strategy, key compression .I 2979 .T Studies in Machine Cognition Using The Game of Poker .W A progress report is presented of on-going research efforts concerning human decision making under uncertainly and risk and human problem solving and learning processes on the one hand, and machine learning, large scale programming systems, and novel programming techniques on the other. There has also been in terest in how humans make deductive and inductive inferences and form and optimize heuristic rules, and how machines can reach similar results. Although the vehicle of these investigations has been the game of poker, a conceptual framework has been provided that should have a fairly wide range of applicability. The models of human judgment, choice, and decision making are incorporated in a large scale complex program. They represent both descriptive and normative theories of behavior. An in teractive game environment has been recently established which, besides its usefulness for experiments in game playing, enables humans to construct machine strategies "on-line" in a question answering, advice taking mode. .A Findler, N. V. .K machine learning, game playing programs, decision making under uncertain ty and risk, automatic forming and optimizing of heuristic rules, automatic inductive and deductive inference making, models of game learning, poker, gambling and bluffing .I 2980 .T The Editing of Picture Segmentations Using Local Analysis of Graphs .W A major problem in picture processing is the elimination of the large number of spurious regions that result from an initial segmentation by region growing techniques. Such regions have been eliminated either on the basis of semantic information or on the basis of size and contrast. A scheme is presented which performs eliminations on the basis of local properties of the region adjacency graph. The scheme is based on definitions of graph properties which are satisfied when a spurious region is present; then editing is equivalent to fast graph operations. A number of examples are shown. .A Tanimoto, S. L. Pavlidis, T. .K picture processing, pattern recognition, segmentation, region editing .I 2981 .T Subgoal Induction .W A proof method, subgoal induction, is presented as an alternative or supplement to the commonly used inductive assertion method. Its major virtue is that it can often be used to prove a loop's correctness directly from its input-output specification without the use of an invariant. The relation between subgoal induction and other commonly used induction rules is explored and, in particular, it is shown that subgoal induction can be viewed as a specialized form of computation induction. A set of sufficient conditions are presented which guarantee that an input-output specification is strong enough for the induction steps of a proof by subgoal induction to be valid. .A Morris, J. H. Jr. Wegbreit, B. .K program verification, proving programs correct, induction rule, computation induction, inductive assertions, structural induction, proof rule, recursive programs, iterative programs .I 2982 .T The Storage Requirement in Precedence Parsing .A Bertsch, E. .K precedence parsing, storage requirement, value table .I 2983 .T A Comparison of Next-fit, First-fit, and Best-fit .A Bays, C. .K memory allocation, first-fit, best-fit, next-fit .I 2984 .T Cost/Utilization: A Measure of System Performance .W A method is presented for evaluating computer system performance in terms of a cost/utilization factor and a measure of imbalance. These coefficients indicate the extent to which the total system cost is effectively utilized. The method includes a technique for the visual representation of system performance. .A Borovits, I. Ein-Dor, P. .K computer system, performance evaluation, cost/utilization, system balance .I 2985 .T Effects of Chargeout on User/Manager Attitudes .W The relationship of in ternal pricing systems for computer services (chargeout systems) and user management attitudes about their computer-based information systems is investigated. Evidence is provided that the relationship conforms to a general pattern that would be expected from the hypothesis of the four stages of EDP growth [15]. The results also indicate that the chargeout systems characteristic of advanced EDP stage environments are associated with relatively high levels of positive user attitudes and marked increases in EDP training for users. Both factors are important to the user/manager involvement necessary for effective control of computer-based systems. Development and main tenance of computer-based systems is asserted to be a category of organizational change. A "felt need" for the change on the part of the user/manager is prerequisite to any change taking place. The research methods of behavioral science are applied to investigate the user/manager environment and the effects of chargeout. .A Nolan, R. L. .K computer management, computer budget, chargeout, stage hypothesis, control .I 2986 .T Operations on Sparse Relations .W Various computations on relations, Boolean matrices, or directed graphs, such as the computation of precedence relations for a context-free grammar, can be done by a practical algorithm that is asymptotically faster than those in common use. For example, how to compute operator precedence or Wirth-Weber precedence relations in O(n^2) steps is shown, as well as how to compute linear precedence functions in O(n^2) steps is shown, as well as how to compute linear precedence functions in O(n) steps, where n is the size of a grammer. The heart of the algorithms is a general theorem giving sufficient conditions under which an expression whose operands are sparse relations and whose operators are composition, transitive closure, union, and inverse, can be computed efficiently. .A Hunt, H. B. III Szymanski, T. G. Ullman, J. D. .K computational complexity, sparse relation, Boolean matrix, directed graph, Wirth-Weber precedence relation, linear precedence function, SLR grammar, T-canonical precedence relation .I 2987 .T Representation of Many-Sided Polygons and Polygonal Lines for Rapid Processing .W A representation for polygons and polygonal lines is described which allows sets of consecutive sides to be collectively examined. The set of sides are arranged in a binary tree hierarchy by inclusion. A fast algorithm for testing the inclusion of a poin t in a many-sided polygon is given. The speed of the algorithm is discussed for both ideal and practical examples. It is shown that the poin ts of intersection of two polygonal lines can be located by what is essentially a binary tree search. The algorithm and a practical example are discussed. The representation overcomes many of the disadvantages associated with the various fixed-grid methods for representing curves and regions .A Burton W. .K boundary line representation, cartography, computer graphics computer-searchable structures, contour representation, geographic information processing, graphic data retrieval, in tersection of curves, line-drawing processing, poin ts in polygons, regional boundary representation, spatial information .I 2988 .T Memory Management and Response Time .W This paper presents a computationally tractable methodology for including accurately the effects of finite memory size and workload memory requirements in queueing network models of computer systems. Empirical analyses and analytic studies based on applying this methodology to an actual multiaccess in teractive system are reported. Relations between workload variables such as memory requirement distribution and job swap time, and performance measures such as response time and memory utilization are graphically displayed. A multiphase, analytically soluble model is proposed as being broadly applicable to the analysis of in teractive computer systems which use nonpaged memories. .A Brown, R. M. Browne, J. C. Chandy, K. M. .K memory management, system performance, queueing network models, in teractive computer systems .I 2989 .T Empirical Evaluation of Some Features of Instruction Set Processor Architectures .W This paper presents methods for empirical evaluation of features of Instruction Set Processors (ISPs). ISP features are evaluated in terms of the time used or saved by having or not having the feature. The methods are based on analysis of traces of program executions. The concept of a register life is in troduced, and used to answer questions like: How many registers are used simultaneously? How many would be sufficient all of the time? Most of the time? What would the overhead be if the number of registers were reduced? What are registers used for during their lives? The paper also discusses the problem of detecting desirable but non-existing instructions. Other problems are briefly discussed. Experimental results are presented, obtained by analyzing 41 programs running on the DEC system 10 ISP. .A Lunde, A. .K computer architecture, program behavior, instruction sets, op code utilization, register structures, register utilization, simultaneous register lives, instruction tracing, execution time .I 2990 .T Effective Information Retrieval Using Term Accuracy .W The performance of information retrieval systems can be evaluated in a number of different ways. Much of the published evaluation work is based on measuring the retrieval performance of an average user query. Unfortunately, formal proofs are difficult to construct for the average case. In the present study, retrieval evaluation is based on optimizing the performance of a specific user query. The concept of query term accuracy is in troduced as the probability of occurrence of a query term in the documents relevant to that query. By relating term accuracy to the frequency of occurrence of the term in the documents of a collection it is possible to give formal proofs of the effectiveness with respect to a given user query of a number of automatic indexing systems that have been used successfully in experimental situations. Among these are inverse document frequency weighting, thesaurus construction, and phrase generation. .A Yu, C. T. Salton, G. .K information retrieval, automatic indexing, content analysis, term accuracy, frequency weighting, thesaurus and phrase transformations .I 2991 .T Improving the Access Time for Random Access Files .W Clustering in the key set is decreased by smoothing the key-to-address transformation, and by adding shadow buckets to an open chaining file. The keys are pre-hashed before the address division, to remove the effect of sequential properties in the key set. Shadow buckets in the key search sequence reduce the effect of nonuniformity in file loading, and decrease the number of maximum probes needed to locate a record. The combined effects of these techniques lead to improved file performance for secondary storage devices, as shown by empirical studies. .A Clapson, P. .K hashing, hashing techniques, hashing methods, hash coding, keys, key transformation, key-to-address transformation, direct addressing, direct access, direct access method, randomizing, random access, file addressing, file organizations, file structures, scatter storage, search method, collisions, synonyms, clustering, information retrieval, open addressing, open chaining, buckets, bucket size, shadow buckets, combinatorics .I 2992 .T A Numbering System for Binary Trees .A Knott, G. D. .K binary trees, permutations, binary search trees, ranking function .I 2993 .T Occurrences of Cycling and Other Phenomena Arising in a Class of Linear Programming Models .W An investigation into the average queue size for a certain class of queues has resulted in the formulation of linear programming problems which are ill-conditioned in some cases. In attempting to solve these linear programming models, using IBM's MPS package, instances of cycling were encountered. Small perturbations in the input data resulted in problems which did not cycle. This fact, plus several other observed phenomena suggest that the primary reason that cycling is not known to occur more frequently is the round-off errors in the computations perturb the problem sufficiently to prevent cycling (or at least to prevent indefinite cycling). In one case maximizing and minimizing an objective function subject to the same constrain t set was attempted, but MPS solved only one of these while giving an indication of infeasibility for the other. .A Kotiah, T. C. T. Steinberg, D. I. .K linear programming, cycling, queueing models .I 2994 .T A Linear Algorithm for Incremental Digital Display of Circular Arcs .W Circular arcs can be drawn on an incremental display device such as a cathode ray tube, digital plotter, or matrix prin ter using only sign testing and elementary addition and subtraction. This paper describes methodology for producing dot or step patterns closet to the true circle. .A Bresenham, J. .K graphics, circle drawing, step generation, dot generation, incremental digital plotting, raster display, integer arithmetic, circle algorithm .I 2995 .T Decomposability, Instabilities, and Saturation in Multiprogramming Systems (Corrigendum) .A Courtois, P. J. .I 2996 .T Transient-Free Working-Set Statistics .W Transient-free average working set size and transient-free missing-page rate for a finite sample of a reference string are defined. Use of these statistics is appropriate if the contents of the working set at the start of the recorded string are unknown. If a certain stationarity condition holds, these statistics provide unbiased estimates of expected working-set sizes, missing-page probabilities, and in terreference distance probabilities. Two other pairs of estimators are shown to be biased. Expressions for the transient-free statistics are obtained in terms of in terval statistics. Several methods of computation are discussed, the usefulness of each depending on length of the sample, number of distinct references, and the amount of main storage available to the computer performing the calculations. In particular, methods are described for handling long strings containing many distinct page names. .A Easton, M. C. Bennett, B. T. .K working set, estimation program behavior .I 2997 .T Convex Hulls of Finite Sets of Poin ts in Two and Three Dimensions .W The convex hulls of sets of n poin ts in two and three dimensions can be determined with O(n log n) operations. The presented algorithms use the "divide and conquer" technique and recursively apply a merge procedure for two nonin tersecting convex hulls. Since any convex hull algorithm requires at least O(n log n) operations, the time complexity of the proposed algorithms is optimal within a multiplicative constant. .A Preparata, F. P. Hong, S. J. .K computational complexity, convex hull, optimal algorithms, planar set of poin ts, spatial set of poin ts .I 2998 .T An Empirical Study of List Structure in Lisp .W Static measurements of the list structure of five large Lisp programs are reported and analyzed in this paper. These measurements reveal substantial regularity, or predictability, among poin ters to atoms and especially among poin ters to lists. Pointers to atoms are found to obey, roughly, Zipf's law, which governs word frequencies in natural languages; poin ters to lists usually poin t to a location physically nearby in memory. The use of such regularities in the space-efficient representation of list structure is discussed. Linearization of lists, whereby successive cdrs (or cars) are placed in consecutive memory locations whenever possible, greatly strengthens the observed regularity of list structure. It is shown that under some reasonable assumptions, the entropy or information content of a car-cdr pair in the programs measured is about 10 to 15 bits before linearization, and about 7 to 12 bits after. .A Clark, D. W. Green, C. C. .K list structure measurement, Lisp, list structure regularity, poin ter compression, Zipf's law, list linearization, poin ter entropy .I 2999 .T An Approach to Multidimensional Data Array Processing by Computer .W Some recent work on the development of general-purpose computer-based statistical and data processing capabilities for handling multidimensional arrays of data is presented. Attention is first given to some of the general problems of multidimensional table and array processing. This is followed by a summary of some recent developments in array processing capabilities at the World Bank, in particular, the system identified as WRAPS(World Bank Retrieval and Array Processing System). .A Muller, M. E. .K array processing, table processing, statistical analysis, data retrieval, data processing, syntax for data structures, computing techniques, time series, cross tabulation .I 3000 .T Segment Sizes and Lifetimes in Algol 60 Programs .W The characteristics of the virtual memory requirements of a sample of Algol 60 programs have been measured. Distributions are presented for thesizes of memory requests and for their holding times (lifetimes). The results are presented in terms of Johnston's contour model and a simple abstract machine. They provide new empirical evidence of certain aspects of the construction and behavior of real programs, and some of their implications for the design of virtual memory systems are presented and discussed. .A Batson, A. P. Brundage, R. E. .K virtual memory, program behavior, segmentation, storage allocation, Algol 60, contour model .I 3001 .T Detection of Combined Occurrences .W In this paper it is supposed that the variables X1,...,Xn each have finite range with the variable Xi taking on Pi possible values and that the values of the variables are changing with time. It is supposed further that it is desired to detect occurrences in which some subset of the variables achieve particular values. Finally, it is supposed that the problem involves the detection of a large number of combined occurrences for a large number of changes of values of variables. Two efficient solutions for this problem are described. Both methods have the unusual property of being faster for systems where the sum P1 + ... + Pn is larger. The first solution is error-free and suitable for most cases. The second solution is slightly more elegant and allows negation as well as conjunction, but is subject to the possibility of errors. An error analysis is given for the second method and an empirical study is reported. .A Zobrist, A. L. Carlson, F. R. Jr. .K coding, hash coding, retrieval, secondary keys, pattern recognition, artificial in telligence, demons, n-tuples, sorting, chess .I 3002 .T A Record and File Partitioning Model .W One of the main objectives in the design of a file system is the reduction of storage and data transfer costs. This paper presents a model in which several requests access the file system, and each request requires information from one or more variable length data-items. The probabilities of access and the distribution of each data-item's length are assumed to be known, and to be mutually independent. The file system uses one or more storage devices, and each record may be partitioned into subrecords that are stored on different devices. One of the subrecords is designated as the primary record; when a request for a record is made, the primary record is first accessed, and other subrecords are accessed only if the pertinent information is not stored in the primary record. The model that is presented in this paper, both as a nonlinear programming model and a mixed integer programming model, is a very general one; several types of file systems may be derived from it by an appropriate selection of its parameters. This model has already been used in the optimization of library routines' storage at a large scale operating system. .A Babad, J. M. .K file system, file design, file partitioning, record partitioning .I 3003 .T A Survey of the Literature in Computer Science Education Since Curriculum '68 .W A bibliography of approximately two hundred references in computer science education appearing in the literature since the publication of "Curriculum '68" is presented. The bibliography itself is preceded by brief descriptive materials organizing the references into the categories of survey reports, activities of professional organizations, philosophy of programs, description of programs, description of courses and other materials. .A Austing, R. H. Barnes, B. H. .K education, computer science, curricula .I 3004 .T Structured Programming in Cobol: An Approach for Application Programmers .W Techniques for designing and writing Cobol programs are presented. Previous work in structured programming is drawn upon and adapted. The presentation is informal: the terminology is nonmathematical as far as possible, no theorems are proved, and examples are used frequently. Top-down program design is implemented through the use of structured flowcharts, disciplined specifications, and step by step verification. A well-formed Cobol program is defined. The proper use of the GO TO and other Cobol coding practices are discussed. .A Van Gelder, A. .K structured programming, top-down, well-formed program, GO TO statement, repeat statement, flowchart, application programming, Cobol, software reliability, program verification .I 3005 .T Implications of Structured Programming for Machine Architecture .W Based on an empirical study of more than 10,000 lines of program text written in a GOTO-less language, a machine architecture specifically designed for structured programs is proposed. Since assignment, CALL, RETURN, and IF statements together account for 93 percent of all executable statements, special care is given to ensure that these statements can be implemented efficiently. A highly compact instruction encoding scheme is presented, which can reduce program size by a factor of 3. Unlike a Huffman code, which utilizes variable length fields, this method uses only fixed length (1-byte) op code and address fields. The most frequent instructions consist of a single 1-byte field. As a consequence, instruction decoding time is minimized, and the machine is efficient with respect to both space and time. .A Tanenbaum, A.S. .K machine architecture, computer architecture, computer organization, instruction set design, program characteristics .I 3006 .T Anomalies with Variable Partition Paging Algorithms .W Five types of anomalous behavior which may occur in paged virtual memory operating systems a redefined. One type of anomaly, for example, concerns the fact that, with certain reference strings and paging algorithms, an increase in mean memory allocation may result in an increase in fault rate. Two paging algorithms, are examined in terms of their anomaly potential, and reference string examples of various anomalies are presented. Two paging algorithm properties, the inclusion property and the generalized inclusion property, are discussed and the anomaly implications of these properties presented. .A Franklin, M.A. Graham, G.S. Gupta, R.K. .K anomaly, memory management, program behavior, stack algorithms, virtual memory, working set, page fault frequency, paging algorithms .I 3007 .T Complexity of Computations (Corrigendum) .A Rabin, M.O. .I 3008 .T Preserving Average Proximity in Arrays .W Programmers and data structure designers are often forced to choose between alternative structures. In storing these structures, preserving logical adjacencies or "proximity" is usually an important consideration. The combinatorial problem of storing arrays as various kinds of list structures is examined. Embeddings of graphs are used to model the loss of proximity involved in such storage schemes, and an elementary proof that arrays cannot be stored as linear lists with bounded loss of proximity is presented. Average loss of proximity is then considered, and it is shown that arrays cannot be stored as linear lists with only bounded loss of average proximity, but can be so stored in binary trees. The former result implies, for instance, that row major order is an asymptotically optimal storage strategy for arrays. .A DeMillo, R.A. Eisenstat, S.C. Lipton, R.J. .K arrays, graph embedding, linear lists, proximity, average proximity, trees .I 3009 .T Insertions and Deletions In One-Sided Height-Balanced Trees .W Recently Hirschberg has established that insertions into one-sided height-balanced trees can be done in 0(log^2N) steps. It is proved here that deletions can also be performed in 0(log^2N) steps, which answers the open problem posed by Hirschberg. .A Kosaraju, S.R. .K AVL trees, balanced trees, binary search, dynamic balancing .I 3010 .T Value Orientation of Computer Science Students .W Technological and nontechnological value orientations are investigated with special attention to the complexity of value structures. Computer science students, who are closely associated with technology, contrast with social science students, who are often technologically aloof. This is confirmed by the value ratings of 313 students at the University of Minnesota in 1972. Computer science majors were found to have a more complex value structure than social science majors. .A Anderson, R.E. .K values, attitudes, students, public, social effects .I 3011 .T Management Utilization of Computers in American Local Governments .W Traditional concepts of management information systems (MIS) bear little relation to the information systems currently in use by top management in most US local governments. What exists is management-oriented computing, involving the use of relatively unsophisticated applications. Despite the unsophisticated nature of these systems, management use of computing is surprisingly common, but also varied in its extent among local governments. Management computing is most prevalent in those governments with professional management practices where top management is supportive of computing and tends to control computing decisions and where department users have less control over design and implementation activities. Finally, management computing clearly has impacts for top managers, mostly involving improvements in decision information. .A Dutton, W.H. Kraemer, K.L. .K computer utilization, management information system, American local government, city government computers, county government computers, computer impacts, management computing .I 3012 .T The Use of an Interactive Information Storage and Retrieval System in Medical Research .W This paper presents the results of a study of the use of an interactive computerized storage and retrieval system. A monitor built into the computer system provided usage data for the study. Additional data on user reactions were gathe red from a questionnaire. The results show the important role played by frequently chosen laboratory reference leaders in influencing the use of this system. The implications of the study for the design of similar systems are discussed. .A Lucas, H.C.Jr. .K implementation, system use, information storage and retrieval system .I 3013 .T Some New Methods of Detecting Step Edges in Digital Pictures .W This note describes two operators that respond to step edges, but not to ramps. The first is similar to the digital Laplacian, but uses the max, rather than the sum, of the x and y second differences. The second uses the difference between the mean and median gray levels in a neighborhood. The outputs obtained from these operators applied to a set of test pictures are compared with each other and with the standard digital Laplacian and gradient. A third operator, which uses the distance between the center and centroid of a neighborhood as an edge value, is also briefly considered; it turns out to be equivalent to one of the standard digital approximations to the gradient. .A Schachter, B.J. Rosenfeld, A. .K image processing, pattern recognition, edge detection .I 3014 .T Is "Sometime" Sometimes Better than "Always"? (Intermittent Assertions in Proving Program Correctness) .W This paper explores a technique for proving the correctness and termination of programs simultaneously. This approach, the intermittent-assertion method, involves documenting the program with assertions that must be true at some time when control passes through the corresponding point, but that need not be true every time. The method, introduced by Burstall, promises to provide a valuable complement to the more conventional methods. The intermittent-assertion method is presented with a number of examples of correctness and termination proofs. Some of these proofs are markedly simpler than their conventional counterparts. On the other hand, it is shown that a proof of correctness or termination by any of the conventional techniques can be rephrased directly as a proof using intermittent assertions. Finally, it is shown how the intermittent-assertion method can be applied to prove the validity of program transformations and the correctness of continuously operating programs. .A Manna, Z. Waldinger, R. .K intermittent assertions, correctness of programs, termination of programs, program verification, program transformation, continuously operating programs. .I 3015 .T Relaxation Methods for Image Reconstruction .W The problem of recovering an image (a function of two variables) from experimentally available integrals of its grayness over thin strips is of great importance in a large number of scientific areas. An important version of the problem in medicine is that of obtaining the exact density distribution within the human body from X-ray projections.One approach that has been taken to solve this problem consists of translating the available information into a system of linear inequalities. The size and the sparsity of the resulting system (typically, 25,000 inequalities with fewer than 1 percent of the coefficients nonzero) makes methods using successive relaxations computationally attractive, as compared to other ways of solving systems of inequalities. In this paper, it is shown that, for a consistent system of linear inequalities, any sequence of relaxarion parameters lying strictly between 0 and 2 generates a sequence of vectors which converges to a solution. Under the same assumptions, for a system of linear equations, the relaxation method converges to the minimum norm solution. Previously proposed techniques are shown to be special cases of our procedure with different choices of relaxation parameters. The practical consequences for image reconstruction of the choice of the relaxation parameters are discussed. .A Herman, G.T. Lent, A. Lutz, P.H. .K biomedical image processing, image reconstruction, X-ray tomography, mathematical programming, linear inequalities, relaxation techniques .I 3016 .T A Comparison of Numerical Techniques in Markov Modeling .W This paper presents several numerical methods which may be used to obtain the stationary probability vectors of Markovian models. An example of a nearly decomposable system is considered, and the results obtained by the different methods examined. A post mortem reveals why standard techniques often fail to yield the correct results. Finally, a means of estimating the error inherent in the decomposition of certain models is presented. .A Stewart, W.J. .K Markov models, numerical techniques, simultaneous iteration, near-decomposability .I 3017 .T B-trees Re-examined .W The B-tree and its variants have, with increasing frequency, been proposed as a basic storage structure for multiuser database applications. Here, three potential problems which must be dealt with in such a structure that do not arise in more traditional static directory structures are indicated. One problem is a possible performance penalty. .A Held, G. Stonebraker, M. .K B-tree, directory, static directory, dynamic directory, index sequential access method .I 3018 .T Covering Edges by Cliques with Regard to Keyword Conflicts and Intersection Graphs .W Kellerman has presented a method for determining keyword conflicts and described a heuristic algorithm which solves a certain combinatorial optimization problem in connection with this method. This optimization problem is here shown to be equivalent to the problem of covering the edges of a graph by complete subgraphs with the objective of minimizing the number of complete subgraphs. A relationship between this edge-clique-cover problem and the graph coloring problem is established which allows algorithms for either one of these problems to be constructed from algorithm for the other. As consequences of this relationship, the keyword conflict problem and the edge-clique-cover problem are shown to be NP-complete, and if P=/NP then they do not admit polynomial-time approximation algorithms which always produce solutions within a factor less than 2 from the optimum. .A Kou, L.T. Stockmeyer, L.J. Wong, C.K. Watson, T.J. .K keyword conflicts, intersection graphs, node clique cover, edge clique cover, computational complexity, NP-complete problems, polynomial-time heuristics .I 3019 .T The GRE Advanced Test in Computer Science .A Austing, R.H. .I 3020 .T Systematic Recursion Removal .W The recursion removal algorithm presented by Strong and Walker is amplified and applied to a relatively complex PL/I program. The aim is to demonstrate systematic recursion-removal techniques on something more complex than Knuth's "sturdy toddler" and to obtain measurements of the cost of procedure linkage in PL/I and the savings achievable via procedure integration in the presence of recursion. First, the paper describes the recursion-removal process and the example on which it will be illustrated. Recursion removal is then applied to the two major parts of this example and the final result of the process is displayed. Our performance comparison results are presented and our conclusions are briefly discussed. .A Auslander, M.A. Strong, H.R. .K recursion removal, recursion elimination, optimization, procedure linkage, procedure integration .I 3021 .T A Method for Obtaining Digital Signatures and Public-Key Cryptosystems .W An encryption method is presented with the novel property that publicly revealing an encryption key does not thereby reveal the corresponding decryption key. This has two important consequences: (1) Couriers or other secure means are not needed to transmit keys, since a message can be enciphered using an encryption key publicly revealed by the intended recipient. Only he can decipher the message, since only he knows the corresponding decryption key. (2) A message can be "signed" using a privately held decryption key. Anyone can verify this signature using the corresponding publicly revealed encryption key. Signatures cannot be forged, and a signer cannot later deny the validity of his signature. This has obvious applications in "electronic mail" and "electronic funds transfer" systems. A message is encrypted by representing it as a number M, raising M to a publicly specified power e, and then taking the remainder when the result is divided by the publicly specified product, n, of two large secret prime numbers p and q. Decryption is similar;only a different, secret, power d is used, where e * d = 1 (mod(p-1) * (q-1)). the security of the system rests in part on the difficulty of factoring the published divisor, n. .A Rivest, R.L. Shamir, A. Adleman, L. .K digital signatures, public-key cryptosystems, privacy, authentication, security, factorization, prime number, electronic mail, message-passing, electronic funds transfer, cryptography. .I 3022 .T Computer Science Faculties: The Current Status of Minorities and Women .W The results of a survey conducted in the fall of 1975 to determine the status of women and minority faculty members in academic computer science are presented. Faculty members were compared with respect to professional background, salaries, teaching load, publication records, and research grants. Analysis of the data indicated that the over-all verdict is one of general equality among women, minorities, and men. .A Mamrak, S.A. Montanelli, R.G.Jr. .K discrimination against women, discrimination against minorities, faculty, computer science degree programs, affirmative action, teaching loads, salaries, publications .I 3023 .T Architecture of the IBM System/370 .W This paper discusses the design considerations for the architectural extensions that distinguish System/370 from System/360. It comments on some experiences with the original objectives for System/360 and on the efforts to achieve them, and it describes the reasons and objectives for extending the architecture. It covers virtual storage, program control, data-manipulation instructions, timing facilities, multiprocessing, debugging and monitoring, error handling, and input/output operations. A final section tabulates some of the important parameters of the various IBM machines which implement the architecture. .A Case, R.P. Padges, A. .K computer systems, architecture, instruction sets, virtual storage, error handling .I 3024 .T The CRAY-1 Computer System .W This paper describes the CRAY-1, discusses the evolution of its architecture, and gives an account of some of the problems that were overcome during its manufacture. The CRAY-1 is the only computer to have been built to date that satisfies ERDA's Class VI requirement (a computer capable of processing from 20 to 60 million floating point operations per second) [1]. The CRAY-1's Fortran compiler (CFT) is designed to give the scientific user immediate access to the benefits of the CRAY-1's vector processing architecture. An optimizing compiler, CFT, "vectorizes" innermost DO loops. Compatible with the ANSI 1966 Fortran Standard and with many commonly supported Fortran extensions, CFT does not require any source program modifications or the use of additional nonstandard Fortran statements to achieve vectorization. Thus the user's investment of hundreds of man months of effort to develop Fortran programs for other contemporary computers is protected. .A Russell, R.M. .K architecture, computer systems .I 3025 .T The Evolution of the DEC system 10 .W The DEC system 10, also known as the PDP-10, evolved from the PDP-6 (circa 1963) over five generations of implementations to presently include systems covering a price range of five to one. The origin and evolution of the hardware, operating system, and languages are described in terms of technological change, user requirements, and user developments. The PDP-10's contributions to computing technology include: accelerating the transition from batch oriented to time sharing computing systems; transferring hardware technology within DEC (and elsewhere) to minicomputer design and manufacturing; supporting minicomputer hardware and software development; and serving as a model for single user and timeshared interactive minicomputer/microcomputer systems. .A Bell, C.G. Kotok, A. Hastings, T.N. Hill, R. .K computer structures, architecture, operating system, timesharing .I 3026 .T The Evolution of the Sperry Univac 1100 Series: A His tory, Analysis, and Projection .W The 1100 series systems are Sperry Univac's large-scale main frame computer systems. Beginning with the 1107 in 1962, the 1100 series has progressed through a succession of eight compatible computer models to the latest system, the 1100/80, introduced in 1977. The 1100 series hardware architecture is based on a 36-bit word, ones complement structure which obtains one operand from storage and one from a high-speed register, or two operands from high-speed registers. The 1100 Operating System is designed to support a symmetrical multiprocessor configuration simultaneously providing multiprogrammed batch, timesharing, and transaction environments. .A Borgherson, B.R. Hanson, M.L. Hartley, P.A. .K 1100 computer series, computer architecture, multiprocessing languages, data management systems, end user facilities, executive control software .I 3027 .T The Development of the MU5 Computer System .W Following a brief outline of the background of the MU5 project, the aims and ideas for MU5 are discussed. A description is then given of the instruction set, which includes a number of features conducive to the production of efficient compiled code from high-level language source programs. The design of the processor is then traced from the initial ideas for an associatively addressed "name store" to the final multistage pipeline structure involving a prediction mechanism for instruction prefetching and a function queue for array element accessing. An overall view of the complete MU5 complex is presented together with a brief indication of its performance. .A Ibbett, R.N. Capon, P.C. .K architecture, naming, virtual storage, instruction set, descriptor, pipeline, instruction buffering, associative storage, function queue, computer complex .I 3028 .T The Manchester Mark I and Atlas: A His torical Perspective .W In 30 years of computer design at Manchester University two systems stand out: the Mark I (developed over the period 1946-49) and the Atlas (1955-62). This paper places each computer in its his torical context and then describes the architecture and system software in present-day terminology. Several design concepts such as address-generation and store management have evolved in the progression from Mark I to Atlas. The wider impact of Manchester innovations in these and other areas is discussed, and the contemporary performance of the Mark I and Atlas is evaluated. .A Lavington, S.H. .K architecture, index registers, paging, virtual storage, extra codes, compilers, operating systems, Ferranti, Manchester Mark I, Atlas, ICL .I 3029 .T Foreword to the Special Issue on Computer Architecture .A Fuller,S.H. .I 3030 .T An Example of Hierarchical Design and Proof .W Hierarchical programming is being increasingly recognized as helpful in the construction of large programs. Users of hierarchical techniques claim or predict substantial increases in productivity and in the reliability of the programs produced. In this paper we describe a formal method for hierarchical program specification, implementation, and proof. We apply this method to a significant list processing problem and also discuss a number of extensions to current programming languages that ease hierarchical program design and proof. .A Spitzen, J.M. Levitt, K.N. Robinson, L. .K Program verification, specification, data abstraction, software modules, hierarchical structures .I 3031 .T Abstract Data Types and Software Validation .W A data abstraction can be naturally specified using algebraic axioms. The virtue of these axioms is that they permit a representation-independent formal specification of a data type. An example is given which shows how to employ algebraic axioms at successive levels of implementation. The major thrust of the paper is twofold. First, it is shown how the use of algebraic axiomatizations can simplify the process of proving the correctness of an implementation of an abstract data type. Second, semi-automatic tools are described which can be used both to automate such proofs of correctness and to derive an immediate implementation from the axioms. This implementation allows for limited testing of programs at design time, before a conventional implementation is accomplished. .A Guttag, J.V. Horowitz, E. Musser, D.R. .K Abstract data type, correctness proof, data type, data structure, specification .I 3032 .T Reverse Path Forwarding of Broadcast Packets .W A broadcast packet is for delivery to all nodes of a network. Algorithms for accomplishing this delivery through a store-and-forward packet switching computer network include (1) transmission of separately addressed packets. (2) multidestination addressing, (3) hot potato forwarding,(4) spanning tree forwarding, and (5) source based forwarding. To this list of algorithms we add (6) reverse path forwarding, a broadcast routing method which exploits routing procedures and data structures already available for packet switching. Reverse path forwarding is a practical algorithm for broadcast routing in store-and-forward packet switching computer networks. The algorithm is described as being practical because it is not optimal according to metrics developed for its analysis in this paper, and also because it can be implemented in existing networks with less complexity than that required for the known alternatives. .A Dalal, Y.K. Metcalfe, R.M. .K Reverse path forwarding, broadcast packets, routing, computer networks, store-and-forward packet switching, broadcast protocols .I 3033 .T Optimizing Decision Trees Through Heuristically Guided Search .W Optimal decision table conversion has been tackled in the literature using two approaches, dynamic programming and branch-and-bound. The former technique is quite effective, but its time and space requirements are independent of how "easy" the given table is. Furthermore, it cannot be used to produce good, quasi optimal solutions. The branch-and-bound technique uses a good heuristic to direct the search, but is cluttered up by an enormous search space, since the number of solutions increases with the number of test variables according to a double exponential. In this paper we suggest a heuristically guided top-down search algorithm which, like dynamic programming, recognizes identical subproblems but which can be used to find both optimal and quasi optimal solutions. The heuristic search method introduced in this paper combines the positive aspects of the above two techniques. Compressed tables with a large number of variables can be handled without deriving expanded tables first. .A Martelli, A. Montanari, U. .K Decision table, optimal decision table conversion, decision tree, heuristic search, AND/OR graphs, dynamic programming, branch-and-bound .I 3034 .T Detection of Logical Errors in Decision Table Programs .W In this paper an algorithm to detect logical errors in a limited-entry decision table and in loop-free programs with embedded decision tables is developed. All the conditions in the decision tables are assumed to be inequalities or equalities relating linear expressions. It is also assumed that actions in a decision table are linear in variables which occur in the condition stub of the decision table (or tables) to which control is transferred from the table. The algorithm is based on determining whether a set of linear inequalities has or does not have a solution. The algorithm described in the paper is implemented in Fortran IV. .A Ibramsha, M. Rajaraman, V. .K Error diagnostics, decision tables .I 3035 .T A Strategic Planning Methodology for the Computing Effort in Higher Education: An Empirical Evaluation .W The findings of a study designed to address the pressing problems associated with the strategic planning of the computing effort in higher education are presented here. A planning methodology was developed and tested through implementation at a university. Two years after the methodology was implemented, the effectiveness of the planning methodology was assessed in terms of the improvement of the delivery of computing services to the major institutional roles of instruction, research, and administration. Two control institutions were employed to contrast the improvements at the test institution. The results of the research indicate the planning methodology significantly enhanced the delivery of computing services. .A Wetherbe, J.C. Dock, V.T. .K Computer management, computer budget, university computing, computer planning .I 3036 .T The Selection of Optimal Tab Settings .W A new generation of computer terminals allows tab settings to be selected and set by the computer. This feature can be used to reduce the number of characters that are needed to represent a document for transmission and printing. In this note, an algorithm is given for selecting the optimal set of tab stops for minimizing the number of characters transmitted. An implementation of the algorithm has reduced the number of characters transmitted by from 7 to 30 percent, but requires a prepass through the document to compute a matrix used in determining the optimal set tab stops. The use of fixed tab stops, as a heuristic alternative, can achieve about 80 percent of optimal with no prepass. .A Peterson, J.L. Bitner, J.R. Howard, J.H. .K Tabs, word processing, dynamic programming .I 3037 .T A Linear Sieve Algorithm for Finding Prime Numbers .W A new algorithm is presented for finding all primes between 2 and n. The algorithm executes in time proportional to n (assuming that multiplication of integers not larger than n can be performed in unit time). The method has the same arithmetic complexity as the algorithm presented by Mairson [6]; however, our version is perhaps simpler and more elegant. It is also easily extended to find the prime factorization of all integers between 2 and n in time proportional to n. .A Gries, D. Misra, J. .K Primes, algorithms, data structures .I 3038 .T Using Encryption for Authentication in Large Networks of Computers .W Use of encryption to achieve authenticated communication in computer networks is discussed. Example protocols are presented for the establishment of authenticated connections, for the management of authenticated mail, and for signature verification and document integrity guarantee. Both conventional and public-key encryption algorithms are considered as the basis for protocols. .A Needham, R.M. Schroeder, M.D. .K Encryption, security, authentication, networks, protocols, public-key cryptosystems, data encryption standard .I 3039 .T On-the-Fly Garbage Collection: An Exercise in Cooperation .W As an example of cooperation between sequential processes with very little mutual interference despite frequent manipulations of a large shared data space, a technique is developed which allows nearly all of the activity needed for garbage detection and collection to be performed by an additional processor operating con-currently with the processor devoted to the computation proper. Exclusion and synchronization constraints have been kept as weak as could be achieved; the severe complexities engendered by doing so are illustrated. .A Dijkstra, E.W. Lamport, L. Martin, A.J. Scholten, C.S. Steffens, E.F.M. .K Multiprocessing, fine-grained interleaving, cooperation between sequential processes with minimized mutual exclusion, program correctness for multiprogramming tasks, garbage collection .I 3040 .T Synthesizing Constraint Expressions .W A constraint network representation is presented for a combinatorial search problem: finding values for a set of variables subject to a set of constraints. A theory of consistency levels in such networks is formulated, which is related to problems of backtrack tree search efficiency. An algorithm is developed that can achieve any level of consistency desired, in order to preprocess the problem for subsequent backtrack search, or to function as an alternative to backtrack search by explicitly determining all solutions. .A Freuder, E.C. .K Backtrack, combinatorial algorithms, constraint networks, constraint satisfaction, graph coloring, network consistency, relaxation, scene labeling, search .I 3041 .T Median Split Trees: A Fast Lookup Technique for Frequently Occuring Keys .W Split trees are a new technique for searching sets of keys with highly skewed frequency distributions. A split tree is a binary search tree each node of which contains two key values-a node value which is a maximally frequent key in that subtree, and a split value which partitions the remaining keys (with respect to their lexical ordering) between the left and right subtrees. A median split tree (MST) uses the lexical median of a node's descendents as its split value to force the search tree to be perfectly balanced, achieving both a space efficient representation of the tree and high search speed. Unlike frequency ordered binary search trees, the cost of a successful search of an MST is log n bounded and very stable around minimal values. Further, an MST can be built for a given key ordering and set of frequencies in time n log n, as opposed to n2 for an optimum binary search tree. A discussion of the application of MST's to dictionary lookup for English is presented, and the performance obtained is contrasted with that of other techniques. .A Sheil, B.A. .K Tree search, dictionary lookup, binary search, heaps, balanced trees, Zipf's Law, information retrieval .I 3042 .T Power Trees .W The new class of Pk trees is presented, where height balance is maintained for the nodes Iying on particular paths. The number of nodes of a Pk tree asymptotically grows as a power of the height, in the worst case. A procedure for node insertion is given, and the class of trees considered is restricted to IPk trees, which are buildable by such a procedure. The average behavior of such trees, studied by an extensive set of simulation runs, is close to that of AVL trees. In particular, the family of IPO trees whose main advantage is the reduced number of restructurings required after node insertion, is analyzed. .A Luccio, F. Pagli, L. .K Binary search trees, Pk trees, IPk trees, search length, node insertion, subtree rotation .I 3043 .T Distributed Processes: A Concurrent Programming Concept .W A language concept for concurrent processes without common variables is introduced. These processes communicate and synchronize by means of procedure calls and guarded regions. This concept is proposed for real-time applications controlled by microcomputer networks with distributed storage. The paper gives several examples of distributed processes and shows that they include procedures, coroutines, classes, monitors, processes, semaphores, buffers, path expressions, and input/output as special cases. .A Hansen, P. .K Concurrent programming, distributed processes, microprocessor networks, nondeterminism, guarded regions, programming languages, process communication and scheduling, sorting arrays, coroutines, classes, monitors, processes, semaphores, buffers, path expressions, input/output .I 3044 .T A Note on Conditional Expressions .W Evaluation of a conditional expression may succeed even when the "deciding predicate" diverges and the alternatives are records (or nodes) whose fields have different content. .A Friedman, D.P. Wise, D.S. .K Parallel evaluation, suspending cons, Lisp, conditional forms, if-then-else, ambiguous function, infinite structures .I 3045 .T A Simple Recovery-Only Procedure For SImple Precedence Parsers .W A simple method is described enabling simple precedence parsers to recover from syntax errors. No attempt to repair errors is made, yet parsing and most semantic processing can continue. The result is a good "first approximation" to syntax error handling with negligible increase in parsing time, space, and complexity of both the parser and its table generator. .A Ripley, D.G. .K Syntax errors, error recovery, parsing, simple precedence, compilers, debugging .I 3046 .T Computer Generation of Gamma Random Variables - II .W A rejection method is proposed for generating gamma variates with nonintegral shape parameter a, a > 1. This method is similar to other methods given by Fishman, Wallace, and Tadikamalla and is faster than these methods for a> 2. The core storage requirements and the programming effort for the proposed method are similar to those of Wallace's or Tadikamalla's methods. The computational times for the proposed method remain fairly constant for medium and large values of a and are superior to times obtained by Ahrens and Dieter's method for all values of a. The proposed method is simpler than Ahrens and Dieter's method. .A Tadikamalla, P.R. .K Gamma variables, rejection method, computer methods .I 3047 .T Using Synthetic Images to Register Real Images with Surface Models .W A number of image analysis tasks can benefit from registration of the image with a model of the surface being imaged. Automatic navigation using visible light or radar images requires exact alignment of such images with digital terrain models. In addition, automatic classification of terrain, using satellite imagery, requires such alignment to deal correctly with the effects of varying sun angle and surface slope. Even inspection techniques for certain industrial parts may be improved by this means. We achieve the required alignment by matching the real image with a synthetic image obtained from a surface model and known positions of the light sources. The synthetic image intensity is calculated using the reflectance map, a convenient way of describing surface reflection as a function of surface gradient. We illustrate the technique using LANDSAT images and digital terrain models. .A Horn, B.K.P. Bachman, B.L. .K Image registration, synthetic images, surface models, automatic hill shading, digital terrain models, image transformation, image matching, shaded images .I 3048 .T Performance Evaluation of Highly Concurrent Computers by Deterministic Simulation .W Simulation is presented as a practical technique for performance evaluation of alternative configurations of highly concurrent computers. A technique is described for constructing a detailed deterministic simulation model of a system. In the model a control stream replaces the instruction and data streams of the real system. Simulation of the system model yields the timing and resource usage statistics needed for performance evaluation, without the necessity of emulating the system. As a case study, the implementation of a simulator of a model of the CPU-memory subsystem of the IBM 360/91 is described. The results of evaluating some alternative system designs are discussed. The experiments reveal that, for the case study, the major bottlenecks in the system are the memory unit and the fixed point unit. Further, it appears that many of the sophisticated pipelining and buffering technique simplemented in the architecture of the IBM 360/91 are of little value when high-speed (cache) memory is used, as in the IBM 360/195. .A Kumar, B. Davidson, E.S. .K Performance evaluation, deterministic simulation, control stream, concurrent computers .I 3049 .T A Simply Extended and Modified Batch Environment Graphical System (SEMBEGS) .W SEMBEGS is a complete batch environment graphical system containing components for handling graphical data files, for displaying the contents of these files on a variety of graphical hardware, and for performing graphical batch input operations. SEMBEGS is easy to extend and modify to meet the growing needs of a large batch environment, and is even extendable to a fully interactive system. The paper presents the conceptual view of graphics leading to the design of SEMBEGS and outlines the major components of the system. The design of SEMBEGS is founded upon the basic assumption that the true aim of computer graphics is to describe graphical entities, rather than, as commonly held, to provide graphical input and output functional capabilities. SEMBEGS is built around a Basic Graphical Data Management System (BAGDAMS) which provides a common means of communicating the descriptions of graphical entities between the various components of SEMBEGS. BAGDAMS provides facilities for storing, retrieving, and manipulating the descriptions of graphical entities provided by, and received by application programs, graphics packages, and graphical devices. .A Wendorf, J.W. .K Computer graphics, data structures, graphic display, graphic input, graphical database, device independent graphics .I 3050 .T Systems Design Education: A Gaming Approach .W One of the problems facing managers of computer installations is the problem of configuring the computer system to meet the demands made by the mix of jobs that the computer center must service. This paper presents a management game that allows the player to configure a computer system to meet a hypothetical job mix is under the control of a game administrator and can be varied to simulate a variety of real-world situations (I/O bound jobs, compute bound jobs, etc.). The player of the game receives a set of detailed reports on the cost of his choices and a simulated run of the center operating under his choices. .A Lyons, N.R. .K System design, configuration, management game .I 3051 .T A Comparison of Heaps and the TL Structure for the SImulation Event Set .W None .A Franta, W.R. Maly, K. .K Simulation,event set, heaps, TL structure .I 3052 .T Cold-Start vs. Warm-Start Miss Ratios .W In a two-level computer storage hierarchy, miss ratio measurements are often made from a "cold start," that is made with the first-level store initially empty. For large capacities the effect on the measured miss ratio of the misses incurred while filling the first-level store can be significant, even for long reference strings. Use of "warm-start" rather than "cold-start" miss ratios cast doubt on the widespread belief that the observed "S-shape" of lifetime (reciprocal of miss ratio) versus capacity curve indicates a property of behavior of programs that maintain a constant number of pages in main storage. On the other hand, if cold-start miss ratios are measured as a function of capacity and measurement length, then they are useful in studying systems in which operation of a program is periodically interrupted by task switches. It is shown how to obtain, under simple assumptions, the cache miss ratio for multiprogramming from cold-start miss ratio values and how to obtain approximate cold-start miss ratios from warm-start miss ratios. .A Easton, M.C. Fagin, R. .K Miss ratio, cold start, warm start, storage hierarchy, lifetime function, multiprogramming, S-shape .I 3053 .T Packed Scatter Tables .W Scatter tables for open addressing benefit from recursive entry displacements, cutoffs for unsuccessful searches, and auxiliary cost functions. Compared with conventional methods, the new techniques provide substantially improved tables that resemble exact-solution optimal packings. The displacements are depth-limited approximations to an enumerative (exhaustive) optimization, although packing costs remain linear-O(n)-with table size n. The techniques are primarily suited for important fixed (but possibly quite large) tables for which reference frequencies may be known: op-code tables,spelling dictionaries, access arrays. Introduction of frequency weights further improves retrievals, but the enhancement may degrade cutoffs. .A Lyon, G. .K Assignment problem, backtrack programming, hashing, open addressing, recursion, scatter table rearrangements .I 3054 .T Implementing Quicksort Programs .W This paper is a practical study of how to implement the Quicksort sorting algorithm and its best variants on real computers, including how to apply various code optimization techniques. A detailed implementation combining the most effective improvements to Quicksort is given, along with a discussion of how to implement it in assembly language. Analytic results describing the performance of the programs are summarized. A variety of special situations are considered from a practical standpoint to illustrate Quicksort's wide applicability as an internal sorting method which requires negligible extra storage. .A Sedgewick, R. .K Quicksort, analysis of algorithms, code optimization, sorting .I 3055 .T An Analysis of Algorithms for the Dutch National Flag Problem .W Solutions to the Dutch National Flag Problem have been given by Dijkstra [1] and Meyer [3]. Dijkstra starts with a simple program and arrives at an improved program by refinement. Both of the algorithms given by Dijkstra are shown to have an expected number of swaps which is 2/3N + 0(1) and that these values differ at most by 1/3 of a swap and asymptotically by 1/4 of a swap. The algorithm of Meyer is shown to have expected swap complexity 5/9N. .A McMaster, C.L. .K Algorithmic analysis, Dutch National Flag Problem, refinement, structured programming .I 3056 .T Counting Large Numbers of Events in Small Registers .W It is possible to use a small counter to keep approximate counts of large numbers. The resulting expected error can be rather precisely controlled. An example is given in which 8-bit counters (bytes) are used to keep track of as many as 130,000 events with a relative error which is substantially independent of the number n of events. This relative error can be expected to be 24 percent or less 95 percent of the time (i.e.o = n/8). The techniques could be used to advantage in multichannel counting hardware or software used for the monitoring of experiments or processes. .A Morris, R. .K Counting .I 3057 .T Optimal His togram Matching by Monotone Gray Level Transformation .W This paper investigates the problem of optimal his togram matching using monotone gray level transformation, which always assigns all picture points of a given gray level i to another gray level T(i) such that if i > j, then T(i) > T(j). The objective is to find a transformed digital picture of a given picture such that the sum of absolute errors between the gray level his togram of the transformed picture and that of a reference picture is minimized. This is equivalent to placing k1 linearly ordered objects of different sized one by one into k2 linearly ordered boxes of assorted sizes, such that the accumulated error of space under packed or overpacked in the boxes is minimized; the placement function is monotonic, which ensures a polynomial time solution to this problem. A tree search algorithm for optimal his togram matching is presented which has time complexity O(k1 x k2). If the monotone property is dropped, then the problem becomes NP-complete, even if it is restricted to k2 = 2. .A Chang, S.K. Wong, Y.W. .K Optimal his togram matching, gray level transformation, packing problem, tree searching algorithm, picture processing .I 3058 .T Jump Searching: A Fast Sequential Search Technique .W When sequential file structures must be used and binary searching is not feasible, jump searching becomes an appealing alternative. This paper explores variants of the classic jump searching scheme where the optimum jump size is the square root of the number of records. Multiple level and variable size jump strategies are explored, appropriate applications are discussed and performance is evaluated. .A Shneiderman, B. .K Jump searching, sequential files, file management, search strategies, database structures, index searching .I 3059 .T Models for Parallel Processing WIthin Programs: Application to CPU:I/O and I/O:I/O Overlap .W Approximate queueing models for internal parallel processing by individual programs in a multiprogrammed system are developed in this paper. The solution technique is developed by network decomposition. The models are formulated in terms of CPU:I/O and I/O:I/O overlap and applied to the analysis of these problems. The percentage performance improvement from CPU:I/O overlap is found to be greatest for systems which are in approximate CPU:I/O utilization balance and for low degrees of multiprogramming. The percentage improvement from I/O:I/O overlap is found to be greatest for systemtems in which the I/O system is more utilized than the CPU. .A Towsley, D. Chandy, K.M. Browne, J.C. .K Multiprogramming, parallel processing, queueing network models, multiprocessing of computation and I/O .I 3060 .T Fortran 77 .W There is a new standard Fortran. The official title is "American National Standard Programming Language Fortran, X3.9-1978," but it is more commonly referred to as "Fortran 77," since its development was completed in 1977. It replaces the Fortran standard designated X3.9-1966. This paper describes many of the features of Fortran 77 and also provides some information about how and why the standard was developed. .A Brainerd, W. .K None .I 3061 .T Simulations of Dynamic Sequential Search Algorithms .W None .A Tenenbaum, A. .K Searching, list processing, sequential searching, dynamic reordering, simulation .I 3062 .T Real Time Plotting of Approximate Contour Maps .W None .A Ward, S.A. .K Contour map, digital plotting, graphical characters .I 3063 .T A Note on Virtual Memory Indexes .W None .A Maly, K. .K Index, B-tree, pages, file organization, linked representation, maintenance costs .I 3064 .T Event Manipulation for Discrete Simulations Requiring Large Numbers of Events .W The event-manipulation system presented here consists of two major parts. The first part addresses the familiar problem of event scheduling efficiency when the number of scheduled events grows large. The second part deals with the less apparent problem of providing efficiency and flexibility as scheduled events are accessed to be executed. Additional features and problems dealt with include the proper handling of simultaneous events; that certain events must be created, scheduled, and executed at the same points in simulated time; that infinite loops caused by the concatenation of such "zero-time" events are possible and must be diagnosed; that maintaining various event counts is practical and economical; and that a capability for handling "time-displaceable" events is desirable and possible. .A Ulrich, E.G. .K Simulation, discrete systems simulation, discrete event simulation, time-flow mechanisms .I 3065 .T Right Brother Trees .W Insertion and deletion are provided for the class of right (or one-sided) brother trees which have O (log n) performance. The importance of these results stems from the close relationship of right brother trees which have an insertion algorithm operating in O (log2 n). Further, although both insertion and deletion can be carried out in O (log n) time for right brother trees, it appears that the insertion algorithm is inherently much more difficult than the deletion algorithm-the reverse of what one usually obtains. .A Ottmann, T.T. Six, H.W. Wood, D. .K Dictionary problem, search trees, AVL trees, brother trees, right-balanced trees,one-sided height-balanced trees, insertion and deletion algorithms .I 3066 .T A Controlled Experiment in Program Testing and Code Walkthroughs/Inspections .W This paper describes an experiment in program testing, employing 59 highly experienced data processing professionals using seven methods to test a small PL/I program. The results show that the popular code walk through/inspection method was as effective as other computer-based methods in finding errors and that the most effective methods (in terms of errors found and cost) employed pairs of subjects who tested the program independently and then pooled their findings. The study also shows that there is a tremendous amount of variability among subjects and that the ability to detect certain types of errors varies from method to method. .A Myers, G.J. .K Software reliability, program verification, debugging, testing, code walkthroughs, code inspections, personnel selection .I 3067 .T Generalized Working Sets for Segment Reference Strings .W The working-set concept is extended for programs that reference segments of different sizes. The generalized working-set policy (GWS) keeps as its resident set those segments whose retention costs do not exceed their retrieval costs. The GWS is a model for the entire class of demand-fetching memory policies that satisfy a resident-set inclusion property. A generalized optimal policy (GOPT) is also defined; at its operating points it minimizes aggregated retention and swapping costs. Special cases of the cost structure allow GWS and GOPT to simulate any known stack algorithm, the working set, and VMIN. Efficient procedures for computing demand curves showing swapping load as a function of memory usage are developed for GWS and GOPT policies. Empirical data from an actual system are included. .A Denning, P.J. Slutz, D.R. .K Database referencing, memory management, optimal memory policies, paging, program behavior, program measurement, segmentation, working sets .I 3068 .T A Model for Verification of Data Security in Operating Systems .W Program verification applied to kernel architectures forms a promising method for providing uncircumventably secure, shared computer systems. A precise definition of data security is developed here in terms of a general model for operating systems. This model is suitable as a basis for verifying many of those properties of an operating system which are necessary to assure reliable enforcement of security. The application of this approach to the UCLA secure operating system is also discussed. .A Popek, G.J.. Farber, D.A. .K Operating systems, security, protection, program verification .I 3069 .T A Practical Interprocedural Data Flow Analysis Algorithm .W A new interprocedural data flow analysis algorithm is presented and analyzed. The algorithm associates with each procedure in a program information about which variables may be modified, which may be used, and which are possibly preserved by a call on the procedure, and all of its subcalls. The algorithm is sufficiently powerful to be used on recursive programs and to deal with the sharing of variables which arises through reference parameters. The algorithm is unique in that it can compute all of this information in a single pass, not requiring a prepass to compute calling relationships or sharing patterns. The algorithm is asymptotically optimal in time complexity. It has been implemented and is practical even on programs which are quite large. .A Barth, J.M. .K Data flow analysis, global flow analysis, optimization, side effects, relations, reference parameters, incarnations .I 3070 .T Hybrid Simulation Models of Computer Systems .W This paper describes the structure and operation of a hybrid simulation model in which both discrete-event simulation and analytic techniques are combined to produce efficient yet accurate system models. In an example based on a simple hypothetical computer system, discrete-event simulation is used to model the arrival and activation of jobs, and a central-server queueing network models the use of system processors. The accuracy and efficiency of the hybrid technique are demonstrated by comparing the result and computational costs of the hybrid model of the example with those of an equivalent simulation-only model. .A Schwetman, H.D. .K Performance evaluation, simulation, queueing network models, central server model .I 3071 .T An Algorithm Using Symbolic Techniques for the Bel-Petrov Classification of Gravitational Fields .W In this note, an algorithm is presented for the symbolic calculation of certain algebraic invariants of the Weyl tensor which permits the determination of the Bel-Petrov types of a gravitational field. This algorithm, although more specialized than that of D'Inverno and Russell-Clark, requires neither the use of a special coordinate system nor the spin coefficient formalism. The algorithm has been implemented in FORMAC and is designed to complete the classification scheme proposed by Petrov in his book. An appendix contains examples illustrating the use of the algorithm. .A Harris, R.A. Zund, J.D. .K General relativity, Bel-Petrov types, FORMAC, symbolic manipulation, tensors .I 3072 .T Feedback Coupled Resource Allocation Policies in the Multiprogramming- Multiprocessor Computer System .W Model studies of some integrated, feedback-driven scheduling systems for multiprogrammed- multiprocessor computer systems are presented. The basic control variables used are the data-flow rates for the processes executing on the CPU. The model systems feature simulated continuous-flow and preempt-resume scheduling of input-output activity. Attention is given to the amount of memory resource required for effective processing of the I/O activity (buffer space assignment). The model studies used both distribution-driven and trace-driven techniques. Even relatively simple dynamic schedulers are shown to improve system performance (as measured by user CPU time) over that given by optimal or near-optimal static schedulers imbeded in identical system structures and workload environments. The improvement is greatest under a heavy I/O demand workload. .A Brice, R.S. Browne, J.C. .K Integrated schedulers, feedback scheduling, multiprogramming systems, I/O system scheduling .I 3073 .T Communicating Sequential Processes .W This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. When combined with a development of Dijkstra's guarded command, these concepts are surprisingly versatile. Their use is illustrated by sample solutions of a variety of familiar programming exercises. .A Hoare, C.A.R. .K Programming, programming languages, programming primitives, program structures, parallel programming, concurrency, input, output, guarded commands, nondeterminacy, coroutines, procedures, multiple entries, multiple exits, classes, data representations, recursion, conditional critical regions, monitors, iterative arrays .I 3074 .T A Time- and Space- Efficient Garbage Compaction Algorithm .W Given an area of storage containing scattered, marked nodes of differing sizes, one may wish to rearrange them into a compact mass at one end of the area while revising all pointers to marked nodes to show their new locations. An algorithm is described here which accomplishes this task in linear time relative to the size of the storage area, and in a space of the order of one bit for each pointer. The algorithm operates by reversibly encoding the situation (that a collection of locations point to a single location) by a linear list, emanating from the pointed-to location, passing through the pointing locations, and terminating with the pointed-to location's transplanted contents. .A Morris, F.L. .K Garbage collection, compaction, compact ification, storage reclamation, storage allocation, record structures, relocation, list processing, free storage, pointers, data structures .I 3075 .T Fast Parallel Sorting Algorithms .W A parallel bucket-sort algorithm is presented that requires time O(log n) and the use of n processors. The algorithm makes use of a technique that requires more space than the product of processors and time. A realistic model is used model is used in which no memory contention is permitted. A procedure is also presented to sort n numbers in time O(k log n) using n 1 + 1/k processors, for k an arbitrary integer. The model of computation for this procedure permits simultaneous fetches from the same memory location. .A Hirschberg, D.S. .K Parallel processing, sorting, algorithms, bucket sort .I 3076 .T Value Conflicts and Social Choice in Electronic Funds Transfer System Developments .W During the last few years, computer-based systems which automate the transfer and recording of debits and credits have begun to be implemented on a large scale. These systems promise both financial benefits for the institutions that use them and potential conveniences to their customers. However, they also raise significant social, legal, and technical questions that must be resolved if full scale systems for Electronic Funds Transfer (EFT) are not to cause more problems for the larger public than they solve. This paper examines the incentives for EFT developments and the social problems they raise in the context of conflicts between five different value positions that are often implicit in analyses of proposed EFT arrangements. These conflicts reflect the relative importance of certain problems for specific groups. The value positions implicit in EFT proposals help to organize analyses of market arrangements, system reliability, and privacy of transactions. These topics are analyzed in this article and related to the value positions held by concerned parties. Last, the ways in which the public can learn about the social qualities of different EFT arrangements and the pace of EFT developments are both discussed in the context of social choice. .A Kling, R. .K Electronic funds transfer systems, social impacts of computing, privacy, social choice, computer networks, network reliability, security, social values .I 3077 .T Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs .W Conventional programming languages are growing ever more enormous, but not stronger. Inherent defects at the most basic level cause them to be both fat and weak: their primitive word-at-a-time style of programming inherited from their common ancestor-the von Neumann computer, their close coupling off semantics to state transitions, their division of programming into a world of expressions and a world of statements, their inability to effectively use powerful combining forms for building new programs from existing ones, and their lack of useful mathematical properties for reasoning about programs. An alternative functional style of programming is founded on the use of combining forms for creating programs. Functional programs deal with structured data, are often nonrepetitive and nonrecursive, are hierarchically constructed, do not name their arguments, and do not require the complex machinery of procedure declarations to become generally applicable. Combining forms can use high level programs to build still higher level ones in a style not possible in conventional languages. Associated with the functional style of programming is an algebra of programs whose variables range over programs and whose operations are combining forms. This algebra can be used to transform programs and to solve equations whose "unknowns" are programs in much the same way one transforms equations in high school algebra. These transformations are given by algebraic laws and are carried out in the same language in which programs are written. Combining forms are chosen not only for their programming power but also for the power of their associated algebraic laws. General theorems of of the algebra give the detailed behavior and termination conditions for large classes of programs. A new class of computing systems uses the functional programming style both in its programming language and in its state transition rules. Unlike von Neumann languages, these systems have semantics loosely coupled to states-only one state transition occurs per major computation. .A Backus, J. .K Functional programming, algebra of programs, combining forms, functional forms, programming languages, von Neumann computers, von Neumann languages, models of computing systems, applicative computing systems, applicative state transition systems, program transformation, program correctness, program termination, metacomposition .I 3078 .T Analysis of the Availability of Computer Systems Using Computer- Aided Algebra .W Analytical results, related to the availability of a computer system constructed of unreliable processors, are presented in this paper. These results are obtained by using various computer-aided algebraic manipulation techniques. A major purpose of this paper is to demonstrate that the difficulties of obtaining analytical solutions to Markov processes can be considerably reduced by the application of symbol manipulation programs. Since many physical systems can be modeled by Markov and semi-Markov processes, the potential range of application of these techniques is much wider than the problem of availability analyzed here. .A Chattergy, R. Pooch, U.W. .K Computer-aided algebra, symbol manipulation, Markov process, reliability, redundant structures, on-line computer system. .I 3079 .T An Algorithm for Reasoning About Equality .W A simple technique for reasoning about equalities that is fast and complete for ground formulas with function symbols and equality is presented. A proof of correctness is given as well. .A Shostak, R.E. .K Theorem proving, deduction, program verification, equality .I 3080 .T Proving the Correctness of Heuristically Optimized Code .W A system for proving that programs written in a high level language are correctly translated to a low level language is described. A primary use of the system is as a post optimization step in code generation. The low level language programs need not be generated by a compiler and in fact could be hand coded. Examples of the usefulness of such a system are given. Some interesting results are the ability to handle programs that implement recursion by bypassing the start of the program, and the detection and pinpointing of a wide class of errors in the low level language programs. The examples demonstrate that optimization of the genre of this paper can result in substantially faster operation and the saving of memory in terms of program and stack sizes. .A Samet, H. .K Compilers, correctness, code optimization, debugging, program verification, Lisp .I 3081 .T Shallow Binding in Lisp 1.5 .W Shallow binding is a scheme which allows the value of a variable to be accessed in a bounded amount of computation. An elegant model for shallow binding in Lisp 1.5 is presented in which context-switching is an environment tree transformation called rerooting. Rerooting is completely general and reversible, and is optional in the sense that a Lisp 1.5 interpreter will operate correctly whether or not rerooting is invoked one very context change. Since rerooting leaves assoc [v, a] invariant, for all variables v and all environments a, the programmer can have access to a rerooting primitive, shallow[], which gives him dynamic control over whether accesses are shallow or deep, and which affects only the speed of execution of a program, not its semantics. In addition, multiple processes can be active in the same environment structure, so long as rerooting is an indivisible operation. Finally, the concept of rerooting is shown to combine the concept of shallow binding in Lisp with Dijkstra's display for Algol and hence is a general model for shallow binding. .A Baker, H.G. Jr. .K Lisp 1.5, environment trees, FUNARG'S, shallow binding, deep binding, multiprogramming, Algol display .I 3082 .T Time, Clocks, and the Ordering of Events in a Distributed System .W The concept of one event happening before another in a distributed system is examined, and is shown to define a partial ordering of the events. A distributed algorithm is given for synchronizing a system of logical clocks which can be used to totally order the events. The use of the total ordering is illustrated with a method for solving synchronization problems. The algorithm is then specialized for synchronizing physical clocks, and a bound is derived on how far out of synchrony the clocks can become. .A Lamport, L. .K Distributed systems, computer networks, clock synchronization, multiprocess systems .I 3083 .T Pseudochaining in Hash Tables .W This paper presents pseudochaining as a new collision-resolution method. Pseudochaining is half way between open addressing and chaining. It owes its name to the fact that link fields are present in each cell of the hash table which permits "chaining" of the first overflow items in the table. The efficiency of the method is derived and a tradeoff analysis is given. .A Halatsis, C. Philokyprou, G. .K Hash code, scatter storage, open addressing, chaining, pseudochaining, collision resolution, searching, uniform probing. .I 3084 .T Interpolation Search -A Log LogN Search .W Interpolation search is a method of retrieving a desired record by key in an ordered file by using the value of the key and the statistical distribution of the keys. It is shown that on the average log logN file accesses are required to retrieve a key, assuming that the N keys are uniformly distributed. The number of extra accesses is also estimated and shown to be very low. The same holds if the cumulative distribution function of the keys is known. Computational experiments confirm these results. .A Perl, Y. Itai, A. Avni, H. .K Average number of accesses, binary search, database, interpolation search, retrieval, searching, uniform distribution .I 3085 .T An O(n) Algorithm for Determining a Near-Optimal Computation Order of Matrix Chain Products .W This paper discusses the computation of matrix chain products of the form M1 x M2 x ... x Mn where Mi's are matrices. The order in which the matrices are computed affects the number of operations. A sufficient condition about the association of the matrices in the optimal order is presented. An O(n) algorithm to find an order of computation which takes less than 25 percent longer than the optimal time Topt is also presented. In most cases, the algorithm yields the optimal order or an order which takes only a few percent longer than Topt (less than 1 percent on the average). .A Chin, F.Y. .K Approximate algorithm, heuristic algorithm, matrix multiplication, matrix chain product .I 3086 .T On the Complexity of Computing the Measure of U[ai, bi] .W The decision tree complexity of computing the measure of the union of n (possibly overlapping) intervals is shown to be (n log n), even if comparisons between linear functions of the interval endpoints are allowed. The existence of an (n log n) lower bound to determine whether any two of n real numbers are within of each other is also demonstrated. These problems provide an excellent opportunity for discussing the effects of the computational model on the ease of analysis and on the results produced. .A Fredman, M.L. Weide, B. .K Analysis of algorithms, combinatorial problems, computational complexity, computational models, decision tree programs, lower bounds .I 3087 .T An English Language Question Answering System for a Large Relational Database .W By typing requests in English, casual users will be able to obtain explicit answers from a large relational database of aircraft flight and maintenance data using a system called PLANES. The design and implementation of this system is described and illustrated with detailed examples of the operation of system components and examples of overall system operation. The language processing portion of the system uses a number of augmented transition networks, each of which matches phrases with a specific meaning, along with context registers (his tory keepers) and concept case frames; these are used for judging meaningfulness of questions, generating dialogue for clarifying partially understood questions, and resolving ellipsis and pronoun reference problems. Other system components construct a formal query for the relational database, and optimize the order of searching relations. Methods are discussed for handling vague or complex questions and for providing browsing ability. Also included are discussions of important issues in programming natural language systems for limited domains, and the relationship of this system to others. .A Waltz, D.L. .K Question answering, relational database, natural language, database front end, artificial intelligence, dialogue, query generation, information retrieval, natural language programming .I 3088 .T General Equations for Idealized CPU-I/O Overlap Configurations .W General equations are derived for estimating the maximum possible utilization of main storage partitions, CPU and I/O devices under different conditions in an idealized CPU-I/O overlap model of multiprogrammed computer systems. The equations are directly applicable to any configuration consisting of sets of identical CPU's I/O processors, main storage partitions and user tasks. Examples are provided to illustrate the use of the equations to compute effective processing time per record and expected timesharing response time under both balanced and unbalanced resource utilization conditions. .A Teory, T.J. .K Blocking, buffering, input/output, overlap, performance, resource allocation, throughput, timesharing .I 3089 .T Performance of Rollback Recovery Systems under Intermittent Failures .W A mathematical model of a transaction-oriented system under intermittent failures is proposed. The system is assumed to operate with a checkpointing and rollback/recovery method to ensure reliable information processing. The model is used to derive the principal performance measures, including availability, response time, and the system saturation point. .A Gelenbe, E. Derochette, D. .K Database reliability, file systems, checkpoints, recovery procedures, checking techniques, reliability and system performance evaluation .I 3090 .T Automated Welfare Client-Tracking and Service Integration: The Political Economy of Computing .W The impacts of an automated client-tracking system on the clients, caseworkers, administrators, and operations of the welfare agencies that use it are reported. The major impact of this system was to enhance the administrative attractiveness of the using agencies in the eyes of funders rather than to increase their internal administrative efficiency. This impact is a joint product of both the technical features of the computer-based system and of the organizational demands placed upon different agencies, administrators, and caseworkers. It illustrates the way "successful" automated information systems fit the political economies of the groups that use them. .A Kling, R. .K Social impacts of computing, organizational impacts of computing, management information systems, sociology of computing, information systems and service integration, urban information systems .I 3091 .T Some Basic Determinants of Computer Programming Productivity .W The propose of this research was to examine the relationship between processing characteristics of programs and experience characteristics of programmers and program development time. The ultimate objective was to develop a technique for predicting the amount of time necessary to create a computer program. The fifteen program characteristics hypothesized as being associated with an increase in programming time required are objectively measurable from preprogramming specifications. The five programmer characteristics are experience-related and are also measurable before a programming task is begun. Nine program characteristics emerged as major influences on program development time, each associated with increased program development time. All five programmer characteristics were found to be related to reduced program development time. A multiple regression equation which contained one programmer characteristic and four program characteristics gave evidence of good predictive power for forecasting program development time. .A Chrysler, E. .K Programmer performance standards, predicting program development time, program estimation techniques, program development equation, value of programming experience, programmer evaluation, programmer scheduling, programmer productivity, programming management, Cobol programming .I 3092 .T Characteristics of Application Software Maintenance .W Maintenance and enhancement of application software consume a major portion of the total life cycle cost of a system. Rough estimates of the total systems and programming resources consumed range as high as 75-80 percent in each category. However, the area has been given little attention in the literature. To analyze the problems in this area a questionnaire was developed and pretested. It was then submitted to 120 organizations. Respondents totaled 69. Responses were analyzed with the SPSS statistical package. The results of the analysis indicate that: (1) maintenance and enhancement do consume much of the total resources of systems and programming groups; (2) maintenance and enhancement tend to be viewed by management as at least somewhat more important than new application software development; (3) in maintenance and enhancement, problems of a management orientation tend to be more significant than those of a technical orientation; and (4) user demands for enhancements and extension constitute the most important management problem area. .A Lientz, B.P. Swanson, E.B. Tompkins, G.E. .K Software maintenance, use of productivity aids, management and technical issues .I 3093 .T Automatic Error Recovery for LR Parsers .W In this paper we present a scheme for detecting and recovering from syntax errors in programs. The scheme, which is based on LR parsing, is driven by information which is directly and automatically obtainable from the information that is already present in an LR parser. The approach, which is patterned after that of Levy and Graham and Rhodes, appears to provide error recovery which is both simple and powerful. .A Mickunas, M.D. Modry, J.A. .K Programming languages, error correction, automatic correction, parsing, LR, syntax errors, compilers .I 3094 .T Analyses of Deterministic Parsing Algorithms .W This paper describes an approach for determining the minimum, maximum, and average times to parse sentences acceptable by a deterministic parser. These quantities are presented in the form of symbolic formulas, called time-formulas. The variables in these formulas represent not only the length of the input string but also the time to perform elementary operations such as pushing, popping, subscripting, iterating, etc. By binding to the variables actual numerical values corresponding to a given compiler-machine configuration, one can determine the execution time for that configuration. Time-formulas are derived by examining the grammar rules and the program representing the algorithm one wishes to analyze. The approach is described by using a specific grammar that defines simple arithmetic expressions. Two deterministic parsers are analyzed: a top-down recursive descent LL(1) parser, and a bottom-up SLR(1) parser. The paper provides estimates for the relative efficiencies of the two parsers. The estimates applicable to a specific machine, the PDP-10, are presented and substantiated buy benchmarks. Finally, the paper illustrates the proposed approach by applying it to the analyses of parsers for a simple programming language. .A Cohen, J. Roth, M.S. .K Syntactic analysis, analysis of algorithms,top-down and bottom-up parsing, relative efficiencies. .I 3095 .T A Selective Traversal Algorithm for Binary Search Trees .W The problem of selecting data items from a binary search tree according to a list of range conditions is considered. The process of visiting a minimal number of nodes to retrieve data satisfying the range conditions is called selective traversal. Presented in this paper is an algorithm for selective traversal which uses a tag field for each node in the tree. The algorithm is particularly useful and efficient when examination of data is more time consuming than examination of a tag field. .A Driscoll, J.R. Lien, Y.E. .K Data retrieval, range conditions, binary search tree, tree traversal, selective traversal .I 3096 .T An Optimal Method for Deletion in One-Sided Height-Balanced Trees .W A one-sided height-balanced tree is a binary tree in which every node's right subtree has a height which is equal to or exactly one greater than the height of its left subtree. It has an advantage over the more general AVL tree in that only one bit of balancing information is required (two bits are required for the ACL tree). It is shown that deletion of an arbitrary node of such a tree can be accomplished in O(logn) operations, where n is the number of nodes in the tree. Moreover the method is optimal in the sense that its complexity cannot be reduced in order of magnitude. This result, coupled with earlier results by Hirschberg, indicates that, of the three basic problems of insertion, deletion, and retrieval, only insertion is adversely affected by this modification of an AVL tree. .A Zweben, S.H. McDonald, M.A. .K Balanced, binary, search, trees .I 3097 .T Optimal Shift Strategy for a Block-Transfer CCD Memory .W For the purposes of this paper, a block-transfer CCD memory is composed of serial shift registers whose shift rate can vary, but which have a definite minimum shift rate (the refresh rate) and a definite maximum shift rate. The bits iin the shift registers are numbered 0 to N - 1, and blocks of N bits are always transferred, always starting at bit 0. What is the best shift strategy so that a block transfer request occurring at a random time will have to wait the minimal amount of time before bit 0 can be reached? The minimum shift rate requirement does not allow one to simply "park" at bit 0 and wait for a transfer request. The optimal strategy involves shifting as slowly as possible until bit 0 is passed, then shifting as quickly as possible until a critical boundary is reached, shortly before bit 0 comes around again. This is called the "hurry up and wait" strategy and is well known outside the computer field. The block-transfer CCD memory can also be viewed as a paging drum with a variable (bounded) rotation speed. .A Sites, R.L. .K Paging drum, charge coupled devices, shift register memory, memory hierarchy, electronic drum, latency .I 3098 .T Computer Generation of Gamma Random Variables .W A new method for generating random variables from the gamma distribution with nonintegral shape parameter a is proposed. This method is similar to two other methods recently given by Wallace and Fishman. It is compared with Fishman's and Ahrens and Dieter's methods. The core storage requirements and programming effort for this method are similar to those of Fishman's method. The proposed method is the same as Fishman's method for 1 < a < 2 and is faster than Fishman's method for 3 < a < 19. Also, the proposed method is much simpler than Ahrens and Dieter's method and is faster for a < 8. .A Tadikamalla, P.R. .K Gamma variables, rejection method, computer methods .I 3099 .T New Sufficient Optimality Conditions for Integer Programming and their Application .W The purpose of this report is to present a new class of sufficient optimality conditions for pure and mixed integer programming problems. Some of the sets of sufficient conditions presented can be thought of as generalizations of optimality conditions based on primal-dual complementarity in linear programming. These sufficient conditions are particularly useful for the construction of difficult integer programming problems with known optimal solutions. These problems may then be used to test and/or "benchmark" integer programming codes. .A Fleisher, J.M. Meyer, R.R. .K Integer programming, optimality conditions, test problem construction, Kuhn-Tucker conditions, greatest common divisor .I 3100 .T An Interference Matching Technique for Inducing Abstractions .W A method for inducing knowledge by abstraction from a sequence of training examples is described. The proposed method, interference matching, induces abstractions by finding relational properties common to two or more exemplars. Three tasks solved by a program that uses an interference-matching algorithm are presented. Several problems concerning the description of the training examples and the adequacy of interference matching are discussed, and directions for future research are considered. .A Hayes-Roth, F. McDermott, J. .K Rule induction, knowledge acquisition, partial matching, interference, graph matching, learning, induction, knowledge representation, informal retrieval, abstraction, generalization, language learning, complexity, predicate discovery. .I 3101 .T The SL5 Procedure Mechanism .W This paper describes an integrated procedure mechanism that permits procedures to be used as recursive functions or as coroutines. This integration is accomplished by treating procedures and their activation records (called environments) as data objects and by decomposing procedure invocation into three separate components at the source-language level. In addition, argument binding is under the control of the programmer, permitting the definition of various methods of argument transmission in the source language itself. The resulting procedure mechanism,which is part of the SL5 programming language, is well suited to goal-oriented problems and to other problems that are more readily programmed by using coroutines. Several examples are given. .A Hanson, D. Griswold, R.E. .K Procedures, coroutines, programming languages, interpreters, SNOBOL 4, backtracking .I 3102 .T Incorporation of Units into Programming Languages .W The issues of how a programming language might aid in keeping track of physical units (feet, sec, etc.) are discussed. A method is given for the introduction of relationships among units (a watt is volts*amps, a yard is three feet) and subsequent automatic conversion based upon these relationships. Various proposals for syntax are considered. .A Karr, M. Loveman III, D.B. .K Units, language design, compiler construction, language syntax .I 3103 .T Automatic Data Structure Selection: An Example and Overview .W The use of several levels of abstraction has proved to be very helpful in constructing and maintaining programs. When programs are designed with abstract data types such as sets and lists, programmer time can be saved by automating the process of filling in low-level implementation details. In the past, programming systems have provided only a single general purpose implementation for an abstract type. Thus the programs produced using abstract types were then inefficient in space or time. In this paper a system for automatically choosing efficient implementations for abstract types from a library of implementations is discussed. This process is discussed in detail for an example program. General issues in data structure selection are also reviewed. .A Low, J.R. .K Abstract data types, automatic programming, data structures, optimizing compilers, sets, lists .I 3104 .T Test Data as an Aid in Proving Program Correctness .W Proofs of program correctness tend to be long and tedious, whereas testing, though useful in detecting errors, usually does not guarantee correctness. This paper introduces a techniques whereby test data can be used in proving program correctness. In addition to simplifying the process of proving correctness, this method simplifies the process of providing accurate specification for a program. The applicability of this technique to procedures and recursive programs is demonstrated. .A Geller, M. .K Program verification, program testing, recursive programs .I 3105 .T A Language Extension for Expressing Constraints on Data Access .W Controlled sharing of information is needed and desirable for many applications and is supported in operating systems by access control mechanisms. This paper shows how to extend programming languages to provide controlled sharing. The extension permits expression of access constraints on shared data. Access constraints can apply both to simple objects, and to objects that are components of larger objects, such as bank account records in a bank's data base. The constraints are stated declaratively, and can be enforced by static checking similar to type checking. The approach can be used to extend any strongly-typed language, but is particularly suitable for extending languages that support the notion of abstract data types. .A Jones, A.K. Liskov,B.H. .K Programming languages, access control, data types, abstract data types, type checking, capabilities .I 3106 .T A Fast Algorithm for Copying List Structures .W An algorithm is presented for copying an arbitrarily linked list structure into a block of contiguous storage locations without destroying the original list. Apart from a fixed number of program variables, no auxiliary storage, such as a stack, is used. The algorithm needs no mark bits and operates in linear time. It is shown to be significantly faster than Fisher's algorithm, the fastest previous linear-time algorithm for the same problem. Its speed comes mainly from its efficient list-traversal technique, which folds the processing stack into the structure being built, and from its classification of list cells into nine types, which enables processing operations to be optimized for each type. .A Clark, D.W. .K List copying, Lisp, space complexity, constant workspace .I 3107 .T Generating Beta Variates with Nonintegrel Shape Parameters .W A new rejection method is described for generating beta variates. The method is compared with previously published methods both theoretically and through computer timings. It is suggested that the method has advantages in both speed and programming simplicity over previous methods, especially for "difficult" combinations of parameter values. .A Cheng, R.C.H. .K Beta variates, random numbers, simulation .I 3108 .T Economical Encoding of Commas Between Strings .W A method for insertion of delimiters between strings without using new symbols is presented. As the lengths of the strings increase, the extra cost, in terms of prolongation, becomes vanishingly small compared to the lengths of the strings. .A Even, S. Rodeh, M. .K String transmission, delimiters, commas, encoding of the integers .I 3109 .T A Data Structure for Manipulating Priority Queues .W A data structure is described which can be used for representing a collection of priority queues. The primitive operations are insertion, deletion, union, update, and search for an item of earliest priority. .A Vuillemin, J. .K Data structures, implementation of set operations,priority queues, mergeable heaps, binary trees .I 3110 .T Assembling Code for Machines with Span-Dependent Instructions .W Many modern computers contain instructions whose lengths depend on the distance from a given instance of such an instruction to the operand of that instruction. This paper considers the problem of minimizing the lengths of programs for such machines. An efficient solution is presented for the case in which the operand of every such "span-dependent" instruction is either a label or an assembly-time expression of a certain restricted form.If this restriction is relaxed by allowing these operands to be more general assembly-time expressions, then the problem is shown to be NP-complete. .A Szymanski, T.G. .K Span-dependent instructions, variable-length addressing, code generation, assemblers, compilers, NP-complete, computational complexity. .I 3111 .T Secure Communications Over Insecure Channels .W According to traditional conceptions of cryptographic security, it is necessary to transmit a key, by secret means, before encrypted messages can be sent securely. This paper shows that it is possible to select a key over open communications channels in such a fashion that communications security can be maintained. A method is described which forces any enemy to expend an amount of work which increases as the square of the work required of the two communicants to select the key. The method provides a logically new kind of protection against the passive eaves dropper. It suggests that further research on this topic will be highly rewarding, both in a theoretical and a practical sense. .A Merkle, R.C. .K Security, cryptography, cryptology, communications security, wiretap, computer network security, passive eavesdropping, key distribution, public key cryptosystem .I 3112 .T List Processing in Real Time on a Serial Computer .W A real-time list processing system is one in which the time required by the elementary list operations (e.g. CONS, CAR, CDR, RPLACA, REPLACD, EQ, and ATOM in LISP) is bounded by a (small) constant. Classical implementations of list processing systems lack this property because allocating a list cell from the heap may cause a garbage collection, which process requires time proportional to the heap size to finish. A real-time list processing system is presented which continuously reclaims garbage, including directed cycles, while linearizing and compacting the accessible cells into contiguous locations to avoid fragmenting the free storage pool. The program is small and requires no time-sharing interrupts, making it suitable for microcode. Finally, the system requires the same average time, and not more than twice the space, of a classical implementation, and those space requirements can be reduced to approximately classical proportions by compact list representation. Arrays of different sizes, a program stack, and hash linking are simple extensions to our system, and reference counting is found to be inferior for many applications. .A Baker, H.G. .K Real-time, compacting,garbage collection, list processing, virtual memory, file or database management, storage management, storage allocation, LISP, CDR-coding, reference counting. .I 3113 .T Optimal Conversion of Extended-Entry Decision Tables with General Cost Criteria .W A general dynamic programming algorithm for converting limited, extended, or mixed entry decision tables to optimal decision trees is presented which can take into account rule frequencies or probabilities, minimum time and/or space cost criteria, common action sets, compressed rules and ELSE rules, sequencing constraints on condition tests, excludable combinations of conditions, certain ambiguities, and interrupted rule masking. .A Lew, A. .K Decision table, optimal programs, dynamic programming .I 3114 .T A Technique for Isolating Differences Between Files .W A simple algorithm is described for isolating the differences between two files. One application is the comparing of two versions of a source program or other file in order to display all differences. The algorithm isolates differences in a way that corresponds closely to our intuitive notion of difference, is easy to implement, and is computationally efficient, with time linear in the file length. For most applications the algorithm isolates differences similar to those isolated by the longest common subsequence. Another application of this algorithm merges files containing independently generated changes into a single file. The algorithm can also be used to generate efficient encodings of a file in the form of the differences between itself and a given "datum" file, permitting reconstruction of the original file from the difference and datum files. .A Heckel, P. .K Difference isolation, word processing, text editing, program maintenance, hash coding, file compression, bandwidth compression, longest common subsequence, file comparison, molecular evolution .I 3115 .T Orderly Enumeration of Nonsingular Binary Matrices Applied to Text Encryption .W Nonsingular binary matrices of order N, i.e., nonsingular over the field {0, 1}, and an initial segment of the natural numbers are placed in one-to-one correspondence. Each natural number corresponds to two intermediate vectors. These vectors are mapped into a nonsingular binary matrix. Examples of complete enumeration of all 2 x 2 and 3 x 3 nonsingular binary matrices were produced by mapping the intermediate vectors to the matrices. The mapping has application to the Vernam encipherment method using pseudorandom number sequences. A bit string formed form bytes of text of a data encryption key can be used as a representation of a natural number. This natural number is transformed to a nonsingular binary matrix. key leverage is obtained by using the matrix as a"seed" in a shift register sequence pseudorandom number generator. .A Payne, W.H. McMillen, K.L. .K Binary matrices, combinatorics, combinations, nonsingular matrices, encryption, Vernam, pseudorandom numbers, feedback shiftregister sequences, random numbers. .I 3116 .T Interference Detection Among Solids and Surfaces .W In many industrial environments it is necessary to determine whether r there is interference among components. There are many potential interference problems in products made up of assemblies of components and in product manufacturing and testing. Typically, drawings are used in an attempt to detect such unwanted interferences, but the two-dimensional, static drafting medium does not always show interferences among three-dimensional, moving parts. This paper presents a computer representation for solids and surfaces and algorithms which carry out interference checking among objects so represented. Objects are represented as polyhedra or as piecewise planar surfaces. Two types of interference checking are discussed: detection of intersections among objects in fixed positions and detection of collisions among objects moving along specified trajectories. .A Boyse, J.W. .K Interference checking, intersection detection, collision detection, solid representation, polyhedral representation, graphics, polygons, surfaces .I 3117 .T The Impact and Use of Computer Technology by the Police .W Over the past decade there has been a significant growth in the use of computer technology by U.S. police departments. This growth, however, has been at a slower rate than predicted in the early 1970's. Further, when computer applications extend beyond "routine" uses to "nonroutine" efforts, such as resource allocation or computer-aided-dispatch systems where the machine begins to become a tool for decision making, strategic planning and person/machine interaction, the results of the technology to date have been mixed. This paper reports on case studies and surveys which provinsights on the implementation and impact of police computer technology and the relationship of this technology to law enforcement and society. .A Colton, K.W. .K Computer technology, innovation, police resource allocation, police command and control, computer aided dispatch, law enforcement, technology transfer .I 3118 .T Permutation of Data Blocks in a Bubble Memory .W A common internal organization of bubble memories consists of a set of (minor) loops, connected through another (major) loop. The problem of obtaining any give n permutation of the minor loop contents in minimum time is studied in this paper. A lower bound to the number of steps required buy a permutation algorithm is derived, and the class of optimum algorithms is identified. .A Bongiovanni, G.C. Luccio, F. .K Bubble memory, memory loops, permutation algorithm, data block shift .I 3119 .T The Impact of Distributions and Disciplines on Multiple Processor Systems .W Simple queueing models are used to study the performance tradeoffs of multiple processor systems. Issues considered include the impact of CPU service disciplines and distributions, level of multiprogramming, multitasking, and job priorities. .A Sauer, C.H. Chandy, K.M. .K Multiprogramming, multiprocessing, scheduling disciplines, performance evaluation, queueing models .I 3120 .T An Event-Driven Compiling Technique .W Due to the linear structure of source text, difficulties may arise in a one-pass compilation process. These difficulties occur when an entity cannot be processed because of a forward reference to information only obtainable from subsequent entities. Classic solutions ask for data structures appropriate for each case. A technique is presented here which uses instead control structures, namely events and processes. The work of the compiler-writer becomes easier both conceptually and in practice because he can forget these problems at the outset and he avoids special processing for each problem. This technique has been applied to the construction of an Algol 68 compiler. Three examples from that implementation are described and discussed here. .A Banatre, J.P. Routeau, J.P. Trilling, L. .K Compiling technique, one-pass compilation, semantic analysis, event, process, parallelism categories--4.12 .I 3121 .T Syntactic Source to Source Transforms and Program Manipulation .W Syntactic transforms are the source to source program transformations which preserve the history of computation, and thus do not modify the execution time. Combined with a small number of primitive semantic transforms, they provide a powerful tool for program manipulation. A catalogue of syntactic transforms, and its use for solution of a system of program equations, is given. Examples of derivation of more complex source to source transformations are also presented. Two case studies illustrate the way in which syntactic and semantic source to source transformations may be used for development of clear, simple, and reasonably efficient programs. .A Arsac, J.J. .K Structured programming, program transforms, control structures .I 3122 .T Production and Employment of Ph.D.'s in Computer Science - 1977 and 1978 .A Taulbee, O.E. Conte, S.D. .K Computer science, production of Ph.D.'s, employment, students .I 3123 .T Employment Characteristics of Doctoral Level Computer Scientists .A Fairley, R.E. .K Employment characteristics, manpower utilization,occupational trends .I 3124 .T Recursive Data Structures in APL .W A mathematical study of three approaches for defining nested arrays in APL is presented. Theorems exhibiting the relationships between the definitional systems are given and illustrated through graph representations. One of the approaches is used to define an APL array to be a recursive data structure equivalent to a tree structure in which all data is stored at the leaves as homogeneous arrays of numbers and characters. An extension of APL is proposed that includes new primitive functions to manipulate the nesting level of arrays and new operators to assist in the construction of data-driven algorithms. .A Gull,W.E. Jenkins, M.A. .K Nested arrays, APL arrays, recursive data structures, trees, data-driven algorithms, theory of arrays .I 3125 .T Global Optimization by Suppression of Partial Redundancies .W The elimination of redundant computations and the moving of invariant computations out of loops are often done separately, with invariants moved outward loop by loop. We propose to do both at once and to move each expression directly to the entrance of the outermost loop in which it is invariant. This is done by solving a more general problem, i.e. the elimination of computations performed twice on a given execution path. Such computations are termed partially redundant. Moreover, the algorithm does not require any graphical information or restrictions on the shape of the program graph. Testing this algorithm has shown that its execution cost is nearly linear with the size of the program, and that it leads to a smaller optimizer that requires less execution time. .A Morel, E. Renvoise, C. .K Optimizer, optimization, compiler, compilation, redundancy elimination, invariant computation elimination, partial redundancy, data flow analysis, Boolean systems .I 3126 .T Comments on Perfect Hashing Functions: A Single Probe Retrieving Method for Static Sets .A Anderson, M.G. .K Hashing, hashing methods, hash coding, direct addressing, identifier- to-address transformations, perfect hashing functions, perfect hash coding, reduction, retrieving, scatter storage, searching .I 3127 .T Thoth, a Portable Real-Time Operating System .W Thoth isa real-time operating system which is designed to be portable over a large set of machines. It is currently running on two minicomputers with quite different architectures. Both the system and application programs which use it are written in a high-level language. Because the system is implemented by the same software on different hardware, it has the same interface to user programs. Hence, application programs which use Thoth are highly portable. Thoth encourages structuring programs as networks of communicating processes by providing efficient interprocess communication primitives. .A Cheriton, D.R. Malcolm, M.A. Melen, L.A. Sager, G.R. .K Portability, real time, operating systems, minicomputer .I 3128 .T Synchronization with Eventcounts and Sequencers .W Synchronization of concurrent processes requires controlling the relative ordering of events in the processes. A new synchronization mechanism is proposed, using abstract objects called eventcounts and sequencers, that allows processes to control the ordering of events directly, rather than using mutual exclusion to protect manipulations of shared variables that control ordering of events. Direct control of ordering seems to simplify correctness arguments and also simplifies implementation in distributed systems. The mechanism is defined formally, and then several examples of its use are given. The relationship of the mechanism to protection mechanisms in the system is explained; in particular, eventcounts are shown to be applicable to situations where confinement of information matters. An implementation of eventcount s and sequencers in a system with shared memory is described. .A Reed, D.P. Kanodia, R.K. .K Process synchronization, interprocess communication, distributed systems, security models, mutual exclusion, semaphores .I 3129 .T Optimal Storage Allocation for Serial Files .W A computer system uses several serial files. The files reside on a direct-access storage device in which storage space is limited. Records are added to the files either by jobs in batch processing mode, or by on-line transactions. Each transaction (or job) generates a demand vector which designates the space required in each file for record addition. Whenever one file runs out of space, the system must be reorganized. This paper considers several criteria for best allocating storage space to the files. .A Mendelson, H. Pliskin, J.S. Yechiali, U. .K Serial files, storage allocation, reorganization, partitioned dataset .I 3130 .T CURRICULUM '78 - Recommendations for the Undergraduate Program in Computer Science .W Contained in this report are the recommendations for the undergraduate degree program in Computer Science of the Curriculum Committee on Computer Science (C3S) of the Association for Computing Machinery (ACM). The core curriculum common to all computer science undergraduate programs is presented in terms of elementary level topics and courses, and intermediate level courses. Elective courses, used to round out an undergraduate program, are then discussed, and the entire program including the computer science component and other material is presented. Issues related to undergraduate computer science education, such as service courses, supporting areas, continuing education, facilities, staff, and articulation are presented. .A Austing, R.H. Barnes, B.H. Bonnette, D.T. Engel, G.L. Stokes, G. .K Computer sciences courses, computer science curriculum, computer science education, computer science undergraduate degree programs, service courses, continuing education .I 3131 .T FOCUS Microcomputer Number System .W FOCUS is a number system and supporting computational algorithms especially useful for microcomputer control and other signal processing applications. FOCUS has the wide-ranging character of floating-point numbers with a uniformity of state distributions that give FOCUS better than a twofold accuracy advantage over an equal word length floating-point system. FOCUS computations are typically five times faster than single precision fixed-point or integer arithmetic for a mixture of operations, comparable in speed with hardware arithmetic for many applications. Algorithms for 8-bit and 16-bit implementations of FOCUS are included. .A Edgar, A.D. Lee, S.C. .K Number representation, logarithmic arithmetic, computational speed, computational accuracy, microcomputer applications .I 3132 .T Experiments with Some Algorithms that Find Central Solutions for Pattern Classification .W In two-class pattern recognition, it is a standard technique to have an algorithm finding hyperplanes which separates the two classes in a linearly separable training set. The traditional methods find a hyperplane which separates all points in the other, but such a hyperplane is not necessarily centered in the empty space between the two classes. Since a central hyperplane does not favor one class or the other, it should have a lower error rate in classifying new points and is therefore better than a noncentral hyperplane. Six algorithms for finding central hyperplanes are tested on three data sets. Although frequently used practice, the modified relaxation algorithm is very poor. Three algorithms which are defined in the paper are found to be quite good. .A Slagle, J. .K Pattern recognition, pattern classification, linear discriminants, central hyperplanes, centering, centrality criteria, dead zone, hyperplane, linearly separable, relaxation algorithm, accelerated relaxation .I 3133 .T Logic and Semantic Networks .W An extended form of semantic network is defined, which can be regarded as a syntactic variant of the clausal form of logic. By virtue of its relationship with logic, the extended semantic network is provided with a precise semantics, inference rules, and a procedural interpretation. On the other hand, by regarding semantic networks as an abstract data structure for the representation of clauses, we provide a theorem-prover with a potentially useful indexing scheme and path-following strategy for guiding the search for a proof. .A Deliyanni, A. Kowalski, R.A. .K Logic, semantic networks, theorem-proving, indexing, resolution, deduction, logic programming .I 3134 .T The Use of Normal Multiplication Tables for Information Storage and Retrieval .W This paper describes a method for the organization and retrieval of attribute based information systems, using the normal multiplication table as a directory for the information system. Algorithms for the organization an d retrieval of information are described. This method is particularly suitable for queries requesting a group of information items, all of which possess a particular set of attributes (and possibly some other attributes as well). Several examples are given; the results with respect to the number of disk accesses and disk space are compared to other common approaches. Algorithms evaluating the appropriateness of the above approach to a given information system are described. For a certain class of information systems, the normal multiplication table method yields far more rapid retrieval with a more economical space requirement than conventional systems. Moreover this method incorporates an improved modification of the inverted file technique. .A Motzkin, D. .K Information retrieval, inverted files, multiattribute retrieval, multilist file, normal multiplication table, queries, rapid retrieval, space economy .I 3135 .T Detection of Three-Dimensional Patterns of Atoms in Chemical Structures .W An algorithm for detecting occurrences of a three-dimensional pattern of objects within a larger structure is presented. The search technique presented uses the geometric structure of the pattern to define characteristics demanded of candidates for matching. This is useful in cases where the properties of each atom, considered individually, do not adequately limit the number of sets of possible matchings. Several applications of this technique in the field of chemistry are: (1) in pharmacology: searching for a common constellation of atoms in molecules possessing similar biological activities; (2) in X-ray crystallography: fitting a structure or a structural fragment to a set of peaks in the electron-density distribution of a Fourier map; (3) in chemical documentation; retrieving from a file the structures containing specified substructures. .A Lesk, A.M. .K Three-dimensional pattern recognition, chemical structure search, information retrieval, crystal -structure analysis, drug analysis and design .I 3136 .T Price/Performance Patterns of U.S. Computer Systems .W Econometric models of the U.S. computer market have been developed to study the relationships between system price and hardware performance. Single measures of price/performance such as "Grosch's Law" are shown to be so over simplified as to be meaningless. Multiple-regression models predicting system cost as a function of several hardware characteristics do, however, reveal a market dichotomy. On one hand there exists a stable, price predictable market for larger, general purpose computer systems. The other market is the developing one for small business computer systems, a market which is relatively unstable with low price predictability. .A Cale, E.G. Gremillion, L.L. McKenney, J.L. .K Price/performance, Grosch's law, U.S. computer market .I 3137 .T A Methodology for the Design of Distributed Information Systems .W A macro model of a distributed information system in presented. The model describes the major costs of using an information system from the perspective of the end-user. The making evident the effect of various design and operating parameters on overall cost per transaction. The technique is illustrated by application to the design of an interactive transaction processing system. .A Bucci, G. Streeter, D.N. .K Distributed processing, system design, cost minimization, distributed database, interactive computing, economic modeling, transaction processing .I 3138 .T A Mathematical Programming Updating Method Using Modified Givens Transformations and Applied to LP Problems .W An efficient and numerically stable method is presented for the problem of updating an orthogonal decomposition of a matrix of column (or row) vectors. The fundamental idea is to add a column (or row) analogous to adding an additional row of data in a linear least squares problem. A column (or row) is dropped by a formal scaling with the imaginary unit, -1, followed by least squares addition of the column (or row). The elimination process for the procedure is successive ssive application of the Givens transformation in modified (more efficient) form. These ideas are illustrated with an implementation of the revised simplex method. The algorithm is a general purpose one that does not account for any particular structure or sparsity in the equations. Some suggested computational tests for determining signs of various controlling parameters in the revised simplex algorithm are mentioned. A simple means of constructing test cases and some sample computing times are presented. .A Hanson, R.J. Wisniewski, J.A. .K Linear programming, numerical linear algebra, modified Givens transformations, linear programming test cases .I 3139 .T New Methods to Color the Vertices of a Graph .W This paper describes efficient new heuristic methods to color the vertices of a graph which rely upon the comparison of the degrees and structure of a graph. A method is developed which is exact for bipartite graphs and is an important part of heuristic procedures to find maximal cliques in general graphs. Finally an exact method is given which performs better than the Randall-Brown algorithm and is able to color larger graphs, and the new heuristic methods, the classical methods, and the exact method are compared. .A Brelaz, D. .K NP-complete, graph structure, balancing, graph coloring, scheduling, comparison of the methods .I 3140 .T Social Processes and Proofs of Theorems and Programs .W It is argued that formal verifications of programs, no matter how obtained, will not play the same key role in the development of computer science and software engineering as proofs do in mathematics. Furthermore the absence of continuity, the inevitability of change, and the complexity of specification of significantly many real programs make the form al verification process difficult to justify and manage. It is felt that ease of formal verification should not dominate program language design. .A De Millo, R.A. Lipton, R.J. Perlis, A.J. .K Formal mathematics, mathematical proofs, program verification, program specification .I 3141 .T An Improved Algorithm for Decentralized Extrema-Finding in Circular Configurations of Processes .W This note presents an improvement to LeLann's algorithm for finding the largest (or smallest) of a set of uniquely numbered processes arranged in a circle, in which no central controller exists and the number of processes is not known a priori. This decentralized algorithm uses a technique of selective message extinction in order to achieve an average number of message passes of order (n log n) rather than O(n2). .A Chang, E. Roberts, R. .K Decentralized algorithms, distributed systems, operating systems .I 3142 .T Consumer Difficulties With Computerized Transactions: An Empirical Investigation .W The prevalence with which errors may be encountered by the end targets of a computerized process is assessed. How many and what type of errors occur? How easily are they corrected? What is the reaction of consumers to errors-to a failure to correct them? What can be learned by designers of large management packages from such data? Results show that with the present state of the art, approximately 40 percent of individuals (or households) having average contacts with different types of accounts experience one or more errors per year. Eighty percent relate to billing. Attempts to correct errors often turned out to be difficult and not always successful. There appears to be some conflict between computer-using organizations and their public. Also the role of poor man agement packages including poor software is indicated. While most management systems may be adequate, results of the survey raise concerns about the timeliness and the number of designs of very large linked program packages (as EFT for instance). .A Sterling, T.D. .K Errors, systems errors, billing errors, management systems, consumers .I 3143 .T Reasoning About Arrays .W A variety of concepts, laws, and notations are presented which facilitate reasoning about arrays. The basic concepts include intervals and their partitions, functional restriction, images, pointwise extension of relations, ordering, single-point variation of functions, various equivalence relations for array values, and concatenation. The effectiveness of these ideas is illustrated by informal descriptions of algorithms for binary search and merging, and by a short formal proof. .A Reynolds, J.C. .K Arrays, assertions, program proving, intervals, partitions, pointwise extension, ordering, concatenation, binary search, merging .I 3144 .T A Model for and DIscussion of Multi-Interpreter Systems .W A multi-interpreter system is a system in which programs execute by virtue of being interpreted by other programs, which themselves may either be interpreted (i.e. nested interpreters) or run directly on the host machine. The model reveals the anatomy of interpreters and how these differ from procedures, and exhibits links to protection domains and multiprocessor architectures. .A Manthey, M.J. .K Interpreters, transfer-of-control, hierarchies .I 3145 .T An Implementation of Structured Walk-Throughs in Teaching Cobol Programming .W The effectiveness of structured walk-throughs in teaching introductory Cobol programming was empirically assessed with a sample of 215 under-graduate business administration majors. Cobol proficiency was measured by a final examination testing (a) knowledge of language rules, (b) ability to read and debug a program, and (c) the ability to write a program. Analysis of multiple covariance was used to statistically adjust test scores for age and conditional reasoning scores. The findings provide empirical support for incorporating structured walk-throughs into the programming learning process more effectively develop student proficiency in writing Cobol programs. .A Lemos, R.S. .K Structured walk-throughs, Cobol programming, teaching of programming, testing programming proficiency .I 3146 .T An Academic Program Providing Realistic Training in Software Engineering .W An academic program at Harvey Mudd College, called the Clinic program, brings projects from industry on campus to be studied and solved by student teams. The objective of the Clinic is to provide students, working as small teams under careful faculty supervision, an opportunity to work on real world problems of sufficient magnitude and complexity. Under this program, students can acquire essential skills of software engineering, such as team work, software project management, software design methodology, and communication skills, in a realistic environment. Sample software projects undertaken by the Clinic are described. Experience so far has shown that the program is a viable transition from an academic to industrial world. .A Busenberg, S.N. Tam, W.C. .K Software engineering, software engineering education, software projects, student teams, software engineering skills .I 3147 .T A Model for Automating File and Program Design in Business Application Systems .W This paper discusses a model for finding an efficient implementation of a business application system whose logical specifications have been determined in advance. The model views file and program design as a problem of systematically coordinating the configurations of datasets and computations. It uses a straight forward search technique to determine aggregations of computations, aggregations of datasets, device, organization, and key order for each data set, key order for each computation, and access method for each dataset-computation pair. Although computational results are presented for a sample problem involving 54 computations and 49 datasets, the main point of the paper is that the underlying model works computationally an d is simple enough to be adapted to many file design situations. .A Alter, S. .K System design, automatic programming, search methods, system configurations, design choices .I 3148 .T High Level Programming for Distributed Computing .W Programming for distributed and other loosely coupled systems is a problem of growing interest. This paper describes an approach to distributed computing at the level of general purpose programming languages. Based on primitive notions of module, message, and transaction key, the methodology is shown to be independent of particular languages and machines. It appears to be useful for programming a wide range of tasks. This is part of an ambitious program of development in advanced programming languages, and relations with other aspects of the project are also discussed. .A Feldman, J.A. .K Distributed computing, modules, messages, assertions .I 3149 .T The Cyclic Order Property of Vertices as an Aid in Scene Analysis .W A cyclic-order property is defined for bodies bounded by smooth-curved faces. The property is shown to be useful for analyzing pictures of such bodies, particularly when the line data extracted from the pictures are imperfect. This property augments previously known grammatical rules that determine the existence of three-dimensional bodies corresponding to given two-dimensional line-structure data. .A Shapira, R. Freeman, H. .K Scene analysis, cyclic order, artificial intelligence, three-dimensional reconstruction , picture processing, computer graphics, pattern recognition. .I 3150 .T Beyond Programming Languages .W As computer technology matures, our growing ability to create large systems is leading to basic changes in the nature of programming. Current programming language concepts will not be adequate for building and maintaining systems of the complexity called for by the tasks we attempt. Just as high level languages enabled the programmer to escape from the intricacies of a machine's order code, higher level programming systems can provide the means to understand and manipulate complex systems and components. In order to develop such systems, we need to shift our attention away from the detailed specification of algorithms, towards the description of the properties of the packages and objects with which we build. This paper analyzes some of the shortcomings of programming languages as they now exist, and lays out some possible directions for future research. .A Winograd, T. .K Programming, programming languages, programming systems, systems development .I 3151 .T An Optimal Real-Time Algorithm for Planar Convex Hulls .W An algorithm is described for the construction in real-time of the convex hull of a set of n points in the plane. Using an appropriate data structure, the algorithm constructs the convex hull by successive updates, each taking time O(log n), thereby achieving a total processing time O(n log n). .A Preparata, F.P. .K Computational geometry, convex hull, planar set of points, real-time algorithms, on-line algorithms. .I 3152 .T Storage Reorganization Techniques for Matrix Computation in a Paging Environment .W In order to multiply matrices while minimizing the number of page fetches required, it is often more efficient to reorganize the data into submatrix form and to use block multiplication rather than to use the best known algorithms which leave the matrices stored in row-(or column-)oriented form. An efficient method for accomplishing this reorganization is given. This also makes possible the derivation of an asymptotically better bound for multiplication of matrices given in row-oriented form by adapting the technique of Strassen to the reorganized data. The reorganization/block multiplication scheme is shown to be advantageous for matrices and pages of realistic size; the Strassen adaptation is not. The former scheme is also shown to be advantageous even if the transpose of one of the matrices is available at no additional cost. .A Fischer, P.C. Probert, R.L. .K Matrix multiplication, paging, virtual memory, data reorganization, pagination, transpose. .I 3153 .T The Control of Response Times in Multi-Class Systems by Memory Allocations .W The possibility of giving different quality of service to jobs of different classes by regulating their memory allocation is examined in the context of a paged computer system. Two parameterized algorithms which partition the main memory between two classes of jobs are considered. Initially, a closed system consisting of a process or and paging and file devices, with fixed numbers of jobs, is studied to determine optimal degrees of multiprogramming and the proportion of processor time devoted to each class. Applying a decomposition approach and treating the closed system as a single server, the response times in an open system with external arrivals are studied. The object is to investigate the effect of the memory alocation parameters on the expected response times under the two algorithms. Numerical solutions and economical lower bounds for the expected response times as functions of the control parameters are obtained. A way of applying the results to systems with more than two job classes is indicated. .A Hine, J.H. Mitrani, I. Tsur, S. .K Queueing networks, paging, virtual memory, performance control .I 3154 .T Algorithm = Logic + Control .W An algorithm can be regarded as consisting of a logic component, which specifies the knowledge to be used in solving problems, and a control component, which determines the problem-solving strategies by means of which that knowledge is used. The logic component determines the meaning of the algorithm whereas the control component only affects its efficiency. The efficiency of an algorithm can often by improving the control component without changing the logic of the algorithm. We argue that computer programs would be more often correct and more easily improved and modified if their logic and control aspects were identified and separated in the program text. .A Kowalski, R. .K Control language, logic programming, nonprocedural language, programming methodology, program specification, relational data structures .I 3155 .T The Paradigms of Programming .A Floyd, R.W. .I 3156 .T Computing Connected Components on Parallel Computers .W We present a parallel algorithm which uses n2 processors to find the connected components of an undirected graph with n vertices in time O(log2n). An O(log2n) time bound also can be achieved using only n$n/$log2n)) processors. The algorithm can be used to find the transitive closure of a symmetric Boolean matrix. We assume that the processors have access to a common memory. Simultaneous access to the same location is permitted for fetch instructions but not for store instructions. .A Hirschberg, D.S. Chandra, A.K. Sarwate, D.V. .K Graph theory, parallel processing, algorithms, transitive closure, connected component .I 3157 .T Proving Termination with Multiset Orderings .W A common tool for proving the termination of programs is the well-founded set, a set ordered in such a way as to admit no infinite descending sequences. The basic approach is to find a termination function that maps the values of the program variables into some well-founded set, such that the value of the termination function is repeatedly reduced throughout the computation. All too often, the termination functions required are difficult to find and are of a complexity out of proportion to the program under consideration. Multisets (bags) over a given well-founded set S are sets that admit multiple occurrences of elements taken from S. The given ordering on S induces an ordering on the finite multisets over S. This multiset ordering is shown to be well-founded. The multiset ordering enables the use of relatively simple and intuitive termination functions in otherwise difficult termination proofs. In particular, the multiset ordering is used to prove the termination of production systems, programs defined in terms of sets of rewriting rules. .A Dershowitz, N. Manna, Z. .K Program correctness, program termination, program verification, well-founded orderings, well-founded sets, multisets, bags, production systems, term rewriting systems, tree replacement systems, reduction rules .I 3158 .T Secure Personal Computing in an Insecure Network .W A method for implementing secure personal computing in a network with one or more central facilities is proposed. The method employs a public-key encryption device and hardware keys. Each user is responsible for his own security and need not rely on the security of the central facility or the communication links. A user can safely store confidential files in the central facility or transmit confidential data to other users on the network. .A Denning, D.E. .K Personal computing, security, privacy, networks, public-key encryption .I 3159 .T Further Remark on Stably Updating Mean and Standard Deviation Estimates .A Nelson, L.S. .K Mean, standard deviation .I 3160 .T Rejuvenating Experimental Computer Science .W This report is based on the results of an NSF sponsored workshop held in Wasington, D.C. on November 2, 1978. The co-authors of the report are: Gordon Bell, Digital Equipment Corporation; Bernard A. Galler, University of Michigan; Patricia Goldberg, IBM Corporation; John Hamblen, University of Missouri at Rolla; Elliot Pinson, Bell Telephone Laboratories; and Ivan Sutherland, California Institute of Technology. Also participating in the workshop were representatives of NSF and other government agencies. In addition to the authors, a number of other people have contributed to the contents of this report. In preparation for the original workshop, all doctorate-granting computer science departments in the nation were asked for comments and suggestions on the problems of experimental computer science. A version of the current report dated January 15 was circulated to these departments and to a number of industrial and government groups for criticism. The editors and authors of this final version gratefully acknowledge the contribution of a large number of other people at all stages in the preparation of the report. $Note: Following this presentation of the report, there is a position paper on the crisis in experimental computer science written by the ACM Executive Committee.) .A Feldman, J.A. Sutherland, W.R. .I 3161 .T An ACM Executive Committee Position on the Crisis in Experimental Computer Science .A McCracken, D.D., CCP Denning, P.J. Brandin, D.H. .I 3162 .T On Improving the Worst Case Running Time of the Boyer-Moore String Matching Algorithm .W It is shown how to modify the Boyer-Moore string matching algorithm so that its worst case running time is linear even when multiple occurrences of the pattern are present in the text. .A Galil, Z. .K Computational complexity, linear time, worst case, string matching, periodicity .I 3163 .T An Optimal Insertion Algorithm for One-Sided Height-Balanced BInary Search Trees .W An algorithm for inserting an element into a one-sided height-balanced (OSHB) binary search tree is presented. The algorithm operates in time O(log n), where n is the number of nodes in the tree. This represents an improvement over the best previous ly known insertion algorithms of Hirschberg and Kosaraju, which require time O(log 2n). Moreover, the O(log n) complexity is optimal. Earlier results have shown that deletion in such a structure can also be performed in O(log n) time. Thus the result of this paper gives a negative answer to the question of whether such trees should be the first examples of their kind, where deletion has a smaller time complexity than insertion. Furthermore, it can now be concluded that insertion, deletion, and retrieval in OSHB trees can be performed in the same time as the corresponding operations for the more general AVL trees, to within a constant factor. However, the insertion and deletion algorithms for OSHB trees appear much more complicated than the corresponding algorithms for AVL trees. .A Raiha,K.J. Zweben, S.H. .K Insertion, one-sided height-balanced trees, height-balanced trees, binary trees, search trees. .I 3164 .T Progressive Acyclic Digraphs-A Tool for Database Integrity .W A progressive acyclic digraph (PAD) algorithm accepts are requests and maintains a graph in an acyclic state. When a request creates a cycle, nodes are, "detached" until the new are can be entered acyclically This process is important in certain areas of database implementation in which there are constraints on the permissible sequences of actions. Two PAD algorithms are presented; one uses a simple path matrix representation and the other uses a list with an "artificial gradient." Experiments suggest that for large N the second is considerably faster, though both are asymptotically O(NR), where N is the number of nodes and R is the expected number of nodes reachable along paths from any given node. .A Hansen, W.J. .K List processing, data structures, topological sort, acyclic digraph, database integrity, network, deadlock .I 3165 .T Approximation of Polygonal Maps by Cellular Maps .W The approximation of polygonal thematic maps by cellular maps, an important operation in geographical data processing, is analyzed. The data organization used for representing the polygonal maps is a widely used segment-based data structure, where class labels identify the regions bordering each segment on either side. The approximation algorithm presented operates on such an organization, eliminating the need for the recognition of region boundaries. Each segment is examined only once. The versatility of the new organization is further illustrated by the outline of algorithms for area computation and point inclusion. The algorithm is applied to a set of soil maps converted to computer-readable form by means of a coordinate digitizer. .A Nagy, G. Wagle, S.G. .K Polygon maps, cellularization, gridding, geographic data structures, computational geometry, computer cartography, automated cartography .I 3166 .T Computing Standard Deviations: Accuracy .W Four algorithms for the numerical computation of the standard deviation of (unweighted) sampled data are analyzed. Two of the algorithms are well-known in the statistical and computational literature; the other two are new algorithms specifically intended for automatic computation. Our discussion is expository, with emphasis on reaching a suitable definition of "accuracy." Each of the four algorithms is analyzed for the conditions under which it will be accurate. We conclude that all four algorithms will provide accurate answers for many problems, but two of the algorithms, one new, one old, are substantially more accurate on difficult problems than are the other two. .A Chan, T.F. Lewis, J.G. .K Mean, standard deviation, least squares, updating estimates, rounding error analysis, condition number. .I 3167 .T Updating Mean and Variance Estimates: An Improved Method .W A method of improved efficiency is given for updating the mean and variance of weighted sampled data when an additional data value is included in the set. Evidence is presented that the method is stable and at least as accurate as the best existing updating method. .A West, D.H.D. .K Mean, standard deviation, variance, updating estimates, removing data .I 3168 .T Comment on "An Optimal Evaluation of Boolean Expressions in an Online Query System." .A Laird, P.D. .K Query, Boolean expression, information retrieval, file organization .I 3169 .T Note on "An Optimal Evaluation of Boolean Expressions in an Online Query System." .A Gudes, E. Hoffman, A. .K Query, Boolean expression, optimal evaluation, information retrieval .I 3170 .T On the Proof of Correctness of a Calendar Program .W A formal specification is given for a simple calendar program, and the derivation and proof of correctness of the program are sketched. The specification is easy to understand, and its correctness is manifest to humans. .A Lamport, L. .K Program specification, program verification, inductive assertions .I 3171 .T Line Numbers Made Cheap .W A technique is described for run-time line number administration to be used for implementations of high level languages. Under suitable circumstances, this method requires absolutely no overhead, in either time or space, during execution of the program. .A Klint, P. .K Line number administration, diagnostic messages, abstract machine code .I 3172 .T An Algorithm for Planning Collision-Free Paths Among Polyhedral Obstacles .W This paper describes a collision avoidance algorithm for planning a safe path for a polyhedral object moving among known polyhedral objects. The algorithm transforms the obstacles so that they represent the locus of forbidden positions for an arbitrary reference point on the moving object. A trajectory of this reference point which avoids all forbidden regions is free of collisions. Trajectories are found by searching a network which indicates, for each vertex in the transformed obstacles, which other vertices can be reached safely. .A Lozano-Perez, T. Wesley, M.A. .K Path finding, collision-free paths, polyhedral objects, polyhedral obstacles, graph searching, growing objects .I 3173 .T A Psychology of Learning BASIC .W This paper addresses the question: What does a person know following learning of BASIC programming? Several underlying conceptual structures are identified: (1) a transaction is an event that occurs in the computer and involves some operation on some object at some location, (2) a prestatement is a set of transactions corresponding to a line of code, (3) chunks are frequently occurring configurations of prestatements corresponding to several lines of code. .A Mayer, R.E. .K BASIC, Learning, instruction .I 3174 .T Password Security: A Case History .W This paper describes the history of the design of the password security scheme on a remotely accessed time-sharing system. The present design was the result of countering observed attempts to penetrate the system. The result is a compromise between extreme security and ease of use. .A Morris, R. Thompson, K. .K Operating systems, passwords, computer security .I 3175 .T Breaking Substitution Ciphers Using a Relaxation Algorithm .W Substitution ciphers are codes in which each letter of the alphabet has one fixed substitute, and the word divisions do not change. In this paper the problem of breaking substitution ciphers is represented as a probabilistic labeling problem. Every code letter is assigned probabilities of representing plain text letters. These probabilities are updated in parallel for all code letters, using joint letter probabilities. Iterating the updating scheme results in improved estimates that finally lead to breaking the cipher. The method is applies successfully to two examples. .A Peleg, S. Rosenfeld, A. .K Cryptography, substitution ciphers, probabilistic classification, relaxation .I 3176 .T Storing a Sparse Table .W The problem of storing and searching large sparse tables is ubiquitous in computer science. The standard technique for storing such tables is hashing, but hashing has poor worst-case performance. We propose a good worst-case method for storing a static table of n entries, each an integer between 0 and N - 1. The method requires 0(n) w words of storage and allows O(logn N) access time. Although our method is a little complicated to use in practice, our analysis shows why a simpler algorithm used for compressing LR parsing tables works so well. .A Tarjan, R.E. Yao, A.C.C. .K Gaussian elimination, parsing, searching, sparse matrix, table compression, table lookup .I 3177 .T How to Share a Secret .W In this paper we show how to divide data D into n pieces in such a way that D is easily reconstructable from any k pieces, but even complete knowledge of k - 1 pieces reveals olutely no information about D. This technique enables the construction of robust key management schemes for cryptographic systems that can function securely and reliably even when misfortunes destroy half the pieces and security breaches expose all but one of the remaining pieces. .A Shamir, A. .K Cryptography, key management, interpolation .I 3178 .T Introduction to the EFT Symposium .A Kling, R. .I 3179 .T Overview of the EFT Symposium .W It is increasingly recognized that large-scale technologies such as EFT have the potential for aiding in the solution of current societal problems. Yet, these technologies also generate problems. This symposium presents selected papers from a conference that sought to discover what is currently known about EFT impacts in society and what research is needed in the future. .A Kraemer, K.L. Colton, K.W. .K EFT's, research agenda, conference results, public policy .I 3180 .T Costs of the Current U.S. Payments System .W Neither the banking industry nor public policy makers have good information on the comparative costs of alternative payment systems such as cash, checks, credit cards, and EFT transactions. As a result, EFT systems and services are likely to be implemented without a valid assessment of whether they are cost-justified, lst alone justified in terms of other criteria. .A Lipis, A.H. .K EFT's,payment system costs, payment system volumes .I 3181 .T Public Protection and Education with EFT .W Research has revealed the existence of widespread misinformation and lack of knowledge about EFT among business and government as well as consumers. As a result, any effort to stimulate meaningful public participation in decisions on the introduction of EFT systems will require a coordinated educational effort of considerable scale. In addition, research has revealed shortcomings in the present system for defining responsibilities, liabilities, and avenues of recourse. THis article presents several possible alternatives for improving the current system, but ongoing research is also needed to assure that actions taken will be responsive to the changing environment and consumer needs. .A Long, R.H. .K Electronic funds transfer systems, consumer education, security and fraud, privacy, system reliability, EFT ombudsman .I 3182 .T Vulnerabilities of EFTs to Intentionally Caused Losses .W The hypothesis that consumers are provided greater accuracy and freedom from error and fraud with electronic funds transfer systems (EFTs) is discussed in light of the technical capabilities and potential of the computer to protect against both accidentally and intentionally caused losses. Although the nomenclature for business crimes remains the same as for manual depository and other financial service systems - for example, fraud, theft, embezzlement - the characteristics of the crimes are new. The changes resulting from the accelerating use of EFTs and its continual technological advances broaden the scope of security issues to be examined. Factors such as backup requirements, regulatory and legislative actions, and economics give rise to the urgency for immediate research into solutions for emerging EFTs - related vulnerabilities. .A Parker, D.B. .K EFTs, computer abuse, crime, security, errors, losses, positions of trust, legislation .I 3183 .T Policy, Values, and EFT Research: Anatomy of a Research Agenda .W There is an emerging recognition that EFT systems have the potential to vastly alter the payment and fund transfer system in American society. A number of forces and actors are involved in this evolution, and the values vary significantly depending on individual and institutional perspectives. These value conflicts are highlighted in a six-part research agenda: technological issues in EFT, EFT impacts on people, economic impact of EFT, regulation and control of EFT, and evaluating and monitoring EFT systems. .A Kraemer, K.L. Colton, K.W. .K EFTs, research agenda, value conflicts, impacts on people, economic impacts, regulation and control, monitoring EFT .I 3184 .T Revised Report on the Algorithmic Language ALGOL 60 .W The report gives a complete defining description of the international algorithmic language ALGOL 60. This is a language suitable for expressing a large class of numerical processes in a form sufficiently concise for direct automatic translation into the language of programmed automatic computers. .A Nuar, P. .I 3185 .T The Humble Programmer .W We shall do a much better programming job, provided that we approach the task with a full appreciation if its tremendous difficulty, provided that we stick to modest and elegant programming languages, provided that we respect the intrinsic limitations of the human mind and approach the task as Very Humble Programmers. .A Dijkstra, E. W. .I 3186 .T GO TO Statement Considerd Harmful .A Dijkstra, E. W. .K go to statement, jump instruction, branch instruction, conditional clause, repetitive clause, program intelligibility, program sequencing .I 3187 .T Certification of Algorithm 271 (QUICKERSORT) .W QUICKERSORT compiled and run without correction through the ALDEP translator for the CDC 1604A. Comparison of average sorting items with other recently published algorithms demonstrates QUICKERSORT's superior performance. .A Blair, C.R. .I 3188 .T Semiotics and Programming Languages .W I have based my paper on semiotics and its three dimension. I should insert at this point that language has many aspects and that pragmatics, semantics and syntactics do not necessary cover all of them. One can, however, project most aspects into the three semiotic dimension and there seems to be a strong tendency to do so today. .A Zemanek, H. .I 3189 .T An Algebraic Compiler for the FORTRAN Assembly Program .W An algebraic compiler has been written which may be added to the FORTRAN Assembly Program. This compiler will expand all algebraic statements with the following operations: addition, subtraction, multiplication and division. It will compile multi-level expressions in floating-point arithmetic (this is easily be revised to fixed-point). .A Stiegler, A. D. .I 3190 .T Correction to Economies of Scale and the IBM System/360 .W On page 439, a "typical" instruction mix id discussed and the timing computed as outlined in that page. Through an undetected programming error, the times and the resulting regression equation are slightly in error. .A Solomon, M.B. .I 3191 .T Generating Permutations by Nested Cycling .W The purpose of this letter is two_fold: first to give due credit to the Tompkins-Paige algorithm, and second to clarify a comment by Hill, CR Review 13891 on "Programs for Permutations". .A Langdon, Glen G. .K permutations .I 3192 .T The Lincoln Keyboard - a Typewriter Keyboard Designed for Computers Input Flexibility .W A new typewriter keyboard, for direct and punched paper tape computer input will replace the usual commercial keyboard with 88 characters chosen for the convenience of programmers. The Lincoln Keyboard is expected to facilitate the programming of algorithmic process and should allow considerable flexibility in assembly and utility routines. .A Vanderburgh, A. .I 3193 .T .W Work is in progress on a formula coding technique allowing direct entry into the computer of formulae typed on an 84 character Flexo-writer. This Flexo-writer will be modified for automatic half-line advance and retract, without carriage return, to permit completely general sub and superscripting. .I 3194 .T A Non-heuristic Program for Proving Elementary Logical Theorems .W The paper discusses problems involved in designing a device capable of distinguishing among speech events that are normally recognized as different by native speakers of a particular language. Parallels between these problems and those of chemical analysis are pointed out. .A Dunham, B. Fridshal, R. Sward, G. L. .I 3195 .T Reiteration of ACM Policy Toward Standardization .W The periodic change in officers, chairman and editors which usually follows as election occasionally results in a change in policy. In the case of this department there is no radical change, but this is nevertheless the proper time to reiterate ans underline ACM's policy with respect to standardization in the computer area. .A Gorn, S. .I 3196 .T The Reactive Typewriter Program .W 84-character keyboard including alphabetical upper and lower case for good readability. If the machine is restricted to only a single case, the lower case is preferred. The reactive typewriter should be portable. the reactive typewriter should operate over any commercially used, dial-type telephone (voice) or telegraph (Telex) line or over leased (nondial) telegraph lines interchangeably. .A Mooers, C. N. .I 3197 .T Structures of Standards-Processing Organizations in the Computer Area .W In line with the ACM's policy statement [Comm. ACM 5 (Nov. 1962), 547-549], the following organizational descriptions have been provided in order to describe standardization activities pertinent to computers and information processing. .A Gorn, S. Bemer, R. W. Green, J. .I 3198 .T Microprogramming, Emulators and Programming Languages .W The problem we have been concerned with is that of converting language to action - or intellectual energy to mechanical energy. The medium that we use for this purpose is language and therefore we are preoccupied with the subject of language. In the areas of language investigation we have concentrated first on formalizing syntax and then on semantics. .A Greem, J. .I 3199 .T ALGEM - An Algebraic Manipulator .W ALGEM is a package of subprograms written in Slip, FORTRAN IV and MAP 7094 II to manipulate algebraic expressions. Algem's basic algebraic operations are additions, subtractions, multiplications, division and exponentiation. It is capable of handling any number of single letter variables, variable exponents, and of finding the highest common factor of two polynomials. Also included are such functions as substitution, differentiation, determining coefficients of specified variables, solving a linear equation, basic I/O routines plus other special purpose and arithmetic routines. The major innovation of Algem over other manipulators is the assignment of types to all expressions and the use of a standard ordering procedure. .A Gotlieb, C. C. Novak, R. J. .I 3200 .T A FORMAC Program for the Solution of Linear Boundary and Initial Value Problems .W A computer program is described which has been developed for obtaining approximate solutions to linear initial and boundary-value problems involving differential equations. For each problem, input to the program includes: 1. The equations (in symbolic form) to be satisfied - the differential equations, equations describing auxiliary conditions such as boundary conditions, etc. 2. A numerical description of the regions in which each of the equations are to be satisfied. 3. Sets of functions (in symbolic form) to be used in linear combinations to approximate the solution functions. Give the above input, the program generates an approximation to the solutions of the specified problemm in terms of the specified functions which is optimum in the least-squares sense. .A Cuthill, E. .I 3201 .T Symbolic Manipulation of Poisson Series .W Poisson series of three variables are manageable symbolically through as a set of formal subroutines written partially in the IBM 7094 machine language, but to be called in the FORTRAN language for use in Fortran programs. An effort has been made to supply those operations which are most required by celestial mechanics. The routines are entirely self-contained subroutines and require only standard Fortran input/output units 5 and 6; they are design to avoid waste and overflow of core storage space. .A Danby, J. Deprit, A. Rom, A. .I 3202 .T MANIP: A Computer System for Algebra and Analytic Differentiation .W A mathematical expression to be operated upon is written in FORTRAN-like notation and stored in the computer as a string of BCD characters with all blanks removed. It may be as complicated as desired (parentheses nested without restriction, etc.) so long as the entire expression (or any subsequent form) does not exceed 5000 characters. The problemm of performing algebraic operations and obtaining analytic derivatives was translated into that of identifying and manipulating character sequences. Programs which resulted were written in FORTRAN IV for a CDC 3600 and are discussed in detail. .A Bender, B. .I 3203 .T GRAD Assistant - A Program for Symbolic Algebraic Manipulation and Differentiation .W The General Recursive Algebra and Differentiation Assistant (GRAD Assistant) now under development is a set of LISP functions which symbolically manipulate abd differentiate algebraic expressions. It is designed for use with problemms in which a large amount of routine manipulation is to be done by a program without human intervention. Thus, GRAD must recognize necessary simplifications without external guidance. While some complicated expressions (notably ones involving nested radicals and trigonometric functions) do not yield completely to the present version, it has proved quite useful indeed. .A Fletcher, J. G. .I 3204 .T An On-Line Program for Non-Numerical Algebra .W The goal of this program is to make a step toward te design of an automated mathematical assistant. Some requirements for such a program are: it must be easy to access, and that the result must be obtained in a reasonably short time. Accordingly the program is written for a time-shared computer. The Q-32 computer as System Development Corporation, Santa Monica, California, was chosen because it also had a LISP 1.5 compiler. Programming and debugging was done from a remote teletype console at Stanford University. .A Korsvold, K.