The Revised Maclisp ManualThe PitmanualPage M-2
Published by HyperMeta Inc.
 
Prev | Index | Next

Metadata
History
Front Matter
Sunday Morning Credits
Legal Notices
Funnies
Donate
Google

Hardcopy Front Matter

This text appears on the cover of the hardcopy manual:

LABORATORY FOR
COMPUTER SCIENCE
MASSACHUSETTS
INSTITUTE OF
TECHNOLOGY

 

MIT/LCS/TR-295

THE REVISED
MACLISP MANUAL

Kent M. Pitman
(also of the M.I.T. Artificial Intelligence Lab) [1]

545 TECHNOLOGY SQUARE, CAMBRIDGE, MASSACHUSETTS 02139 [2]

[1] The reason the word “also” appears awkwardly here is this: This document was to be published by the Laboratory for Computer Science (LCS), but I asked if there was a way to do it jointly out of both labs, since I had recently moved to the AI Lab. I really wanted to just list both labs next to my name on the cover, but LCS had a template they wanted to use for the cover, and whoever processed my order interpreted my request as if I'd asked to add literal text saying I was “also” from the other lab. It ended up looking inelegant and confusing to me, but I didn't get to review it before it went to press.

[2] This is no longer the correct mailing address for the lab, which has been renamed and has moved to a new building. Get up-to-date information from http://www.csail.mit.edu/.

This text appears as the front matter of the hardcopy manual:

 

The Revised
MACLISP
MANUAL

by Kent M. Pitman
  MIT Laboratory for Computer Science
  MIT Artificial Intelligence Laboratory

© Massachusetts Institute of Technology, 1983

The PitMANUAL, Draft #14 May 21, 1983
  Saturday Evening Edition

(There was, at this point in the front matter, a table of contents for the manual. It is not useful here since it refers to hardcopy pages. See the Table of Contents on the front page for equivalent information.)

 

THE REVISED MACLISP MANUAL

Kent M. Pitman

Abstract

Maclisp is a dialect of Lisp developed at M.I.T.'s Project MAC (now the MIT Laboratory for Computer Science) and the MIT Artificial Intelligence Laboratory [3] for use in artificial intelligence research and related fields. Maclisp is descended from Lisp 1.5, and many recent important dialects (for example Lisp Machine Lisp and NIL [4]) have evolved from Maclisp.

David Moon's original document on Maclisp, The Maclisp Reference Manual (alias the Moonual) provided in-depth coverage of a number of areas of the Maclisp world. Some parts of that document, however, were never completed (most notably a description of Maclisp's I/O system); other parts are no longer accurate due to changes that have occurred in the language over time.

This manual includes some introductory information about Lisp, but is not intended to be a tutorial. It is intended primarily as a reference manual; particularly, it comes in response to users' pleas for more up-to-date documentation. Much text has been borrowed directly from the Moonual, but there has been a shift in emphasis. While the Moonual went into greater depth on some issues, this manual attempts to offer more in the way of examples and style notes. Also, since Moon had worked on the Multics implementation, the Moonual offered more detail about compatibility between ITS and Multics Maclisp. While it is hoped that Multics users will still find the information contained herein to be useful, this manual focuses more on the ITS and TOPS-20 implementations since those were the implementations most familiar to the author.

Keywords: Artificial Intelligence, Lisp, List Structure, Programming Language, Symbol Manipulation, MACLISP

[3] MIT's Laboratory for Computer Science and Artificial Intelligence Laboratory have since that time merged to become the MIT Computer Science and AI Lab (CSAIL).

[4] Common Lisp followed shortly after this, but was not available in 1983 when this manual was completed. And the New Implementation of Lisp (NIL) dialect mostly faded out when Common Lisp arrived.

 

Acknowledgments

Authorship information can be very misleading. To do justice to everyone's contribution would require a lot of information about the history of this endeavor. Anyone who's ever scrounged around for scraps of documentation on Maclisp knows that it doesn't seem to come from a central place. While I have written a significant amount of the documentation as it appears in this manual, it should be obvious to any reader that I have drawn liberally (both concepts and literal text) from any shreds of evidence about the language that I could get ahold of, including:

  • The Maclisp Reference Manual by Moon (MIT-LCS 74, 78)
  • Maclisp Extensions by Bawden, Burke, and Hoffman (MIT-LCS 81)
  • A Summary of Maclisp Functions and Flags by Touretzky (CMU-CSD 80, 81)
  • LOOP Iteration Macro by Burke and Moon (MIT-LCS 81)
  • LSB Manual by Burke (MIT-LCS 81)
  • The Lisp Machine Manual by Weinreb and Moon (MIT-AI 81)
  • online documentation (Burke, Cannon, White, et al.)
  • the Maclisp source code
  • personal communication with many people knowledgeable about various aspects of Maclisp and related dialects, including [5]:
    • Alan Bawden
    • Richard Bryan
    • Glenn Burke
    • Howard Cannon
    • George Carrette
    • Carl Hoffman
    • Robert Kerns
    • David Moon
    • Jonathan Rees
    • Guy Steele
    • Daniel Weinreb
    • Jon L White
  • bug messages and other informed communications by members of the ARPAnet Maclisp user community (especially CMU, MIT, SRI, Stanford, and Yale)

This manual has been produced from my free time over the last several years. It was intended as a DRAFT copy; there must be hundreds of typos and probably as many altogether omitted sections. The content may be lacking in some areas, and may be wrong in others. The best I can say for it is that it is more likely to be right than anything else currently available; if I waited until I found time to make all of those corrections, it'd be several more years before anything was published.

The MIT Mathlab group (part of the MIT Laboratory for Computer Science) and the MIT Artificial Intelligence Laboratory provided computational support for the production of this document [6]. The Mathlab group is supported in part by the National Aeronautics and Space Administration under grant NSG 1323, by the Office of Naval Research under grant N00014-77-C-0641, by the U.S. Department of Energy under grant ET-78-C-02-4687, and by the U.S. Air Force under grant F49620-79-C-020. The Artificial Intelligence Laboratory is supported in part by Advanced Research Projects Agency of the Department of Defense under the Office of Naval Research contract N00014-80-C-0505.

I would like to add special thanks to Victoria Pigman for help in preparing early drafts of this manual, and to Alan Bawden, James Miller, and Daniel Weise, who critiqued my disorganized drafts in preparation for this publication, and to Gerald Sussman for continually prodding me to get even this much of the manual out the door.

The EMACS text editor [7] was an invaluable aid in the production and maintenance of the sources to this manual. The document's source is a special-purpose Lisp manual production language (LSPDOC [8]) which is compiled by a Lisp program into code which can be processed by TeX and output on a Xerox Dover laser printer.

[5] At the time, I probably was focused on listing specific people who had done some specific act that related to the creation of the manual itself, but as I look back on the history of things, I see people's contributions in different ways, and I realize another class of people I failed to credit on the first round that I would like to list as influential in important ways to the creation of this manual:

  1. It was a serious error, and one that I am pleased to have an opportunity to at least partly correct, albeit posthumously, that I did not include thanks for the help of V. Ellen Golden, née Lewis, without whose tireless administrative, technical, and personal help I (and probably most people in the Mathlab group) could not have gotten much of anything done.

  2. Ironically, another major omission was that of Ellen's husband, Jeff Golden, who was also incredibly helpful to me as a friend and mentor over the several years I worked on Lisp and Macsyma, and who unquestionably contributed to my success there, and hence to my ability to write this document.

  3. I'd also like to credit Bud Frawley, who hired me for my first telecommuting job, a summer of work for Schlumberger-Doll Research Center in 1978. The reason he offered for arranging with MIT that my work be conducted remotely from an office at the MIT Laboratory for Computer Science rather than on-site at Schlumberger in Ridgefield, Connecticut was that the Maclisp language, which we were using for Schlumberger's pilot project in Knowledge Engineering, was so poorly documented that it would be useful for me to be physically sharing an office with the Maclisp implementors, who could answer questions and fix bugs as they came up. Looking back, this work arrangement was probably one of the key trigger events for helping me to realize that the language needed to be better documented.

    (That work arrangement succeeded well, but it seemed like it wouldn't scale well for other people in other circumstances. It actually occurred to me at the time that I could have just held the information in my head, and that it might be better job security than sharing it, but I cringed at the thought of a social fabric in which people didn't know the meaning of words they were using and where everything was mysterious. So I decided accessible documentation was the better route.)

  4. Last, but not by any means least, I failed to properly credit my mother, who helped me a lot in many ways, both financial and emotional, to get through college (not to mention getting there in the first place). Thanks, Mom!

[6] To clarify, “computational support” here means these agencies purchased and maintained the PDP-10 on which this document was edited and originally typeset. None of these agencies funded any part of the work involved in writing either the original hardcopy document, nor any part of either the work or the computational support for preparing this document for webbed publication. For a more detailed explanation of that, see the detailed history of this document.

[7] Incidentally, this refers to the TECO-based EMACS text editor.

[8] LSPDOC is a notational system I created specifically for The Pitmanual and is not really general enough for any other use. It was designed to let me write in readable plaintext and yet have the document appear in nicely typeset form, by using TeX as an assembly language into which the document was compiled, rather than a source language as is often done for manuals (but which more often than not sacrifices easy source code readability). Fortunately, the notation I'd chosen was flexible enough that I was able to re-use the same input data and, with some effort, write a different processor for that data to output cross-referenced HTML instead of TeX.


The Revised Maclisp Manual (Sunday Morning Edition)
Published Sunday, December 16, 2007 06:17am EST, and updated Sunday, July 6, 2008.
Prev | Index | Next