Results 1 
2 of
2
Improving Programs which Recurse over Multiple Inductive Structures
 In ACM SIGPLAN Workshop on Partial Evaluation and SemanticsBased Program Manipulation (PEPM'94
, 1994
"... This paper considers generic recursion schemes for programs which recurse over multiple inductive structures simultaneously, such as equality, zip and the nth element of a list function. Such schemes have been notably absent from previous work. This paper defines a uniform mechanism for defining suc ..."
Abstract

Cited by 25 (6 self)
 Add to MetaCart
This paper considers generic recursion schemes for programs which recurse over multiple inductive structures simultaneously, such as equality, zip and the nth element of a list function. Such schemes have been notably absent from previous work. This paper defines a uniform mechanism for defining such programs and shows that these programs satisfy generic theorems. These theorems are the basis for an automatic improvement algorithm. This algorithm is an improvement over the algorithm presented earlier [14] because, in addition to inducting over multiple structures, it can be incorporated into any algebraic language and is no longer restricted to a "safe" subset. 1 Introduction In previous work [14, 15, 6, 4, 5] we have shown how programming algebraically with generic recursion schemes provides a theory amenable to program calculation [13]. This theory provides a basis for automatic optimization techniques which capture many wellknown transformations. Unfortunately, these recursion sc...
A Uniform Framework for Collection Types
"... We present a new algebra for complex database objects based on monoids and monoid homomorphisms. The object types supported in our algebra can be any nested composition of collection types, which include lists, sets, multisets, vectors, and matrices. We define a new calculus equivalent to this algeb ..."
Abstract
 Add to MetaCart
We present a new algebra for complex database objects based on monoids and monoid homomorphisms. The object types supported in our algebra can be any nested composition of collection types, which include lists, sets, multisets, vectors, and matrices. We define a new calculus equivalent to this algebra, called monoid comprehensions, that captures operations involving diverse collection types in declarative form. We present a normalization algorithm that reduces any expression in our algebra to a canonical form which, when evaluated, generates very few intermediate data structures. This algorithm generalizes some wellknown algebraic optimization techniques and heuristics used in relational query optimization. In addition, we demonstrate the modeling power of this language by capturing physical storage structures and algorithms, such as merge join, hash join, and partitioned hash join. Finally, we extend this algebra by incorporating objectoriented features, such as object identity, an...