First Advisor

Sergio Antoy

Term of Graduation

Spring 2023

Date of Publication


Document Type


Degree Name

Doctor of Philosophy (Ph.D.) in Computer Science


Computer Science




Curry, Functional Logic Programming, Non Determinism, Pull Tabbing, Set Functions



Physical Description

1 online resource (vii, 254 pages)


This document presents a new compiler for the Functional Logic programming language Curry based on a novel pull-tabbing evaluation strategy called the Fair Scheme. A simple version of the Fair Scheme is proven sound, complete, and optimal. An elaborated version is also developed, which supports narrowing computations and other features of Curry, such as constraint programming, equational constraints, and set functions.

The Fair Scheme is used to develop a new Curry system called Sprite, a high-quality, performant implementation whose aims are to promote practical uses of Curry and to serve as a laboratory for further research. An important aspect of Sprite is its integration with the popular imperative language Python. This combination allows one to write hybrid programs in which the programmer may move between declarative and non-declarative styles with relative ease. Benchmarking data show Sprite to be more complete than other Curry systems and competitive in terms of execution time, particularly for non-deterministic programs.


©2023 Andrew Michael Jost

In Copyright. URI: This Item is protected by copyright and/or related rights. You are free to use this Item in any way that is permitted by the copyright and related rights legislation that applies to your use. For other uses you need to obtain permission from the rights-holder(s).

Persistent Identifier

Sprite.FINAL.4.24.2023.tgz (2496 kB)
Sprite Curry Compiler source code