@inproceedings{AntoyPeters12FLOPS, author = "S. Antoy and A. Peters", title = "Compiling a Functional Logic Language: The Basic Scheme", year = "2012", booktitle = "Proc. of the Eleventh International Symposium on Functional and Logic Programming", pages = "17-31", publisher = "Springer LNCS 7294", doi = {}, abstract = { We present the design of a compiler for a functional logic programming language and discuss the compiler's implementation. The source program is abstracted by a constructor based graph rewriting system obtained from a functional logic program after syntax desugaring, lambda lifting and similar transformations provided by a compiler's front-end. This system is non-deterministic and requires a specialized normalization strategy. The target program consists of 3 procedures that execute graph replacements originating from either rewrite or pull-tab steps. These procedures are deterministic and easy to encode in an ordinary programming language. We describe the generation of the 3 procedures, discuss the correctness of our approach, highlight some key elements of an implementation, and benchmark the performance of a proof-of-concept. Our compilation scheme is elegant and simple enough to be presented in one page. }}