Subject: Re: Difference between LISP and C++ From: Erik Naggum <erik@naggum.no> Date: 24 Oct 2002 14:59:43 +0000 Newsgroups: comp.lang.lisp Message-ID: <3244460383000601@naggum.no> * Joe Marshall | (In C, a missing function reference, if you can generate one, usually | ends up with the processor attempting to execute data. [...]) It is quite easy to produce binaries with dangling function references -- just compile it with a different version of the dynamically linked/shared object libraries. The program loader and linkage editor will then most likely croak on you when the program is attempted loaded by a process, but you could conceivably have redirected the function call to a debugger that would break at this point just like Common Lisp environments do. I think a good understanding of the loading, linking and function calling mechanisms in C programs in the modern Unix environment is prerequisite reading for someone who wants to learn how /similar/ the loading, linking and function calling mechanisms in Common Lisp. If you do not understand how the C world actually works, the misconceptions come back to hurt you real bad when you try to understand Common Lisp. If you get it right in the C world, the Common Lisp way is just a matter of delaying some of the operations, and a difference in timing is not a fundamental difference that should cause any sort of difficulty in understanding. Therefore, if someone has problems understanding the Common Lisp way and compare to how different it is from the C way, must be assumed to be ignorant of the C way, as well. The same probably goes for Java and C++, but I have not had any direct contact with people who have been led as much astray by these languages and their runtime environments, so I would only speculate and extrapolate, and this is the subject of research, not opinionating. -- Erik Naggum, Oslo, Norway Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.