Sponsor
Portland State University. Department of Computer Science
First Advisor
Sergio Antoy
Term of Graduation
Spring 2023
Date of Publication
5-16-2023
Document Type
Dissertation
Degree Name
Doctor of Philosophy (Ph.D.) in Computer Science
Department
Computer Science
Language
English
Subjects
Compilers (Computer programs), Functional programming (Computer science)
DOI
10.15760/etd.3564
Physical Description
1 online resource (vii, 254 pages)
Abstract
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.
Rights
©2023 Andrew Michael Jost
In Copyright. URI: http://rightsstatements.org/vocab/InC/1.0/ 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
https://archives.pdx.edu/ds/psu/40423
Recommended Citation
Jost, Andrew Michael, "Implementing a Functional Logic Programming Language via the Fair Scheme" (2023). Dissertations and Theses. Paper 6419.
https://doi.org/10.15760/etd.3564
Sprite Curry Compiler source code