Results 1 - 10
of
10
A Fold for All Seasons
- IN PROC. CONFERENCE ON FUNCTIONAL PROGRAMMING LANGUAGES AND COMPUTER ARCHITECTURE
, 1993
"... Generic control operators, such as fold, can be generated from algebraic type definitions. The class of types to which these techniques are applicable is generalized to all algebraic types definable in languages such as Miranda and ML, i.e. mutually recursive sums-of-products with tuples and functio ..."
Abstract
-
Cited by 107 (15 self)
- Add to MetaCart
Generic control operators, such as fold, can be generated from algebraic type definitions. The class of types to which these techniques are applicable is generalized to all algebraic types definable in languages such as Miranda and ML, i.e. mutually recursive sums-of-products with tuples and function types. Several other useful generic operators, also applicable to every type in this class, also are described. A normalization algorithm which automatically calculates improvements to programs expressed in a language based upon folds is described. It reduces programs, expressed using fold as the exclusive control operator, to a canonical form. Based upon a generic promotion theorem, the algorithm is facilitated by the explicit structure of fold programs rather than using an analysis phase to search for implicit structure. Canonical programs are minimal in the sense that they contain the fewest number of fold operations. Because of this property, the normalization algorithm has important ...
Predicative Recursion and Computational Complexity
, 1992
"... The purpose of this thesis is to give a "foundational" characterization of some common complexity classes. Such a characterization is distinguished by the fact that no explicit resource bounds are used. For example, we characterize the polynomial time computable functions without making any direct r ..."
Abstract
-
Cited by 43 (3 self)
- Add to MetaCart
The purpose of this thesis is to give a "foundational" characterization of some common complexity classes. Such a characterization is distinguished by the fact that no explicit resource bounds are used. For example, we characterize the polynomial time computable functions without making any direct reference to polynomials, time, or even computation. Complexity classes characterized in this way include polynomial time, the functional polytime hierarchy, the logspace decidable problems, and NC. After developing these "resource free" definitions, we apply them to redeveloping the feasible logical system of Cook and Urquhart, and show how this first-order system relates to the second-order system of Leivant. The connection is an interesting one since the systems were defined independently and have what appear to be very different rules for the principle of induction. Furthermore it is interesting to see, albeit in a very specific context, how to retract a second order statement, ("inducti...
Improving Programs which Recurse over Multiple Inductive Structures
- In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based 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 well-known transformations. Unfortunately, these recursion sc...
Delivering the Benefits of Persistence to System Construction and Execution
, 1992
"... In an orthogonally persistent programming system the longevity of data is independent of its other attributes. The advantages of persistence may be seen primarily in the areas of data modelling and protection resulting from simpler semantics and reduced complexity. These have been verified by the fi ..."
Abstract
-
Cited by 18 (5 self)
- Add to MetaCart
In an orthogonally persistent programming system the longevity of data is independent of its other attributes. The advantages of persistence may be seen primarily in the areas of data modelling and protection resulting from simpler semantics and reduced complexity. These have been verified by the first implementations of persistent languages, typically consisting of a persistent store, a run-time system and a compiler that produces programs that may access and manipulate the persistent environment. This thesis demonstrates that persistence can deliver many further benefits to the programming process when applied to software construction and execution. To support the thesis, a persistent environment has been extended with all the components necessary to support program construction and execution entirely within the persistent environment. This is the first known example of a strongly-typed integrated persistent programming environment. The keystone of this work is the construction of ...
Efficient Optimization of Iterative Queries
- In Fourth International Workshop on Database Programming Languages
, 1993
"... This paper presents a new query algebra based on fold iterations that facilitates database implementation. An algebraic normalization algorithm is introduced that reduces any program expressed in this algebra to a canonical form that generates no intermediate data structures and has no more nested i ..."
Abstract
-
Cited by 12 (5 self)
- Add to MetaCart
This paper presents a new query algebra based on fold iterations that facilitates database implementation. An algebraic normalization algorithm is introduced that reduces any program expressed in this algebra to a canonical form that generates no intermediate data structures and has no more nested iterations than the initial program. Given any inductive data type, our system can automatically synthesize the definition of the fold operator that traverses instances of this type, and, more importantly, it can produce the necessary transformations for optimizing expressions involving this fold operator. Database implementation in our framework is controlled by userdefined mappings from abstract types to physical structures. The optimizer uses this information to translate abstract programs and queries into concrete algorithms that conform to the type transformation. Database query optimization can be viewed as a search over the reduced space of all canonical forms which are equivalent to t...
Foundations of Object Oriented Database Concepts
- Bericht FBI-HH-B-157/92, Fachbereich Informatik, Universität
, 1992
"... It is claimed that object oriented databases (OODBs) overcome many of the limitations of the relational model. However, the formal foundation of OODB concepts is still an open problem. Even worse, for relational databases a commonly accepted datamodel existed very early on whereas for OODBs the unif ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
It is claimed that object oriented databases (OODBs) overcome many of the limitations of the relational model. However, the formal foundation of OODB concepts is still an open problem. Even worse, for relational databases a commonly accepted datamodel existed very early on whereas for OODBs the unification of concepts is outstanding. Our research in Hamburg and Rostock is directed towards a formally founded object oriented datamodel (OODM) and to contribute to the development of a uniform mathematical theory of OODBs. This report contains the results of our first investigations on the OODM. A clear distinction between objects and values turns out to be essential in the OODM. Types and Classes are used to structure values and objects repectively. Then the problem of unique object identification occurs. We show that this problem can be be solved for classes with extents that are completely representable by values. Such classes are called valuerepresentable. The finiteness of a database and the existence of finitely representable rational tree types are sufficient to decide value-representability. Another advantage of the relational approach is the existence of structurally determined
Structure-directed Genericity in Functional Programming and Attribute Grammars
, 1997
"... : Generic control operators, such as fold, have been introduced in functional programming to increase the power and applicability of data-structure-based transformations. This is achieved by making the structure of the data more explicit in program specifications. We argue that this very important p ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
: Generic control operators, such as fold, have been introduced in functional programming to increase the power and applicability of data-structure-based transformations. This is achieved by making the structure of the data more explicit in program specifications. We argue that this very important property is one of the original concepts of attribute grammars. In this paper, we present the similarities between the fold formalism and attribute grammars. In particular, we show the equivalence of their respective deforestation methods. Given these results and the fundamental role of deforestation in the concept of structuredirected genericity, first devised for attribute grammars with descriptional composition, we show how the fold operator with its fusion method allow us to transport this concept in the area of functional programming. Key-words: Attribute grammars, static analysis, functional programming, structuredirected programming, program transformation, deforestation, genericity....
An Overview on Semantical Constraints for Database Models
- Proceedings of The 6th International Conference on Intellectual Systems and Computer Science
, 1996
"... Modeling of semantics is one of the most difficult tasks in database design. Constraints are used to express database semantics. They are used differently in database models. They express domain restrictions, specify relationships between components and state database behavior. The utilization depen ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Modeling of semantics is one of the most difficult tasks in database design. Constraints are used to express database semantics. They are used differently in database models. They express domain restrictions, specify relationships between components and state database behavior. The utilization depends on the richness of the type system used in the model. The relational model is using a simple type system and has a very large set of integrity constraints. Semantical models are using richer type systems which express also different types of integrity constraints. At the same time, the theory of integrity constraints is more complex. Object-oriented models use either a simple type system or type systems like the semantical models. The theory of integrity constraints is still under development. This overview tries to give a unifying framework on integrity constraints. 1 1 Introduction The goal of this overview is to provide a systematic and unifying introduction to the theory of constrai...
Optimizing Algebraic Programs
, 1994
"... This paper considers a programming language where all control is encoded in algebras ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
This paper considers a programming language where all control is encoded in algebras

