scispace - formally typeset
Search or ask a question

Showing papers in "Communications of The ACM in 1960"


Journal ArticleDOI
TL;DR: A programming system called LISP (for LISt Processor) developed for the IBM 704 computer by the Artificial Intelligence group at M.I.T. was designed to facilitate experiments with a proposed system called the Advice Taker, whereby a machine could be instructed to handle declarative as well as imperative sentences and could exhibit "common sense" in carrying out its instructions.
Abstract: A programming system called LISP (for LISt Processor) has been developed for the IBM 704 computer by the Artificial Intelligence group at M.I.T. The system was designed to facilitate experiments with a proposed system called the Advice Taker, whereby a machine could be instructed to handle declarative as well as imperative sentences and could exhibit “common sense” in carrying out its instructions. The original proposal [1] for the Advice Taker was made in November 1958. The main requirement was a programming system for manipulating expressions representing formalized declarative and imperative sentences so that the Advice Taker system could make deductions. In the course of its development the LISP system went through several stages of simplification and eventually came to be based on a scheme for representing the partial recursive functions of a certain class of symbolic expressions. This representation is independent of the IBM 704 computer, or of any other electronic computer, and it now seems expedient to expound the system by starting with the class of expressions called S-expressions and the functions called S-functions.

1,435 citations


Journal ArticleDOI
Edward Fredkin1
TL;DR: In this paper several paradigms of trie memory are described and compared with other memory paradigm, their advantages and disadvantages are examined in detail, and applications are discussed.
Abstract: Trie memory is a way of storing and retrieving information. ~ It is applicable to information that consists of function-argument (or item-term) pairs--information conventionally stored in unordered lists, ordered lists, or pigeonholes. The main advantages of trie memory over the other memoIw plans just mentioned are shorter access time, greater ease of addition or up-dating, greater convenience in handling arguments of diverse lengths, and the ability to take advantage of redundancies in the information stored. The main disadvantage is relative inefficiency in using storage space, but this inefficiency is not great when the store is large. In this paper several paradigms of trie memory are described and compared with other memory paradigms, their advantages and disadvantages are examined in detail, and applications are discussed. Many essential features of trie memory were mentioned by de la Briandais [1] in a paper presented to the Western Joint Computer Conference in 1959. The present development is essentially independent of his, having been described in memorandum form in January 1959 [2], and it is fuller in that it considers additional paradigms (finitedimensional trie memories) and includes experimental results bearing on the efficiency of utilization of storage space.

1,144 citations


Journal ArticleDOI
TL;DR: It was decided to hold an international meeting in January 1960 for improving the ALGOL language and preparing a final report, and seven representatives were selected to attend the January 1960 international conference.
Abstract: After the publication of a preliminary report on the algorithmic language ALGOL,!' 2 as prepared at a conference in Zurich in 1958, much interest in the ALGOL language developed. As a result of an informal meeting held at Mainz in November 1958, about forty interested persons from several European countries held an ALGOL implementation conference in Copenhagen in February 1959. A \"hardware group\" was formed for working cooperatively right down to the level of the paper tape code. This conference also led to the publication by Regnecentralen, Copenhagen, of an ALGOL Bulletin, edited by Peter Naur, which served as a forum for further discussion. During the June 1959 ICIP Conference in Paris several meetings, both formal and informal ones, were held. These meetings revealed some misunderstandings as to the intent of the group which was primarily responsible for the formulation of the language, but at the same time made it clear that there exists a wide appreciation of the effort involved. As a result of the discussions it was decided to hold an international meeting in January 1960 for improving the ALGOL language and preparing a final report. At a European ALGOL Conference in Paris in November 1959 which was attended by about fifty people, seven European representatives were selected-to attend the January 1960 Conference, and they represent the following organizations: Association Francaise de Calcul, British Computer Society, Gesellschaft fur Angewandte Mathematik und . Mechanik, and Nederlands Rekenmachine Genootschap. The seven representatives held a final preparatory meeting at Mainz in December 1959. Meanwhile, in the United States, anyone who wished to suggest changes or corrections to ALGOL was requested to send his comments to the ACM Communications where they were published. These comments then became the basis of consideration for changes in the ALGOL language. Both the SHARE and USE organizations established ALGOL working groups, and both organizations were represented on the ACM Committee on Programming Languages. The ACM Committee met in Washington in November 1959 and considered all comments on ALGOL that had been sent to the ACM Communications. Also, seven representatives were selected to attend the January 1960 international conference. These seven representatives held a final preparatory meeting in Boston in December 1959.

494 citations


Journal ArticleDOI
Hao Wang1
TL;DR: It now appears that as more progress is made, strategies in the search for proofs, or what are often called heuristic methods, will also gradually become part of the subject matter of inferential analysis.
Abstract: Certain preliminary results on doing mathematics by machines (“mechanical mathematics”) were reported in an earlier paper [20]. The writer suggested developing inferential analysis as a branch of applied logic and as a sister discipline of numerical analysis. This analogy rests on the basic distinction of pure existence proofs, elegant procedures which in theory always terminate, and efficient procedures which are more complex to describe but can more feasibly be carried out in practice. In contrast with pure logic, the chief emphasis of inferential analysis is on the efficiency of algorithms, which is usually attained by paying a great deal more attention to the detailed structures of the problems and their solutions, to take advantage of possible systematic short cuts. The possibilities of much more elaborate calculations by machines provide an incentive to studying a group of rather minute questions which were formerly regarded as of small theoretical interest. When the range of actual human computation was narrow, there seemed little point in obtaining faster procedures which were still far beyond what was feasible. Furthermore, on account of the versatility of machines, it now appears that as more progress is made, strategies in the search for proofs, or what are often called heuristic methods, will also gradually become part of the subject matter of inferential analysis. An analogous situation in numerical analysis would be, for example, to make the machine choose to apply different tricks such as taking the Fourier transform to obtain a solution of some differential equation.

356 citations


Journal ArticleDOI
George E. Collins1
TL;DR: The present paper describes a general method which enables efficient erasure of lists which employs interspersed reference counts to describe the extent of the overlapping.
Abstract: 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.

323 citations


Journal ArticleDOI
TL;DR: The characters introduced by tim substitution process have t, he following memfings.
Abstract: : = RH The characters introduced by tim substitution process have t, he following memfings: G an integer N 't number containing a decimal point N L an incomplete number, ending in 10 N2 an in.complete mm~ber, ending in ~0± N* \"~ number ending with an exponent, of 10 I an identifier; a letter followed by letters or digits V % subscripted v-mable E a parenthesized expression S a bracketed subscript O . a unary arithmetic operator (/)~, a binary operator @~, an ambiguous operator ( + or ) , unary or binary according to context t!;~ an expression followed by a comma E~p an expression followed by a right parenthesis E,,b an expression (or list of expressions separated by commas) followed by a right bracket Et an expression followed by a semicolon R H the replacement operator := followed by Et Z an identifier or subscripted variable followed by RH; a well-f0rmed formula F a function

318 citations


Journal ArticleDOI
TL;DR: Experience leads us to believe that students learn programming not only as well but probably better than they did under the method the authors did use—laboratory groups of four or five students.
Abstract: Fifteen months ago the first version of an “automatic grader” was tried with a group of twenty students taking a formal course in programming. The first group of twenty programs took only five minutes on the computer (an IBM 650). With such a satisfactory beginning, the grader was then used for the entire course with this group of students and have been used at Rensselaer ever since. For all exercises, the average time spent on the computer has run from half a minute to a minute for each student. In general only an eighth as much computer time is required when the grader is used as is required when each student is expected to run his own program, probably less than a third as much staff time, and considerably less student time. The grader easily justifies itself on economic grounds. It accomplishes more than savings in time and money; it makes possible the teaching of programming to large numbers of students. This spring we had 80 students taking a full semester course in programming; over 120 are expected next spring. We could not accommodate such numbers without the use of the grader. Even though the grader makes the teaching of programming to large numbers of students possible and economically feasible, a most serious question remains, how well did the students learn? After fifteen months, our experience leads us to believe that students learn programming not only as well but probably better than they did under the method we did use—laboratory groups of four or five students. They are not as skilled in machine operation, however, since they get only a brief introduction to it late in the course. After learning programming, very little time is needed for each student to become at least an adequate machine operator. Students seem to like the grader and are not reluctant to suggest improvements!

184 citations


Journal ArticleDOI
TL;DR: The syntax of an algorithmic language such as ALGOL is conveniently described as a sequence of states indicated by an element called cellar, which furnishes an extremely simple rule for translating into machine programs statements in the algorithmmic language.
Abstract: 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.

108 citations


Journal ArticleDOI
TL;DR: This paper introduces another number system which may prove useful for manipulating complex numbers on machines, and the binary and octal systems into the limelight.
Abstract: For centuries the decimal number system reigned supreme, except, perhaps, among the Mayan Indians, until the advent of digital computers brought the binary and octal systems into the limelight. This paper introduces another number system which may prove useful for manipulating complex numbers on machines.

103 citations


Journal ArticleDOI
M. Douglas McIlroy1
TL;DR: Conditional assembly, nested definitions, and parenthetical notation serve to make a compiler capable of accepting very general extensions to its ground language.
Abstract: 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.

78 citations


Journal ArticleDOI
TL;DR: Standard methods of counting binary ones on a computer with a 704 type instruction code require an inner loop which is carried out once for each bit in the machine word.
Abstract: Standard methods of counting binary ones on a computer with a 704 type instruction code require an inner loop which is carried out once for each bit in the machine word. Program 1 (written in SAP language for purposes of illustration) is an example of such a standard program.

Journal ArticleDOI
TL;DR: Lisp is that the extraction of subexpressions is a fairly involved, rather than an elementary, operation, and if the functionsre to be represented by computer routines, Lisp is essen­:ally faster.
Abstract: Lisp is that the extraction of subexpressions is a fairly involved, rather than an elementary, operation. It is not !lard to write, in linear LrsP, functions that correspond to.he basic functions of LISP, so that, mathematically, inear Lisp includes LISP. This turns out to be the most:onvenient way of programming, in linear Lrsp, the moreomplicated manipulations. However, if the functionsre to be represented by computer routines, Lisp is essen­:ally faster.

Journal ArticleDOI
TL;DR: A standard method often employed for searching mi ordered list for ~ given a r g u m e n t eonsists of c()mt, with the middle item of the list in order to isolate the item desired to a list half as long as the original list until tile item is found.
Abstract: A standard method often employed for searching mi ordered list for ~ given a r g u m e n t eonsists of c()mt)aring the ftrgument, with the middle item of the list in order to isolate the item desired to a list half as long as the original list,. This process is repeated until tile item is found. Clearly, tim n u m b e r of trials required is of order log,., ~t for a table of n entries and is consequently referred t(:) as a \" b i n a r y \" sea,'eh. T h e c o m p u t a t i o n of addresses use(t for sueeessive trials during the search it, a machine having no binary shift requires a division (or multiplication by an inverse) if a p r o g r a m which is conservative of space is desired, or a table of powers of two if a p r o g r a m which is conservative of time is desired. A searching p r o g r a m whieh conserves both time and space is often desired. One such method utilizes the Fib(maeei numbers defined hy: T h e i m p o r t a n t distinction here is that successive increments are found by subtraction. Method If at some point in the process the item has been isolated to an interval of size ~,: beginning at A, compare x to C~_~ where :c = value of the argument, C~_~ = contents of A + ~i_~. If x < C~_~, the item is now isolated to an interval of size u~_~ beginning at. A, hence replaee i by i-1 and repeat the process.

Journal ArticleDOI
TL;DR: The task assignment problem is one of the fundamental combinatorial optimization problems and has been extensively studied in.
Abstract: The task assignment problem is one of the fundamental combinatorial optimization problems. It has been extensively studied in

Journal ArticleDOI
TL;DR: This paper is an informal introduction to Language V (IPL-V), a symbol and list-struc language present ly implemented on the IBM and contains a discussion of the hmguage, a series of Information Processes developed and of the basic concepts in [PL-V.
Abstract: ~ ~ ~ ~,,~, ill ̧ ..... :i '.~1 h~ troduction a ~\" Tbis paper is an informal introduction t,o Information ~:~.~:, i}:: }~r{(essit~g Language V (IPL-V), a symbol and list-struc'~ ~}:>:< << ~ure lnatfipulacing language present ly implemented on the IBM (i50, 704 :rod 709. I t contains a discussion of the p'ot,lem context; in which a series of Information Processi~)g L:mguages has developed and of the basic concepts i~corporated in [PL-V. t A complete description of the hmguage can be found in the I P L V Programmer's Manual 51.

Journal ArticleDOI
TL;DR: To return to the consideration of a single bit position, construct a binary word, 0, in which h0 is the unit; bit, h~ is the 2 bit, he is the f bit, etc.
Abstract: return to the consideration of a single bit position. If the parity bit is not zero, but the Hamming check bits are all zero, the overwhehning probtfl)ility is that the parity bit is in error. If the parity bit is zero, but the tiara-ruing bits are not all zero, a multiple error in this position is indicated and no correction is possible. If the parity bit is not zero and the Hamming bits are not zero, then the hypothesis of a single error nmy be tested. Construct a binary word, 0, in which h0 is the unit; bit, h~ is the 2 bit, he is the f bit, etc. If p > N' a multiple error is indicated, but if p-< N' then IV~_~ if erroneous and its bit must be changed from 0 to 1, or I t;o 0 a~'; ihe cas(~ may l)c. ()nee ii is veri@d t, ha.t either tht'vc ¢~ro no error>, or t.h~l,i; there ~rre trt worst single errors, a.ll of which have b(~en co> retted, the record is ready to be pa, ck(~d and rciurn(>d to its original q rr'mgemeni re'My for use.

Journal ArticleDOI
E. F. Codd1
TL;DR: 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.
Abstract: 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.

Journal ArticleDOI
TL;DR: The reader is reminded that the rule discussed here is most applicable to codes employing the Simplex algorithm, and it is suggested that a practitioner in the field or has an militarily with linear programming should be aware of this fact.
Abstract: te subject of this paper is a very specific facet. road field, two assumptions concerning the been made in the interest of briefness. First, i ther a practitioner in the field or has an militarily with linear programming. Second, 'amiliar with high-speed digitM computers, they contribute to the solution of Linear ,; problems. ng the subject matter with various users of mining codes, it has become apparent that a otis barrier exists. There are two major his difficulty: differing nomenclature, and a *aLien to the use of algorithms of the Product Inverse. me the first of these, an at tempt has been toy a self-contained and generMly acceptable Because of the second, the reader is reminded ~ion rule discussed here is most applicable to ,er codes employing the Simplex algorithm.

Journal ArticleDOI
TL;DR: A factual account of the trip of a technical delegation in computers in the Soviet Union is presented, including the itinerary, descriptions of specific Soviet computers, ions of certain computing centers, and a description of current circuit development.
Abstract: nary. The paper presents a factual account of the trip of • technical delegation in computers t0 the Soviet Union. lit the itinerary, descriptions of specific Soviet computers, ions of certain computing centers, a discussion of Soviet ~r-orientcd educ'~tion, \"rod a description of current circuit Lponcnt development. In appendices arc given the instrucertoirc of the URAL-[ and the URAL-][[ machines, and an of solne magnetic cores. The paper is extensively illusnd contains ,~ bibliography of relevant Soviet documents.

Journal ArticleDOI
TL;DR: The present authors have studied the statistics of Shell's method and have found a minor modification which increases its speed still further and has been found to be considerably faster than other such methods.
Abstract: In a recent note1, D. L. Shell has described a high-speed sorting procedure for lists contained in internal memory. The method has the great virtues of requiring no additional memory space and being considerably faster than other such methods, which require a time proportional to the square of the list length. The present authors have studied the statistics of Shell's method and have found a minor modification which increases its speed still further.

Journal ArticleDOI
TL;DR: The scheduling algorithm examines the programs to be scheduled one by one and places their component rectangles in the corresponding load diagrams according to a set of placement rules.
Abstract: The scheduling algorithm examines the programs to be scheduled one by one and places their component rectangles in the corresponding load diagrams according to a set of placement rules.


Journal ArticleDOI
TL;DR: A great step forward in lhe definition of a common lani guage for computers can be realized by the general acceptance of a standard method for forming abbreviations of words and phr:~scs, thereby releasing a reservoir of creative talent for work on the next higher levels of activity.
Abstract: A great step forward in lhe definition of a common lani guage for computers can be realized by the general accepta~me of a standard method for forming abbreviations of words and phr:~scs. This could be a turning point in the solution of this stMemated many-headed common language problem, thereby releasing a reservoir of creative talent for work on the next higher levels of activity. Examine a nuinber of computer applications and note how many s ~ machine descriptions of a problem contain abbreviated iI } forms of words and phrases. These names are shortened to ~ comply with certmn fixed machine characteristics and also I 1 to indulge human idiosyncrasies. They are shortened for the same reason that abbreviations are used in ore\" everye day writing, i.e., to save space, conserve effort and still retain the full meaning of words. '{, When a name is written only once, it is usually written in full. When a name is constantly repeated, it is usually

Journal ArticleDOI
TL;DR: The system described in this paper is an attempt to alleviate some of the dittieulties of the rest of the problem and requires a "language" which can simply and clearly express the same ideas expressed by the flow diagram.
Abstract: IIntr°ducti°n There is a technical distinction between (a) and (b). } In the past the description of a large scale computa-In the case of the \"do\" statement in (a), after completion tional problem was given in the form of a \"flow diagram,\" of the process specified by statement S1, the flow is to i designed to express to the individual in the simplest way I the complexities of the problem, but not at suitable as 1~, ~ direct; input to the computing machine. [[he first step It0 help the \"coder\" was to prepare systems which would r ~cccpt algebraic formulas in their natural form and gen-lerate a sequence of commands for some particular com-i puter which when executed would produce the required ]result. This more or less provided for the working boxes of ~ow diagrams, ttowever, it automated that part of the problem which was in many cases easiest for the human t0 do. Not only was this the easiest but, perhaps as a consequence, this part of the problem was less subject to roman error. The system described in this paper is an ~tIempt to alleviate some of the dittieulties of the rest of the problem. The items to be processed in an automatic computing lnaehine must be assigned memory locations. The various instructions to the computer which eause it to perform the proper sequence of events must also be stored in the memory of the computing machine. This assignment of storage, as already noted, is simply a bookkeeping task which can be performed by the computer. Consider now the interconnecting lines of the flow diagram. The first; requirement is a \"language\" which can simply and clearly express the same ideas expressed by the flow diagram. The specification of the various events to be accomplished by the computer will be referred to as \"statements.\" The statements inside the regions of the fl0w diagram are usually arithmetic or logical in character or have to do with input/output processes. The interconnecting lines on the flow diagram correspond to \"directive\" statements. These may be simple in character , indicating which region of statements is to be done alter a particular region is finished. Some regions may h~ve two exits and be conditional in character, the particular exit to be used depending, for example, upon the relative magnitudes of two variables. Such conditional situations can be expressed by so-called \"decision\" statements. If S1, …

Journal ArticleDOI
R. W. Bemer1
TL;DR: Present communications systems transmit single characters in groups of coded pulses between simple terminal equipments, but using numeric representations of entire words or common phrases (rather than character-by-character representations) requires approximately one-third of present transmission time.
Abstract: 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 of places.

Journal ArticleDOI
TL;DR: This is Crout's method with row interchanges, as formulated in reference [l], for solving Ay = b and transforming the augmented matrix [A b] into its triangular decomposition LU with all L[k, k] = 1.
Abstract: s e a t t e n d i n g c a m e from m a n u-facturers, universities, and c o m p u t e r-u s i n g laboratories. All t h o s e a t t e n d i n g h a v e written, are writing, Or p l a n t,o write ALc~oL-like c o m p i l e r s or are a c t i v e l y e n g a g e d in writing p r o g r a m s in the ALGOL 60 language. T h e a t t e n d e e s , r e p r e s e n t i n g 22 o r g a n i z a t i o n s , a g r e e d to f o r m a s u b c o m m i t t e e of t h e A C M C o m p u t e r L a n g u a g e s C o m m i t t e e for t h e p u r p o s e of m a i n t a i n i n g a n d i n t e r p r e t i n g the AL(IOL 60 language. T h i s group is e x p a n d a b l e and it is h o p e d t h a t a E u r o-pean c o u n t e r p a r t m a y be f o r m e d so t h a t actions agreed u p o n b y b o t h groups m a y be regarded as ofiieial i n t e r p r e t a-tions a n d c h a n g e s to ALGOL 60. corn m e n t This is Crout's method with row interchanges, as formulated in reference [l], for solving Ay = b and transforming the augmented matrix [A b] into its triangular decomposition LU with all L[k, k] = 1. If A is singular we exit to 'singular,' a non-local label, pivot[k] becomes …

Journal ArticleDOI
M. E. Senko1
TL;DR: 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.
Abstract: 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.

Journal ArticleDOI
TL;DR: L S F I T uses the procedure P O L Y X (a, b, c, d, n) to transform its results from ghe in.terval (-2, 2) to t h e i n t e r v a l (xl, ; s {0i := epoty [01 := o m e g a / t h i s w ; delsq := delsq-s X omega ; sigma {0] := d e l


Journal ArticleDOI
TL;DR: An empirical relation between solution time and the size of the problem is given, based on extensive experiments carried out on a digit computer, and an efficient algorithm for its solution is presented in ALGOL code.
Abstract: 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 digit computer.