DFKI Technical Memo-98-07



Language: English

by Markus Perling

The RAWAM: Relfun-Adapted WAM Emulation in C

49 Pages


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.

DFKI-Bibliothek (bib@dfki.uni-kl.de)

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.