The Kansas University rewrite engine A Haskell-Embedded Strategic Programming Language with Custom Closed Universes
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,...
Uloženo v:
| Vydáno v: | Journal of functional programming Ročník 24; číslo 4; s. 434 - 473 |
|---|---|
| Hlavní autoři: | , , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
Cambridge
Cambridge University Press
01.07.2014
|
| ISSN: | 0956-7968, 1469-7653 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Shrnutí: | 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. |
|---|---|
| Bibliografie: | SourceType-Scholarly Journals-1 ObjectType-Feature-1 content type line 14 |
| ISSN: | 0956-7968 1469-7653 |
| DOI: | 10.1017/S0956796814000185 |