vanroy@bellatrix.uucp (02/22/89)
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 vanroy@bellatrix.berkeley.edu
jbn@glacier.STANFORD.EDU (John B. Nagle) (02/22/89)
In article <28112@ucbvax.BERKELEY.EDU> vanroy@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