Hi,
Interrestingly Prolog nearly had a "Jazelle":
Meanwhile, in Oxford I made contact with Tim [Robinson]
from High Level Hardware, who had developed a microcoded
workstation called the Orion (there is a good Wikipedia
article on this machine). Tim wanted a Prolog system for
the Orion, so I gave him the Prolog-X reference
implementation. He microcoded it, and we reckoned
it would have amazing performance because of that.
However, several simultaneous events conspired to
halt the microcoded Prolog on the Orion.
https://www.softwarepreservation.org/projects/prolog
Derived from Prolog-X, so basically from ZIP.
Bye
Mild Shock schrieb:
Hi,
Jeff Barnet might have a point:
Fran's specialty was bring graph theory into computer development
although he sounds boring. Prolog is very
weak when using graph theory to code generation.
Even Prolog Cafe is based on WAM, and not LLVM.
WAM is linear code, LLVM sees code as graph
of blocks. Here is an example:
entry:
%cond = icmp eq i32 %x, 0
br i1 %cond, label %if_zero, label %if_nonzero
if_zero:
; do something
br label %merge
if_nonzero:
; do something else
br label %merge
merge:
%val = phi i32 [0, %if_zero], [1, %if_nonzero]
ret i32 %val
Its not the AST of the source code, but the IR,
i.e. internal representation after some AST
processing.
Today I was wrestling quite a number of hours,
to figure out whether liveness analysis can
be done in one pass. My Prolog system Dogelog
Player uses two passes, so that assertz/1 is
a little slow. Maybe I implement a fast path
without the liveness analysis for the
dynamic database, to speed it up.
Bye
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)