From: ······@bellatrix.uucp
Subject: Comparing symbolic languages with imperative languages
Date: 
Message-ID: <28112@ucbvax.BERKELEY.EDU>
  Does anyone know of any comparisons of algorithms implemented in symbolic
languages (i.e. Prolog/Lisp) without any special annotations versus in an
imperative language?  This involves writing the algorithm in a natural style
in both languages, and using high-performance (perhaps experimental) compilers
to compare the execution speeds.  The results depend on many factors:
(1) the choice of algorithm, (2) programming style, (3) the quality of the
compilers, and (4) the suitability of the architecture for the symbolic
language.
  I know of one comparison done at Argonne in which a theorem prover was
written in Prolog and in C.  The C version consistently outperformed the
Prolog version by an order of magnitude.  This was due to (1) the poor
implementation of arrays in the Prolog version and (2) the awkwardness of the
architecture for Prolog (I believe it was a Sun-3).  Has anyone done any other
such comparisons?
  Present-day general-purpose architectures will naturally favor the imperative
language in a comparison of this sort.  This is because the traditional notion
of "general-purpose" architecture is not truly general-purpose.  It emphasizes
numeric calculation and does not do the things that symbolic languages require,
such as tag manipulation and multiway branching.  Therefore I propose that the
notion of "general-purpose" be extended to include support for symbolic
languages.
  At Berkeley, we are developing such an architecture for the Prolog language.
We are designing it from the start as a complete system, i.e. compiler,
instruction set architecture, and (single-chip) implementation are being
developed together with feedback in all directions.  In this way we hope to
overcome some of the limitations of previous implementations of Prolog.
  Thanks for any pointers,

	Peter Van Roy
	······@bellatrix.berkeley.edu
From: John B. Nagle
Subject: Re: Comparing symbolic languages with imperative languages
Date: 
Message-ID: <18123@glacier.STANFORD.EDU>
In article <·····@ucbvax.BERKELEY.EDU> ······@bellatrix.uucp () writes:
>  At Berkeley, we are developing such an architecture for the Prolog language.
>We are designing it from the start as a complete system, i.e. compiler,
>instruction set architecture, and (single-chip) implementation are being
>developed together with feedback in all directions.  In this way we hope to
>overcome some of the limitations of previous implementations of Prolog.

      The Japanese Fifth Generation effort was supposed to do exactly this.
Their original list of goals, circa 1984, included the development of a 
"Prolog engine", capable of >1M "logical inferences per second" (i.e.
Prolog statement executions).  Whatever happened to that effort?

				John Nagle