Functional logic programming is a multi-paradigm programming that combines the best features of functional programming and logic programming. Functional programming provides mechanisms for demand-driven evaluation, higher order functions, and polymorphic typing. Logic programming deals with non-determinism, partial information, and constraints. Both programming paradigms fall under the umbrella of declarative programming.;In this dissertation, we discuss the design and implementation of a functional logic virtual machine. We discuss functional logic programming, its syntax, semantics, and the different computation strategies. The virtual machine is capable to tackle non-determinism using the sound and complete bubbling transformation. The virtual machine benefits from well established automatic parallelism and its types in declarative programming.;Keywords Declarative Programming, Functional Logic Programming, Term Rewriting Systems, Virtual Machine, Automatic Parallelism, Bubbling. |