[Prev][Next][Index][Thread]

Re: Why Prolog and CBV?



Date: 	Mon, 11 Nov 1991 11:27:57 PST

There are three reasons I would avoid programming in a call-by-name programming
language (and would usually avoid simulating call-by-name in a c-b-v language).
All are probably somewhat applicable to PROLOG, though maybe not to the same
extent:

1. (John Mitchell mentioned this)  I dislike purely applicative languages,
though I often write large sections of a program in an applicative style.  In
the presence of imperative constructs, predictability of evaluation order is
important.  Completeness doesn't matter much.

2. Predictability of performance.  In my experience, it gets very difficult to
predict resource requirements of programs that rely on lazy evaluation.  Even
termination properties are much more subtle.  (In the applicative case, I could
stick to programs that terminate with call-by-value.  But then I wouldn't have
gained anything.)

3. Performance (as was mentioned).

Hans-J. Boehm