Warren’s Abstract Machine (WAM) bezeichnet in der Informatik einen 1983 von David H. D. Warren spezifizierten idealen Prozessor, dessen Maschinensprache als Zielsprache für Prolog-Übersetzer oder -Interpreter dient. Man spricht auch von einer virtuellen Maschine, da es den WAM-Prozessor nicht real als Hardware (z. B. in Silicium gefertigt) gibt, sondern nur als Software.
Nach der Übersetzung in WAM-Code können Prolog-Programme von einer WAM-Implementierung auf dem Laufzeitsystem ausgeführt werden, also einem WAM-Interpreter, der diesen idealen Prozessor simuliert. Alternativ kann wie bei GNU Prolog der WAM-Code als Zwischencode benutzt werden, der wiederum in einen weiteren Zwischencode namens mini-assembly übersetzt wird, bevor daraus die Maschinensprache des Zielprozessors generiert wird.
Literatur
- Warren, David H. D.: An abstract Prolog instruction set (PDF; 269 kB), Technical Note 309, SRI International, Menlo Park, CA, October 1983.