4 ms·
Here's an account by McCarthy of the early history: http://www-formal.stanford.edu/jmc/history/lisp/lisp.html http://www-formal.stanford.edu/jmc/history/lisp/li
by pg314 10y ago
Here's an account by McCarthy of the early history:
http://www-formal.stanford.edu/jmc/history/lisp/lisp.html http://www-formal.stanford.edu/jmc/history/lisp/lisp.html
- btilly 10y agoThat is the account that I had read before. It only talks about Steve Russell's first implementation and makes it sound like a mechanical transform into reality of a theoretical implementation. However Wikipedia says that there is a second, and the person that I was responding to indicated that Steve Russell had to create a garbage collector to make it work. Those are things that I had not previously heard, and I'm curious about.
- rntz 10y agoI have no reason to believe that Russell wrote a garbage collector for the first Lisp implementations. I used the adverb "properly" specifically because it's possible to implement Lisp without GC, but this isn't really a viable approach long-term. So to make Lisp practical, significant work on GC had to be (and was) done.
- btilly 10y agoMy understanding is that the first version of Lisp with true GC was Scheme. Which was, not coincidentally, the first version of Lisp with lexical scope and closures. The first implementation of Lisp used reference counting.
- DonHopkins 10y agoBIBOP is the dynamically expandable version of MACLISP, the SAIL standard MACLISP. Essentially, the main advantage of BIBOP is that whenever one of the expandable spaces runs out of space, BIBOP requests a larger core allocation from the monitor and the delinquent space grows in the allocated memory. December 1973; updated March 1974 The (in)famous "Bibop" (pronounced "bee-bop") LISP scheme has been available for some time now and seems to be more or less reliable. Bibop means "BIg Bag Of Pages", a reference to the method of memory management used to take advantage of the memory paging features of ITS. The average LISP user should not be greatly affected in converting to this new LISP (which very eventually will become the standard LISP, say in a few months). http://www.saildart.org/BIBOP.RPG[UP,DOC] http://www.saildart.org/BIBOP.RPG[UP,DOC]
- bogomipz 10y agoI am confused by your comment, reference counting is a form of GC. Could you elaborate?
- rntz 10y agoOften reference counting is considered distinct from GC; sometimes the term "tracing GC" is used to disambiguate. Refcounting & tracing GC have the same purpose, but different implementation techniques and performance implications; and perhaps more importantly, reference counting can't collect objects which cyclically reference one another.
- lispm 10y agoThat's strange. McCarthy describes a mark&sweep GC. http://www-formal.stanford.edu/jmc/recursive/node4.html http://www-formal.stanford.edu/jmc/recursive/node4.html