Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I. (McCarthy, pp. 184-195) WITH Macro Instruction Extensions of Compiler Languages (McIlroy, pp. 214-220) In The Association for Computing Machinery Communications (Comm. ACM) Vol. 3, 1960 [LISP & MACRO PROCESSORS]

Baltimore: Association for Computing Machinery, 1960. 1st Edition. Bound full volume FIRST EDITION (with front wraps of each issue bound in) OF McCARTHY’S A SEMINAL PAPER INTRODUCING HIS COMPUTER PROGRAMMING LANGUAGE “LISP” & A CLASSIC PAPER BY McILROY ON THE DESIGN OF MACRO PROCESSORS.

McCARTHY: “In 1960, John McCarthy published a remarkable paper [the paper offered here] in which he did for programming something like what Euclid did for geometry. He showed how given a handful of simple operators and a notation for functions you can build a whole programming language. He called this language LISP for List Processing because one of his key ideas was to use a simple data structure called a list for both code and data” (Graham, Language Log, 2002).

“The latter half of the 1950s saw the advent of the first list processing languages developed to handle operations on non-numerical data arranged in chains rather than serially. By far the most influential of these languages was McCarthy's LISP, the language of choice for AI programming” (Hook & Norman). LISP "eclipsed all other attempts in the same direction and gave the AI community its lingua franca...Though LISP was devised in the first place to provide a convenient means of programming a computer to manipulate strings of symbols (as distinct from numbers), this is not the only, or even the most important contribution this type of language has to make. The crucial point is rather that computer programs themselves are represented in the machine as a sequence of codes, and that a list processing language like LISP makes it easy to treat programs themselves as manipulable data” (Origin of Cyberspace 779 & 780).

McILROY: Macros involve switching among many data streams. The paper included here is considered “a classic” in the design of macro processors (Brown, Macro Processors, 1971, 1.9). It “introduced a large number of previously unpublished ideas, arising from a variety of sources. Before McIlroy's paper, the published material on macro processors consisted mainly of descriptions of simple macro assemblers, all of which were much the same. McIlroy considerably broadened the horizons. He proposed that the syntax of macro calls should not be as rigid as in the conventional macro assembler, that all text should be treated in a uniform manner, and that there should be a wide range of macro-time statements. This represents contributions in three basic areas, namely syntax, text evaluation, and macro-time facilities. He also mentioned that the use of macro processors is not confined to assembly languages but can be applied to other languages as well. This introduces a fourth consideration, namely the language into which the macro processor maps, which is called the base language” (ibid). Item #1386

CONDITIONS & DETAILS: Baltimore: Association for Computing Machinery, 1960. Complete, full volume (inclusive of issues from January 1960 through November 1960. Ex-libris with very minimal markings. Tightly and solidly bound in brown buckram, gilt-lettered at the spine; very small “Ames Library” at foot of spine. Bright and clean. Very Good++.

Price: $275.00