Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Maclisp

From Wikipedia, the free encyclopedia
Dialect of Lisp programming language
Not to be confused withMacintosh Common Lisp.
Maclisp
ParadigmsMulti-paradigm:functional,procedural,reflective,meta
FamilyLisp
Designed byRichard Greenblatt
Jon L. White
DeveloperMIT:Project MAC
First appearedJuly 1966; 59 years ago (1966-07)
Typing disciplinedynamic,strong
Implementation languageAssembly language,PL/I
PlatformPDP-6,PDP-10
OSIncompatible Timesharing System,TOPS-10,TOPS-20,Multics
Filename extensions.lisp,.fasl
Influenced by
Lisp 1.5
Influenced
Common Lisp,Emacs Lisp

Maclisp (orMACLISP, sometimes styledMacLisp orMacLISP) is aprogramming language, adialect of the languageLisp. It originated at theMassachusetts Institute of Technology's (MIT)Project MAC[1] (from which it derived its prefix) in the late 1960s and was based on Lisp 1.5.[2]Richard Greenblatt was the main developer of the original codebase for thePDP-6;[1] Jon L. White was responsible for its later maintenance and development. The nameMaclisp began being used in the early 1970s to distinguish it from otherforks of PDP-6 Lisp, notablyBBN Lisp.

History

[edit]

Maclisp is a descendant ofLisp 1.5.[3] Maclisp departs from Lisp 1.5 by using avalue cell to access and store the dynamic values ofvariables;[4] Lisp 1.5 used a linear search of an association list to determine a variable's value.[5] The Maclisp variable evaluation is faster but has different variable semantics. Maclisp also employed reader macros to make more readableinput andoutput, termedinput/output (I/O). Instead of entering(QUOTE A), one could enter'A to get the sames-expression. Although both implementations put functions on the property list, Maclisp uses different syntax to define functions.[6] Maclisp also has a load-on-demand feature.[7]

Maclisp began onDigital Equipment CorporationPDP-6 andPDP-10 computers running theIncompatible Timesharing System (ITS); later it was ported to all other PDP-10 operating systems, for example,Timesharing / Total Operating System,TOPS-10 andTOPS-20. The original implementation was inassembly language, but a later implementation onMultics usedPL/I. Maclisp developed considerably in its lifetime. Major features[which?] were added which in other language systems would typically correspond to major release numbers.[dubiousdiscuss]

Maclisp was used to implement theMacsymacomputer algebra system (CAS) or symbolic algebra program. Macsyma's development also drove several features[which?] in Maclisp. TheSHRDLU blocks-world program was written in Maclisp, and so the language was in widespread use in theartificial intelligence (AI) research community through the early 1980s. It was also used to implement other programming languages, such asPlanner andScheme. Multics Maclisp was used to implement the first Lisp-basedEmacs.

Maclisp was an influential Lisp implementation, but is no longer maintained actively. It now runs on PDP-10emulators and can be used for experimenting with early AI programs.

Timeline of Lisp dialects
19581960196519701975198019851990199520002005201020152020
 LISP 1, 1.5,LISP 2(abandoned)
 Maclisp
 Interlisp
 MDL
 Lisp Machine Lisp
 Scheme R5RS R6RS R7RS small
 NIL
 ZIL (Zork Implementation Language)
 Franz Lisp
 muLisp
 Common Lisp ANSI standard
 Le Lisp
 MIT Scheme
 XLISP
 T
 Chez Scheme
 Emacs Lisp
 AutoLISP
 PicoLisp
 Gambit
 EuLisp
 ISLISP
 OpenLisp
 PLT Scheme Racket
 newLISP
 GNU Guile
 Visual LISP
 Clojure
 Arc
 LFE
 Hy

Characteristics

[edit]

Maclisp began with a small, fixed number ofdata types:cons cell, atom (later termedsymbol),integer, andfloating-point number. Later additions included:arrays, which were never first-class data types;arbitrary-precision integers (bignums);strings; andtuples. All objects (except inums) were implemented aspointers, 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 beinterpreted orcompiled. Compiled behavior was the same as interpreted except that local variables were lexical by default in compiled code, unless declared SPECIAL,[8] and no error checking was done for inline operations such as CAR and CDR. The Ncomplr compiler (mid-1970s) introduced fast numeric support to Lisp languages, generatingmachine code (instructions) for arithmetic rather than calling interpretive routines which dispatched on data type. This made Lisp arithmetic comparable in speed toFortran for scalar operations (though Fortran array and loop implementation remained much faster).

The original version was limited by the 18-bit wordmemory 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 costly to use. When the memory and processing power of thePDP-10 were exceeded, theLisp Machine was invented:Lisp Machine Lisp is the direct descendant of Maclisp. Several otherLisp dialects were also in use, and the need to unify the community resulted in the modernCommon Lisp language.

Name

[edit]

Maclisp was named forProject MAC, and is unrelated to Apple'sMacintosh (Mac) computer, which it predates by decades or toJohn McCarthy. The various Lisp systems for the Macintosh have no particular similarity to Maclisp.[9]

References

[edit]
  1. ^abLevy, Steven (1984).Hackers: Heroes of the Computer Revolution. Doubleday.ISBN 0-385-19195-2.
  2. ^Project MAC Progress Report IV: July 1966 to July 1967(PDF) (Report). n.d. p. 19. Archived fromthe original(PDF) on March 8, 2016.The higher-level language used for most of the vision laboratory program is the PDP-6 LISP System. This system is based chiefly on the LISP 1.5 programming language, but has been extensively modified in a number of ways. These include many new functions and services, including facilities for linking with programs written in other languages.
  3. ^Moon 1974, p. 1
  4. ^Moon 1974, p. 47
  5. ^Lisp 1.5 p. 13, evaluating an atome in the environmenta is done with(cdr (assoc e a)). That involves a linear search of the association lista. A more involved description with global constants and errors is given on p. 71; it does a linear search of the property list before searching the association list.
  6. ^Maclisp usesdefun; Lisp 1.5 usesdefine.
  7. ^Moon 1974, p. 107; theautoload property.
  8. ^Pitman, Kent (December 16, 2007)."The Revised Maclisp Manual (The Pitmanual), Sunday Morning Edition".maclisp.info. HyperMeta, Inc. Declarations and the Compiler, Concept "Variables". RetrievedOctober 20, 2018.If the variable to be bound has been declared to be special, the binding is compiled as code to imitate the way the interpreter binds variables.
  9. ^Pitman, Kent (December 16, 2007)."The Revised Maclisp Manual (The Pitmanual), Sunday Morning Edition".maclisp.info. HyperMeta Inc. p. 1 FAQ q1. RetrievedOctober 20, 2018.Project MAC had nothing to do with the Apple "Mac". And neither did MACLISP.

External links

[edit]
Features
Object systems
Implementations
Standardized
Common
Lisp
Scheme
ISLISP
Unstandardized
Logo
POP
Operating system
Hardware
Community
of practice
Technical standards
Education
Books
Curriculum
Organizations
Business
Education
People
Common Lisp
Scheme
Logo
POP
Developer
People
Software
Multics-like
systems
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=Maclisp&oldid=1239255301"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp