DFKI Technical Memo-98-07
by Markus Perling
The RAWAM: Relfun-Adapted WAM Emulation in C
This work describes the C implementation of the Relfun-Adapted WAM (RAWAM). The RAWAM is an abstract machine tailored to the relational-functional language Relfun, designed and implemented on the basis of the Warren Abstract Machine (WAM). Its goal is to replace an older LISP-implemented Relfun WAM by delivering comparable functionality at higher speed. The RAWAM implementation is introduced by reference to Hassan Aït-Kaci's book "Warren's Abstract Machine: A Tutorial Reconstruction", and the present work will emphasize the differences and extensions w.r.t. this book. These include an assembler, an optimizer, a rudimentary module system, a more flexible realization of the standard WAM memory layout, as well as Relfun-specific extensions for functional and relational builtins, sorts, generalised indexing, and a simple higher-order facility. The implementation of the RAWAM will be described in terms of pseudo code and schematic patterns for the data structures. A relational-functional benchmark revealed a speed-up factor of 20-30 of the RAWAM compared to the older WAM.
This document is available as Postscript.
The next abstract is here, and the previous abstract is here.
Note: This page was written to look best with CSS stylesheet support Level 1 or higher. Since you can see this, your browser obviously doesn't support CSS, or you have turned it off. We highly recommend you use a browser that supports and uses CSS, and review this page once you do. However, don't fear, we've tried to write this page to still work and be readable without CSS.