MTS 8: LISP and SLIP in MTS Page Revised February 1979 June 1976 8 Overview of List-Processing Languages in MTS
MTS 8: LISP and SLIP in MTS June 1976 Page Revised February 1979 LISP ____ INTRODUCTION ____________ LISP is a programming language that combines a very simple syntactic structure with an extremely powerful and flexible semantic structure. This makes LISP unlike most other programming languages and places a great burden on the programmer to use the language carefully. In the design of LISP, an attempt was made to embody the logical power of LISP in a language which is economical enough to be useful to many people. Many of the user options, input/output capabilities, and debugging features that programmers expect to find in any programming language have been added to LISP. Throughout this section, various mnemonics have been used to repre- sent LISP elements in describing the formats of basic LISP operations. A, A1, and A2 represent atoms; N, N1, and N2 represent numeric atoms; L, L1, and L2 represent lists. S, S1, and S2 represent any LISP structure; LA, LA1, and LA2 represent lists whose elements are literal atoms; and FN, FN1, and FN2 represent function specifications. S1...SN indicates that any number of expressions of that type may be given, and Si denotes any one of these expressions. S indicates that an expression of that type is optional, and A,LA indicates that the user has a choice of one or the other. The development and implementation of LISP was supported in part by National Science Foundation Grant Number GJ-31339X. For a formal definition of the original LISP language, see J. McCarthy, et al., LISP ____ 1.5 Programmer’s Guide, M. I. T. Press, 1962. ______________________ THE LISP LANGUAGE _________________ Atoms, Buffers, and Arrays __________________________ The primitive data structures of LISP, called atoms, are similar in form to variables in other languages. PNAME of an Atom Atoms are created implicitly and referenced through their PNAMEs, or print names. The PNAME of an atom may be any character string up to 255 characters long. LISP 9