great quote about the "C" language

Tom Blenko blenko at rochester.UUCP
Wed Dec 7 15:56:49 AEST 1983


	  If you don't think minimizing the number of reserved words is
	  a good idea, try Lisp.  At 1000 or more reserved words (the
	  oblist), it's not always easy to avoid stepping on things,
	  and the results of a collision are usually quite mysterious.

	Foul!  There are very few reserved words in Lisp.  The
	conflicts with the oblist are no worse that function name
	conflicts in the C library. The only cases that I can think of
	where strange things happen are when you re-bind some of the
	atoms that have special significance to the interpretor (input
	or output radix, for example).  You can redefine a procedure
	and cause a system function to break, but you can also do the
	same thing to a function in the C library.  The conflicts are
	an attribute of the large size of the support library, not of
	the language.

Oh, come on! If you want to argue about reserved words in Lisp, the
only argument is whether there are any reserved words at all.  Maybe t
and nil.  The oblist contains names from the global name space. If you
reference a variable without declaring it, it is treated as global. If
you don't want to keep track of which global names are used by the
interpreter, declare local variables (that's good programming practice
anyway). Let's not make this any more complicated than it really is.

	  As for the compiler "probably" doing the right thing, I don't
	  think there's *any* existing portable language in which the
	  compiler can be guaranteed to give consistent results - 36
	  bits is different from 32, no matter how you try to disguise
	  it...

	Lisp is just such a language.  It allows you to deal with
	abstract objects that have little relation to the underlying
	architecture.  I wrote a fairly large language interpretor in
	Lisp in 1969.  It ran under Lisp 1.6 on a PDP-10.  I was able
	to port it to Franz Lisp on a VAX in 1983 with about one day's
	effort.  The changes were to eliminate some non-standard
	function references that I shouldn't have used in the first
	place.  The resulting code would run on the original PDP-10
	system with only a few lines of changes.

Fine. How about your floating point arithmetic? Lisp is more portable
than many other languages. No, it's not perfectly portable. So what's
new?



More information about the Comp.lang.c mailing list