Subject: Re: Difference between LISP and C++
From: Erik Naggum <>
Date: 24 Oct 2002 14:59:43 +0000
Newsgroups: comp.lang.lisp
Message-ID: <>

* 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.