[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Extending the address space of MIT Cscheme (long reply)



re:  . . . What's wrong with
    coding a commonly used procedure in a language which will make it more
    efficient?  Please show me a Lisp which can compete with C in this
    regard.  If you manage to do this, I strongly suspect that the number
    of arcane declarations in the Lisp code will make it at least as
    unreadable as C, so you're no better off.

Two points:

  (1) nothing is wrong with coding an essentially numerical algorithm
      in the language classically used to code numerical algorithms
      (such as FORTRAN/ALGOL/ADA/PASCAL/C etc).  That's one reason why 
      "industrial strength" Common Lisps have a convenient foreign
      function interface.  [see article in most recent issue of Lisp
      Pointers]

  (2) Here are names of two generally available Lisps which can frequently 
      compete with C in writing numerical code like FFT:  PDP10 MacLisp 
      and Lucid Common Lisp.   Furthermore, I challenge your presumption
      that any such Lisp-written code will be unintelligible due to
      "arcane" declarations [mostly I challenge the underlying assumption
      (if in fact you are making it) that *any* declarations in Lisp are
      "arcane".]  While it is true that most variables in such a program
      will be declared of type fixnum, or float, or array-of-float (and
      some function types will be proclaimed too), the number of source 
      lines of code devoted to such declarations, compared to the total 
      amount of source code, is down in the noise.


Looking ahead in the mails, I see that GLS has already sent out references
to the early successes of MacLisp (1973!).  It would be difficult for me
to say more about Lucid Common Lisp now without appearing to be self-
serving; suffice it to say that you could contact me privately, or RPG@SAIL,
and ask for substantiation of the above statements.


-- JonL --


P.S. I suspect that ZetaLisp on a Lisp Machine produces numerical code
     that competes with C/FORTRAN on such machines (to my knowledge, 
     only Symbolics has such compilers -- but I really don't know about
     TI and the now-defunct LMI).  You must have meant "a Lisp which can 
     compete with C"  on stock hardware.