NIL (programming language): Difference between revisions

Content deleted Content added
«188 words changed» adding in a gabriel reference; fmt; cpedit
Nilboy (talk | contribs)
m Changes to biblio
Line 1:
{{dablink|This is about the programming language. For other uses see [[Nil]].}}
 
'''NIL''' was a 32-bit<ref name=GABRIEL>{{cite book
'''NIL''' was a 32-bit<ref name="Gabriel"/> implementation of [[Lisp (programming language)|Lisp]] developed at [[Massachusetts Institute of Technology|MIT]] and intended to be the successor to [[Maclisp|MacLisp]]. <ref name=STEELE>{{cite web | title=The evolution of Lisp| author=Guy L Steele Jr, Richard P Gabriel | url=http://www.dreamsongs.com/NewFiles/HOPL2-Uncut.pdf | accessdate=2006-10-12}}</ref> NIL stood for "New Implementation of LISP", and was in part a response to [[Digital Equipment Corporation|DECs]] [[VAX]] computer. The project was headed by [[Jon L White]] <ref>{{cite web | title=Brief History of the Lisp Language| author=Kent M Pitman | url=http://www.lisp.org/table/Lisp-History.html | accessdate=2006-10-12}}</ref>, with a stated goal of maintaining compatibility with MacLisp whilst fixing many of the problems with the language.
 
==History==
The [[Lisp (programming language)|Lisp]] language was invented in [[1958]] by [[John McCarthy (computer scientist)|John McCarthy]] while he was at [[Massachusetts Institute of Technology|MIT]]<ref>{{cite web|title=History of LISP|author=Paul McJones|url=http://community.computerhistory.org/scc/projects/LISP/|accessdate=2006-10-12}}</ref>. From its inception, Lisp was closely connected with the [[artificial intelligence]] research community, especially on [[PDP-10]]<ref>The 36-bit word size of the [[PDP-6]]/[[PDP-10]] was influenced by the usefulness of having two Lisp 18-bit pointers in a single word. "The PDP-6 project started in early 1963, as a 24-bit machine. It grew to 36 bits for LISP, a design goal." [http://groups.google.com/group/alt.folklore.computers/browse_thread/thread/6e5602ce733d0ec/17597705ae289112] </ref> systems. Lisp was used as the implementation of the programming language [[Planner programming language|Micro Planner]] that was the foundation for the famous AI system [[SHRDLU]]. Lisp, in particular [[Maclisp|MacLisp]] (so called because it originated at MIT's project MAC) was also used to implement the [[Macsyma]] [[computer algebra system]]. In the [[1970s]], as AI research spawned commercial offshoots, the performance of existing Lisp systems became a growing issue.
 
Partly because of [[garbage collection (computer science)|garbage collection]] (NIL would use stop-and-copy garbage collection of its single [[Heap (data structure)|heap]] for [[Dynamic memory allocation|memory allocation]]<ref name="gabriel"/>)and partly because of its representation of internal structures, Lisp became difficult to run on the memory-limited stock hardware of the day. This led to the creation of [[LISP machine]]s: dedicated hardware for running Lisp environments and programs. An alternative was to use the more powerful commodity hardware which was becoming available, in particular the [[Digital Equipment Corporation|DEC]] [[VAX]].
 
NIl was an implementation of [[Lisp]] developed at [[MIT]] in the mid to late 1970s, and intended to be a modern successor to [[MacLisp]] that was suitable for running on stock hardware<ref name=STEELE/>, as opposed to [[Lisp machine Lisp]] for the Lisp machines.<ref name="gabriel">"Originally designed as the first modern Lisp dialect on stock hardware after the development of Lisp-machine Lisp at MIT, it went on to become one of the main influences on the design of Common Lisp." pg 63/294 of {{cite book
| last = Gabriel
| first = Richard P.
Line 15 ⟶ 8:
| url = http://www.dreamsongs.com/NewFiles/Timrep.pdf
| date = May 1985
| id = ISBN 0-262-07093-6; LCCN: 85-15161}} <!-- xiv, 285 p. ; 23 cm. Cambridge, Mass. --></ref> Since the usersimplementation of the [[MacsymaLisp (programming language)|Lisp]] programdeveloped representedat a[[Massachusetts largeInstitute potentialof user base for NIL, it was necessary that NIL would be a large, complex system,Technology|MIT]] and thatintended speed wouldto be imperative.the Forsuccessor example high-speedto [[bignumMaclisp|MacLisp]]s. was a requirement to support Macsyma, since NIL would be a failure with slow bignums.<ref name=STEELE>{{cite web | title=DanThe Weinrebevolution onof Lisp| author=Guy L Steele Jr, Richard P Gabriel NIL| url=http://www.paulgrahamdreamsongs.com/weinrebNewFiles/HOPL2-Uncut.htmlpdf | accessdate=2006-10-12}}</ref> Consequently NIL endedstood upfor with"New a large baseImplementation of VAXLISP", assemblyand language.was Thesein requirementspart leda response to a[[Digital veryEquipment aggressiveCorporation|DECs]] and[[VAX]] complexcomputer. optimizationThe strategy whichproject was appliedheaded prematurely,by with negative[[Jon resultsL on the finalWhite]] system.<ref name=SHIVERS>{{cite web | title=Brief History of Tthe Lisp Language| author=OlinKent M ShiversPitman | url=http://www.paulgrahamlisp.comorg/thisttable/Lisp-History.html | accessdate=2006-10-12}}</ref>, with a stated goal of maintaining compatibility with MacLisp whilst fixing many of the problems with the language.
 
==History==
The [[Lisp (programming language)|Lisp]] language was invented in [[1958]] by [[John McCarthy (computer scientist)|John McCarthy]] while he was at [[Massachusetts Institute of Technology|MIT]]<ref>{{cite web|title=History of LISP|author=Paul McJones|url=http://community.computerhistory.org/scc/projects/LISP/|accessdate=2006-10-12}}</ref>. From its inception, Lisp was closely connected with the [[artificial intelligence]] research community, especially on [[PDP-10]]<ref>The 36-bit word size of the [[PDP-6]]/[[PDP-10]] was influenced by the usefulness of having two Lisp 18-bit pointers in a single word. "The PDP-6 project started in early 1963, as a 24-bit machine. It grew to 36 bits for LISP, a design goal." [http://groups.google.com/group/alt.folklore.computers/browse_thread/thread/6e5602ce733d0ec/17597705ae289112] </ref> systems. Lisp was used as the implementation of the programming language [[Planner programming language|Micro Planner]] that was the foundation for the famous AI system [[SHRDLU]]. Lisp, in particular [[Maclisp|MacLisp]] (so called because it originated at MIT's project MAC) was also used to implement the [[Macsyma]] [[computer algebra system]]. In the [[1970s]], as AI research spawned commercial offshoots, the performance of existing Lisp systems became a growing issue.
 
Partly because of [[garbage collection (computer science)|garbage collection]] (NIL would use stop-and-copy garbage collection of its single [[Heap (data structure)|heap]] for [[Dynamic memory allocation|memory allocation]]<ref name="gabrielGABRIEL"/>)and partly because of its representation of internal structures, Lisp became difficult to run on the memory-limited stock hardware of the day. This led to the creation of [[LISP machine]]s: dedicated hardware for running Lisp environments and programs. An alternative was to use the more powerful commodity hardware which was becoming available, in particular the [[Digital Equipment Corporation|DEC]] [[VAX]].
 
NIl was an implementation of [[Lisp]] developed at [[MIT]] in the mid to late 1970s, and intended to be a modern successor to [[MacLisp]] that was suitable for running on stock hardware<ref name=STEELE/>, as opposed to [[Lisp machine Lisp]] for the Lisp machines.<ref name="GABRIEL"/> "Originally designed as the first modern Lisp dialect on stock hardware after the development of Lisp-machine Lisp at MIT, it went on to become one of the main influences on the design of Common Lisp." (pg 63/294 of <ref name=GABRIEL/>) Since the users of the [[Macsyma]] program represented a large potential user base for NIL, it was necessary that NIL would be a large, complex system, and that speed would be imperative. For example high-speed [[bignum]]s was a requirement to support Macsyma, since NIL would be a failure with slow bignums.<ref>{{cite web | title=Dan Weinreb on NIL| url=http://www.paulgraham.com/weinreb.html|accessdate=2006-10-12}}</ref> Consequently NIL ended up with a large base of VAX assembly language. These requirements led to a very aggressive and complex optimization strategy which was applied prematurely, with negative results on the final system.<ref name=SHIVERS>{{cite web | title=History of T | author=Olin Shivers | url=http://www.paulgraham.com/thist.html | accessdate=2006-10-12}}</ref>
 
Concurrently with the effort to write NIL, a research group at [[Stanford University]] and