From ... Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed1.ulv.nextra.no!nextra.com!uio.no!nntp.uio.no!ifi.uio.no!not-for-mail From: Erik Naggum Newsgroups: comp.lang.lisp Subject: Re: Difference between LISP and C++ Date: 24 Oct 2002 14:59:43 +0000 Organization: Naggum Software, Oslo, Norway Lines: 32 Message-ID: <3244460383000601@naggum.no> References: <3243777529201772@naggum.no> <87jr9.16182$wU3.1470073@news0.telusplanet.net> <3DB62D5E.5030800@nyc.rr.com> <3DB750F9.1010805@nyc.rr.com> <8z0oufbs.fsf@ccs.neu.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: maud.ifi.uio.no 1035471583 7335 129.240.65.5 (24 Oct 2002 14:59:43 GMT) X-Complaints-To: abuse@ifi.uio.no NNTP-Posting-Date: 24 Oct 2002 14:59:43 GMT Mail-Copies-To: never User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 Xref: archiver1.google.com comp.lang.lisp:44546 * 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.