Subject: Re: is there any app can compile lisp program to machine code?
From: Erik Naggum <>
Date: Sun, 24 Feb 2002 08:50:43 GMT
Newsgroups: comp.lang.lisp
Message-ID: <>

* (attonie)
| as i know, lisp is a interpretion language, thus the speed is slow, so
| is there any program can compile lisp program to machine code?

  You must be thinking of Scheme, a toy Lisp.  Common Lisp, a real Lisp,
  has always had compilers.  Matter of fact, even in 1959, Lisp had a
  compiler.  It is just that the toy Lisps that are used in education and
  other forms of confusion are implemented by people who want to prove some
  academic point -- and these all use Scheme.  There is significant merit
  to learning about computers from a higher-level point of view than, say,
  machine instructions and stuff, and Scheme offers a way to look at Lambda
  calculus.  More of this is visible with interpreted code than with
  compiled machine language, so for purpose of study, Scheme is usually an
  interpreted Lisp.

  Lisp has, however, always provided an interactive programming environment
  and many toolmakers in the history of computing have made interactive
  environments using interpreted languages, because it is _so_ much easier
  than writing compilers that work with interactive environments, but all
  this means is that people who are not very smart never gave you the power
  of an interactive environment combined with the speed of compiled machine
  code.  The people who make Common Lisp environments are much smarter than
  those who stay with interpreted environments, so they provide you with
  this particular combination as a matter of course.

  Now, over the years, a lot of people who have been overexposed to Scheme
  and to lazy or stupid people and their toy implementations of Scheme have
  come to Common Lisp with the severely misguided notions that Lisp is
  slow, Lisp is interpreted, Lisp is a memory hog, etc, all because they
  have gathered all their experience about Lisp from incompetent or lazy
  people.  What you have actually seen is that even incompetent and lazy
  people can make some useful Lisp environments that can be really nifty
  compared to the compile-only environments of other toy languages.  This
  should be an important clue.  It is, sadly, often missed completely.

  It is like those LEGO robot kits for modern kids (of any age :), with
  which you can do a lot of fascinating stuff with building blocks and a
  computer -- but it is of course no match for industrial robots, and
  anyone who went into an automated machine shop and thought he knew how
  robots were made, would be laughed at and kicked out.  The nature of the
  "virtual reality" on the Net provides no clues to what most people need
  visual information to get, namely that their assumptions are all wrong.
  When you start an obvious falsehood with "as I know", it it very easy to
  think you are one of those guys whose assumptions are set in stone and
  for whom reality had better fit nicely with them, or else.  So it is very
  easy to laugh at you and kick you out because of this.  However, it is up
  to you whether you accept that what you have known up to now is wrong (or
  applies only to a very small fragment of reality, not to be confused with
  larger fragments or the whole thing) and are prepared to listen to people
  who know a lot more about this than you do, or whether you will insist
  that you had a right to believe what you did, which a lot of people will
  not grant you, and be laughed and tried to be kicked out.

  If you really want the toy Lisp, go ask in comp.lang.lisp.toy, probably
  known at your newsserver as comp.lang.scheme.  Some Scheme freaks also
  offer compiled versions, whatever the point of that waste would be.  As
  you might infer, Scheme is the annoying little kid brother who always
  tags along and ruins your day, and Scheme freaks have an annyoing habit
  of trying to make it on their own, only to blame real Lisp when it fails.
  I do not think you _really_ want the toy Lisp, do you?  :)

  Visit and look for links to commercial vendors who offer
  their excellent environments in trial versions or to free, but much
  smaller environments that require a slightly more educated user to enjoy
  from the start.  Note that these are not "apps", but environments.

  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.