The Kansas University rewrite engine: a Haskell-embedded strategic programming language with custom closed universes

Sculthorpe, N ORCID logoORCID: https://orcid.org/0000-0002-7244-0916, Frisby, N and Gill, A, 2014. The Kansas University rewrite engine: a Haskell-embedded strategic programming language with custom closed universes. Journal of Functional Programming, 24 (4), pp. 434-473. ISSN 0956-7968

[thumbnail of PubSub5454_Sculthorpe.pdf]
Preview
Text
PubSub5454_Sculthorpe.pdf - Post-print

Download (331kB) | Preview

Abstract

When writing transformation systems, a significant amount of engineering effort goes into setting up the infrastructure needed to direct individual transformations to specific targets in the data being
transformed. Strategic programming languages provide general-purpose infrastructure for this task, which the author of a transformation system can use for any algebraic data structure.
The Kansas University Rewrite Engine (KURE) is a typed strategic programming language, implemented as a Haskell-embedded domain-specific language. KURE is designed to support typed transformations over typed data, and the main challenge is how to make such transformations compatible with generic traversal strategies that should operate over any type.
Strategic programming in a typed setting has much in common with datatype-generic programming. Compared to other approaches to datatype-generic programming, the distinguishing feature of KURE’s solution is that the user can configure the behaviour of traversals based on the location of each datum in the tree, beyond their behaviour being determined by the type of each datum.
This article describes KURE’s approach to assigning types to generic traversals, and the implementation of that approach. We also compare KURE, its design choices, and their consequences, with other approaches to strategic and datatype-generic programming.

Item Type: Journal article
Publication Title: Journal of Functional Programming
Creators: Sculthorpe, N., Frisby, N. and Gill, A.
Publisher: Cambridge University Press
Date: 2014
Volume: 24
Number: 4
ISSN: 0956-7968
Identifiers:
Number
Type
10.1017/S0956796814000185
DOI
Divisions: Schools > School of Science and Technology
Record created by: Jill Tomkinson
Date Added: 27 May 2016 15:20
Last Modified: 13 Oct 2017 13:12
URI: https://irep.ntu.ac.uk/id/eprint/27901

Actions (login required)

Edit View Edit View

Statistics

Views

Views per month over past year

Downloads

Downloads per month over past year