
SWI-Prolog es una herramienta basada en una máquina virtual muy sencilla de Prolog llamada ZIP que define solamente 7 instrucciones.
Prolog puede compilarse fácilmente en este lenguaje y el código de máquina abstracto es fácilmente descompilado en Prolog. Como también es posible conectar un depurador de 4 puertos estándar en la máquina virtual no hay ninguna distinción entre el código compilado e interpretado.
Además de simplificar el diseño del propio sistema Prolog, este enfoque tiene ventajas para el desarrollo del programa: el compilador es simple y rápido, el usuario no tiene que decidir de antemano si la depuración es necesaria y el sistema sólo se ejecuta ligeramente más lento cuando está en modo de depuración.