home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / lang / lisp / 3106 < prev    next >
Encoding:
Text File  |  1992-12-17  |  4.3 KB  |  106 lines

  1. Newsgroups: comp.lang.lisp
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!caen!spool.mu.edu!cass.ma02.bull.com!pluto.uk03.bull.co.uk!bbirch
  3. From: bbirch@hemel.bull.co.uk (Bill Birch)
  4. Subject: Re: Yet another Lisp Interpreter Available (RefLisp) Long
  5. Message-ID: <1992Dec17.200901.20942@uk03.bull.co.uk>
  6. Sender: @uk03.bull.co.uk
  7. Nntp-Posting-Host: brno
  8. Organization: Bull HN UK
  9. References: <1992Dec11.131657.19196@uk03.bull.co.uk> <1gk60iINNjg8@iraul1.ira.uka.de>
  10. Date: Thu, 17 Dec 92 20:09:01 GMT
  11. Lines: 93
  12.  
  13. voss@i40s16.ira.uka.de (Stefan Voss) writes:
  14.  
  15. >Can you shortly describe the features of RefLisp ?
  16.     - RefLisp is not Common Lisp (CL), there are already plenty of 
  17.       good, free Common Lisps available.
  18.  
  19.     - RefLisp has reference counting garbage collection, that means
  20.       memory is reclaimed as soon as it is un-used. It is a "non-stop"
  21.       system, in that there is never any halt for garbage collection (GC).
  22.       This means that you can write programs which rely on a deterministic
  23.       response time. For example there is a demo program: "clock.lsp"
  24.       which draws an analogue clock-face, and the hands move every
  25.       clock tick, without stopping. I think if you tried to do this
  26.       with a GC interpreter, every so often the clock would stop 
  27.       working while the interpreter cleaned up memory. There
  28.       is also a very basic flight simulator in Lisp on the RefLisp 
  29.       distribution, it draws the track an aircraft might make on
  30.       a radar screen. 
  31.  
  32.       Another example is in a
  33.       drawing program "gob.lsp"; there is Lisp code which does
  34.       rubber-banding. The line follows the mouse movement. If a 
  35.       GC system was used, the mouse-following would probably stop 
  36.       occasionally during GC, leaving the user somewhat bewildered!
  37.       RefLisp collects garbage on the fly, therefore this never happens, 
  38.       so you get a responsive User Interface. In theory, one could write 
  39.       a playable space-invaders game in RefLisp. [I would if I had time.]
  40.  
  41.       On a small PC with limited memory, a GC system would 
  42.       be continually running out of memory resulting in a garbage
  43.       collection. Since each GC takes some time, my guess is that
  44.       the interpreter would spend most of its time in the GC.
  45.       By contrast, RefLisp would only do garbage collection
  46.       when required, and should therefore be faster.  (I have no proof 
  47.       for this, just a hunch based on experience with Cambridge Lisp for
  48.       the Sinclair QL, a 64kbyte home computer). 
  49.  
  50.       Reference-counting (as implemented in RefLisp) also makes it
  51.       relatively easy to convert from Lisp to 'C'. This is because
  52.       any foreign C program can mark Lisp objects and release them
  53.       when finished. The reference-count works like a PV semaphore,
  54.       so any module has access to garbage collection. I think
  55.       is quite trivial to embed RefLisp into major 'C' programs. 
  56.       For example there is a RefLisp binding for Tuxedo 
  57.       (a Transaction Processing Monitor). 
  58.       
  59.       So to sum up, RefLisp lets you play around with algorithms which 
  60.       demand a deterministic response time.
  61.  
  62.     - RefLisp is shallow binding.
  63.  
  64.     - it's a "small" Lisp system, ie there is no compiler, nor
  65.       are there 1000s of in-built functions.
  66.  
  67.     - RefLisp is just a small portable system for experimenting with 
  68.       reference-counting garbage collection. 
  69.  
  70. >How close is it to Common Lisp ? 
  71.     Close enough to run under-graduate type examples from 
  72.     introduction texts to Common Lisp.
  73.  
  74.     Reflisp does implement: ' ` , ,@ #' &rest &optional
  75.     and a few other important CL features. At present most CL 
  76.     functions are provided in Lisp source form, dolist etc 
  77.  
  78. What are the differences ?
  79.     
  80.     Without wanting to offend anyone, CL is huge, RefLisp is
  81.     tiny.  RefLisp does not implement even a small fraction of CLtL2.
  82.  
  83.     RefLisp is shallow binding, ie everything has dynamic scope.
  84.  
  85.     Reflisp has no Compiler
  86.  
  87.     RefLisp makes no distinction between symbol-values and function-values,
  88.     a symbol is either but not both.
  89.  
  90.     A symbol can have an s-expression as it's print name.
  91.     
  92.     There are some optional extensions which are not-standard.
  93.  
  94. Please, email me for more details.
  95.  
  96. Best Wishes for the season,
  97.  
  98. Bill
  99. --
  100.  Bill Birch                 |    B.Birch@uk03.bull.co.uk
  101.  Bull Info. Sys. Ltd.       |       Bull Tel: 773 4770
  102.  Maxted Road,                 |    Bull Mail: HM14 UK03 
  103.  Hemel Hempstead,            |    Tel: +44 442 884770
  104.  HERTS, HP2 7DZ, U.K.             |    Fax: +44 442 884570
  105.                 Aviate, Navigate, Communicate...
  106.