[net.lang] Compiler vs Interp...

bhyde (03/24/83)

#N:inmet:4700005:000:2097
inmet!bhyde    Mar 22 22:55:00 1983


Interpreter vs compiler seems to be one of the top ten dialectics in
computing.  The phase "why don't they just..." plays an important role
in this conversation.  The following coments are unwound from the head
of a person that just spent an hour interactively tracing thru a very
large lisp program to discover that "hold" should have been "holds" so
that the pattern match could succeed.

Excepting interlisp, for the moment, that bug, the fault of a noise
filled input device (my fingers), would not have been found in any
interpreter I have ever seen.  Why, recall interlisp, an interpretive
system that incrementally does some amount of consistency checking
and brought to you by the people who really like huge personal computers

Consistency checking, declared assertions, strong typing, type
infrencing, one finds them only in compiler base systems. This seems to
be because incremental versions of such things are very hard to
author/design, and require big dumb data structures.

Declaritive statements, assertions about things in ones programs, are
very very very very good programming practice. Interactive programers
learn this late, and many of them seem to view declarations with
suspision or distain.

Consistency is a pain and one wants it sparingly.  I like editing
my programs in a normal text editor because I often create very
unsyntaxtic texts as I edit up my program.

Well so I for one believe the debug loop will forever to
include a compile stage, will include phases like:
	type infrencing and overload resolution,
		"yeah X is a set of strings."
	data structure design and selection:
		"humm a hash table would do for X."
	low level coding selection:
		"gee lets code this up in C and
		 unwind all the runtime type checking."
	optimiser:
		"remove as much dumb code as possible."
	register allocator, machine code generator, and peephole optim.
		"who said they had enough cycles?"

For speed arround the loop I would be willing to remove some of the
latter steps, for speed around the loop I dream about the earlier
ones.
		Ben Hyde, intmet!bhyde, Intermetrics Inc.