Results 1 
8 of
8
Dealing with Large Bananas
 Universiteit Utrecht
, 2000
"... Abstract. Many problems call for a mixture of generic and speci c programming techniques. We propose a polytypic programming approach based on generalised (monadic) folds where a separation is made between basic fold algebras that model generic behaviour and updates on these algebras that model spec ..."
Abstract

Cited by 29 (12 self)
 Add to MetaCart
Abstract. Many problems call for a mixture of generic and speci c programming techniques. We propose a polytypic programming approach based on generalised (monadic) folds where a separation is made between basic fold algebras that model generic behaviour and updates on these algebras that model speci c behaviour. We identify particular basic algebras as well as some algebra combinators, and we show how these facilitate structured programming with updatable fold algebras. This blend of genericity and speci city allows programming with folds to scale up to applications involving large systems of mutually recursive datatypes. Finally, we address the possibility of providing generic de nitions for the functions, algebras, and combinators that we propose. 1
A framework for polytypic programming on terms, with an application to rewriting
 Workshop on Generic Programming
, 2000
"... Given any value of a datatype (an algebra of terms), and rules to rewrite values of that datatype, we want a function that rewrites the value to normal form if the value is normalizable. This paper develops a polytypic rewriting function that uses the parallel innermost rewriting strategy. It improv ..."
Abstract

Cited by 14 (8 self)
 Add to MetaCart
Given any value of a datatype (an algebra of terms), and rules to rewrite values of that datatype, we want a function that rewrites the value to normal form if the value is normalizable. This paper develops a polytypic rewriting function that uses the parallel innermost rewriting strategy. It improves upon our earlier work on polytypic rewriting in two fundamental ways. Firstly, the rewriting function uses a term interface that hides the polytypic part from the rest of the program. The term interface is a framework for polytypic programming on terms. This implies that the rewriting function is independent of the particular implementation of polytypism. We give several functions and laws on terms, which simplify calculating with programs. Secondly, the rewriting function is developed together with a correctness proof. We just present the result of the correctness proof, the proof itself is published elsewhere.
Comparing approaches to generic programming in Haskell
 ICS, Utrecht University
, 2006
"... Abstract. The last decade has seen a number of approaches to datatypegeneric programming: PolyP, Functorial ML, ‘Scrap Your Boilerplate’, Generic Haskell, ‘Generics for the Masses’, etc. The approaches vary in sophistication and target audience: some propose fullblown programming languages, some s ..."
Abstract

Cited by 14 (4 self)
 Add to MetaCart
Abstract. The last decade has seen a number of approaches to datatypegeneric programming: PolyP, Functorial ML, ‘Scrap Your Boilerplate’, Generic Haskell, ‘Generics for the Masses’, etc. The approaches vary in sophistication and target audience: some propose fullblown programming languages, some suggest libraries, some can be seen as categorical programming methods. In these lecture notes we compare the various approaches to datatypegeneric programming in Haskell. We introduce each approach by means of example, and we evaluate it along different dimensions (expressivity, ease of use, etc). 1
Functors, Types and Shapes
 Chalmers University of Technology
, 1998
"... r goals of generic programming. However, in pointing out minor differences, let us not forget the overwhelming unity of purpose that brings us together. FML supports a kind of functors F; G, as well as of types ø and type schema oe. The full type system is given by F; G ::= U j C j \Pi m i j F hG ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
r goals of generic programming. However, in pointing out minor differences, let us not forget the overwhelming unity of purpose that brings us together. FML supports a kind of functors F; G, as well as of types ø and type schema oe. The full type system is given by F; G ::= U j C j \Pi m i j F hGi n j ¯ m F ø ::= X j F (ø) j ø 1 ! ø 2 oe ::= ø j 8U : m:oe j 8X : T:oe : Each functor F has an arity m (written F : m), which indicates the number of type arguments it takes. The functors include variables U and constants<F29.8
A Framework for Polytypic Programming on Terms, With an Application to Rewriting
"... Given any value of a datatype (an algebra of terms), and rules to rewrite values of that ..."
Abstract
 Add to MetaCart
Given any value of a datatype (an algebra of terms), and rules to rewrite values of that
Lifting Sequntial Functions to Parallel Skeletons
"... This paper describes the transformation of (almost arbitrary) sequential functions on covers to parallel, collective operations (skeletons). This allows the direct reuse of existing, but sequential, code on parallel machines without the necessity to handcode the desired parallel operations. A neces ..."
Abstract
 Add to MetaCart
This paper describes the transformation of (almost arbitrary) sequential functions on covers to parallel, collective operations (skeletons). This allows the direct reuse of existing, but sequential, code on parallel machines without the necessity to handcode the desired parallel operations. A necessary prerequisite for this skeleton lifting is the availability of a cover which holds the mapping information of the local subobjects, including their topology information. The lifting transformation distinguishes sequential values, which are available on each processor, from parallel values, which are only stored once. Accesses to parallel values are either ignored locally if they will be computed on another processor, or they induce communication messages to transfer the necessary data, depending on the behavior of the original function.
DISTRIBUTIVE LAWS IN PROGRAMMING STRUCTURES
, 2009
"... Generalised Distributive laws in Computer Science are rules governing the transformation of one programming structure into another. In programming, they are programs satisfying certain formal conditions. Their importance has been to date documented in several isolated cases by diverse formal approac ..."
Abstract
 Add to MetaCart
Generalised Distributive laws in Computer Science are rules governing the transformation of one programming structure into another. In programming, they are programs satisfying certain formal conditions. Their importance has been to date documented in several isolated cases by diverse formal approaches. These applications have always meant leaps in understanding the nature of the subject. However, distributive laws have not yet been given the attention they deserve. One of the reasons for this omission is certainly the lack of a formal notion of distributive laws in their full generality. This hinders the discovery and formal description of occurrences of distributive laws, which is the precursor of any formal manipulation. In this thesis, an approach to formalisation of distributive laws is presented based on the functorial approach to formal Category Theory pioneered by Lawvere and others, notably Gray. The proposed formalism discloses a rather simple nature of distributive laws of the kind found in programming structures based on lax 2naturality and Gray’s tensor product of 2categories. It generalises the existing more specific notions of distributive