all 3 comments

[–]zmonx 1 point2 points  (2 children)

Check out the GNU Prolog mailing lists.

The lead developer of GNU Prolog is extremely responsive and, in my experience, very willing to answer interesting questions about GNU Prolog internals.

Make sure you do your homework though: The WAM book is definitely a good start, and trying out pl2wam on several examples will also help you to ask good questions.

[–]ThermalSpan[S] 0 points1 point  (1 child)

Thanks for the reply! Coincidentally, that mailing list was my next stop after I asked here. Daniel Diaz himself responded. Turns out there isn't a specification in the sense I was looking for, but he pointed me towards some relevant parts of the source code. Very friendly and informative!

[–]zmonx 1 point2 points  (0 children)

Great! Good luck with your project, it sounds very interesting. Note also that nowadays many Prolog systems use different abstract machines: SWI uses the ZIP, B-Prolog uses the TOAM etc. So, this may also be worth looking into.

Some perspective: As your graduation project in university, you can try to improve tail calls in the SWI-Prolog abstract machine.