From Newsgroup: comp.lang.javascript
Hi,
A -C-WAM combines ideas from -C-calculus and Warren
Abstract Machine. We already made a compiler and
emulator, 100% written in Prolog, and we could
demonstrate is/2 and between/3. In this post we
introduce executors, written in the Dogelog Player
target host languages.
On the Prolog side we added packing the machine
code into 32-bit instructions. On the host targets
side, for Java, JavaScript and Python, we added a
-C-WAM virtual machine. Interestingly the Java based
machine can execute our testcase in 80 ms, while
GNU Prolog takes 200 ms.
Bye
See also:
Executing -C-WAM with Dogelog Player
https://medium.com/2989/cc7bd3e0b652
Mild Shock schrieb:
Hi,
We are currently setting sail to give Dogelog Player
a more janus faced backend. Until now we had only
one code compilation idea that realizes our Prolog
VM. With -C-WAM we add a second Prolog VM to the same
Prolog system, with the aim to use it for
specialized tasks.
Optimized for speed the -C-WAM is very primitive.
The compiler capitalizes that code blocks are
relocatable. The emulator dispatches -C-WAM in/1
and out/1 commands to the usual Prolog read and
write predicates. We could demonstrate a is/2
example and a between/3 example.
See also:
Emulating -C-WAM in Dogelog Player
https://medium.com/2989/de9cd29c7d37
Mild Shock schrieb:
Hi,
Dogelog Player is a Prolog system for JavaScript,
Python and Java targets. It has still some macOS
genes, since couple of years ago our development
environment featured a Mac Book. We recently did
a cross testing exercise for Dogelog Player on
a brand new Mac Neo.
In our Zoo of AI laptops we had to rank the Mac
Neo third. Still the Mac Neo, a beautifully silent
and affordable product, excells for example in
JavaScript and clearly leaves behind the other
Think ARM machine, since we couldnrCOt find a PyPy
Windows ARM build.
See also:
Dogelog Player on a A18 Everest
https://medium.com/2989/80bae0494236
Mild Shock schrieb:
Dear All,
We are happy to announce a new edition
of the Dogelog Player:
- Tabling Directive:
It turns out that our term expansion is fit
enough to provide a tabling directive table/1.
The directive will prepare a query and a answer
cache for the given predicate, as well as a
wrapper. The current version does not yet
realize tabling of non-wellfounded recursion.
- Hash Indexes:
The tabling does not use a table space separate
from the dynamic database, instead the caches
are realized through dynamic predicates. To
profit even more from our ground term sharing,
we now offer pre-computed hash indexes. For
large ground terms, the tabling mechanism
can then exhibit emergent local interning.
- Rubber Band:
The format/[2,3] predicates got a facelift and
we now support the rubber band ~`Ct and the
column margin ~N|. The challenge was to keep
the streaming behaviour, which we could keep
for the first rubber band separated segment.
A further challenge was scattering character
richtext, which the format specifiers
~defgq can produce.
Have Fun!
Jan Burse, https://www.herbrand.ai/ , 01.05.2026
--- Synchronet 3.22a-Linux NewsLink 1.2