Subject: Re: is there any app can compile lisp program to machine code? From: Erik Naggum <email@example.com> Date: Sun, 24 Feb 2002 08:50:43 GMT Newsgroups: comp.lang.lisp Message-ID: <firstname.lastname@example.org> * email@example.com (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 www.lisp.org 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.