A Virtual Machine for Functional Logic Computations

by Sergio Antoy, Michael Hanus, Jimeng Liu, Andrew Tolmach

Proc. of the 16th International Workshop on Implementation and Application of Functional Languages (IFL 2004), Springer LNCS 3474, pp. 108-125, 2005
© Springer-Verlag

We describe the architecture of a virtual machine for executing functional logic programming languages. A distinguishing feature of our machine is that it preserves the operational completeness of non-deterministic programs by concurrently executing a pool of independent computations. Each computation executes only root-needed sequential narrowing steps. We describe the machine's architecture and instruction set; and show how to compile overlapping inductively sequential programs to sequences of machine instructions. The machine has been implemented in Java and in Standard ML.

PDF (159 KB) BibTeX-Entry