Maclisp
Encyclopedia
MACLISP is a dialect of the Lisp
Lisp programming language
Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older...

 programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

. It originated at MIT
Massachusetts Institute of Technology
The Massachusetts Institute of Technology is a private research university located in Cambridge, Massachusetts. MIT has five schools and one college, containing a total of 32 academic departments, with a strong emphasis on scientific and technological education and research.Founded in 1861 in...

's Project MAC (from which it derived its prefix) in the late 1960s and was based on Lisp 1.5. Richard Greenblatt
Richard Greenblatt (programmer)
Richard D. Greenblatt is an American computer programmer. Along with Bill Gosper, he may be considered to have founded the hacker community, and holds a place of distinction in the Lisp and the MIT AI Lab communities.-Childhood:...

 was the main developer of the original codebase for the PDP-6
PDP-6
The PDP-6 was a computer model developed by Digital Equipment Corporation in 1963. It was influential primarily as the prototype for the later PDP-10; the instruction sets of the two machines are almost identical.The PDP-6 was DEC's first "big" machine...

; Jonl White was responsible for its later maintenance and development. The name 'Maclisp' started being used in the early 1970s to distinguish it from other fork
Fork (software development)
In software engineering, a project fork happens when developers take a legal copy of source code from one software package and start independent development on it, creating a distinct piece of software...

s of PDP-6 Lisp, notably BBN Lisp
BBN LISP
BBN LISP was a dialect of the Lisp programming language by Bolt, Beranek and Newman Inc. in Cambridge, Massachusetts. It was based on L. Peter Deutsch's implementation of Lisp for the PDP-1 , which was developed from 1960 to 1964...

.

History

Maclisp ran on DEC
Digital Equipment Corporation
Digital Equipment Corporation was a major American company in the computer industry and a leading vendor of computer systems, software and peripherals from the 1960s to the 1990s...

 PDP-6/10
PDP-10
The PDP-10 was a mainframe computer family manufactured by Digital Equipment Corporation from the late 1960s on; the name stands for "Programmed Data Processor model 10". The first model was delivered in 1966...

 computers, initially only on ITS
Incompatible Timesharing System
ITS, the Incompatible Timesharing System , was an early, revolutionary, and influential time-sharing operating system from MIT; it was developed principally by the Artificial Intelligence Laboratory at MIT, with some help from Project MAC.In addition to being technically influential ITS, the...

, but later under all the other PDP-10 operating systems. Its original implementation was in PDP-10 assembly language. It was later implemented on Multics
Multics
Multics was an influential early time-sharing operating system. The project was started in 1964 in Cambridge, Massachusetts...

 using PL/I
PL/I
PL/I is a procedural, imperative computer programming language designed for scientific, engineering, business and systems programming applications...

. Maclisp developed considerably in its lifetime, adding major features along the way which in other language systems would typically correspond to major release numbers.

Maclisp was used to implement the Macsyma
Macsyma
Macsyma is a computer algebra system that was originally developed from 1968 to 1982 at MIT as part of Project MAC and later marketed commercially...

 symbolic algebra
Computer algebra system
A computer algebra system is a software program that facilitates symbolic mathematics. The core functionality of a CAS is manipulation of mathematical expressions in symbolic form.-Symbolic manipulations:...

 program; Macsyma's development also drove a number of features in Maclisp. The SHRDLU
SHRDLU
SHRDLU was an early natural language understanding computer program, developed by Terry Winograd at MIT from 1968-1970. In it, the user carries on a conversation with the computer, moving objects, naming collections and querying the state of a simplified "blocks world", essentially a virtual box...

 blocks-world program was written in Maclisp, and so the language was in widespread use in the artificial intelligence
Artificial intelligence
Artificial intelligence is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as "the study and design of intelligent agents" where an intelligent agent is a system that perceives its environment and takes actions that maximize its...

 research community through the early 1980s. It was also used to implement other programming languages, such as Planner
Planner programming language
Planner is a programming language designed by Carl Hewitt at MIT, and first published in 1969. First, subsets such as Micro-Planner and Pico-Planner were implemented, and then essentially the whole language was implemented in Popler...

 and Scheme. Multics Maclisp was used to implement the first Lisp-based Emacs
Emacs
Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...

.

Maclisp was very influential, but is no longer actively maintained. Nonetheless, it now runs on PDP-10 emulator
Emulator
In computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...

s and can be used for experimenting with early AI programs.

Characteristics

Maclisp started with a small, fixed number of data types: cons
Cons
In computer programming, cons is a fundamental function in most dialects of the Lisp programming language. cons constructs memory objects which hold two values or pointers to values. These objects are referred to as cells, conses, non-atomic s-expressions , or pairs...

 cell, atom (later called "symbol"), integer, and floating-point number. Later additions included: arrays, which were however never first-class data-types; arbitrary-precision integers (bignums); strings; and tuples. All objects (except inums) were implemented as pointers, and their data type was determined by the block of memory into which it pointed, with a special case for small numbers (inums).

Programs could be interpreted or compiled. Compiled behavior was the same as interpreted except that local variables were lexical by default in compiled code, and no error checking was done for inline operations such as CAR and CDR. The Ncomplr compiler (mid-1970s) introduced fast numeric support to the Lisp world, generating machine instructions for arithmetic rather than calling interpretive routines which dispatched on data type. This made Lisp arithmetic comparable in speed to Fortran
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

 for scalar operations (though Fortran array and loop implementation remained much better).

The original version was limited by the 18-bit word address of the PDP-10, and considerable effort was expended in keeping the implementation lean and simple. Multics Maclisp had a far larger address space, but was expensive to use. When the memory and processing power of the PDP-10
PDP-10
The PDP-10 was a mainframe computer family manufactured by Digital Equipment Corporation from the late 1960s on; the name stands for "Programmed Data Processor model 10". The first model was delivered in 1966...

 were exceeded, the Lisp Machine
Lisp machine
Lisp machines were general-purpose computers designed to efficiently run Lisp as their main software language. In a sense, they were the first commercial single-user workstations...

 was invented: Lisp Machine Lisp
Lisp Machine Lisp
Lisp Machine Lisp is a dialect of the Lisp programming language, a direct descendant of Maclisp, and was initially developed in the mid to late 1970s as the systems programming language for the MIT Lisp machines. Lisp Machine Lisp was also the Lisp dialect with the most influence on the design of...

 is the direct descendant of Maclisp. Several other Lisp
Lisp programming language
Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older...

 dialects were also in use, and the need to unify the community resulted in the modern Common Lisp
Common Lisp
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...

 language.

Name

MACLISP was named for Project MAC, and is unrelated to Apple's Macintosh ("Mac") computer, which it predates by many years. The Lisp systems for the Macintosh, MCL
Macintosh Common Lisp
Macintosh Common Lisp is an implementation and IDE for the Common Lisp programming language. Various versions of MCL run under Mac OS and Mac OS X....

and Clozure CL
Clozure CL
Clozure CL is a Common Lisp implementation. It implements the full ANSI Common Lisp standard with several extensions...

(formerly OpenMCL), have no particular similarity to Maclisp. Texas Instruments and Symbolics both marketed NuBus
NuBus
NuBus is a 32-bit parallel computer bus, originally developed at MIT as a part of the NuMachine workstation project. The first complete implementation of the NuBus and the NuMachine was done by Western Digital for their NuMachine, and for the Lisp Machines Inc. LMI-Lambda. The NuBus was later...

-based LISP machine coprocessor cards for the Macintosh, but these do not run MACLISP.

External links

  • Maclisp Reference Manual (1979) by David Moon
    David Moon
    David A. Moon is a programmer and computer scientist, known for his work on the Lisp programming language and being one of the founders of Symbolics.-Projects:* CLOS* MIT* Symbolics, where he developed generational garbage collection algorithms...

  • The Revised Maclisp Manual (1983) by Kent Pitman
    Kent Pitman
    Kent M. Pitman is the President of and has been involved for many years in the design, implementation and use of Lisp and Scheme systems. He is often better known by his initials KMP.Kent Pitman is the author of the Common Lisp Condition System...

  • The Multics MACLISP compiler (1977) by Bernard Greenberg
    Bernard Greenberg
    Bernard S. Greenberg is a programmer and computer scientist, known for his work on Multics and the Lisp machine.-Projects:In 1978, Greenberg implemented Multics Emacs using Multics Maclisp...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK