• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Theories for algorithm calculation (1992)

by J Jeuring
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 30
Next 10 →

Shortcut Deforestation in Calculational Form

by Akihiko Takano, Erik Meijer - In Proc. Conference on Functional Programming Languages and Computer Architecture , 1995
"... In functional programming, intermediate data structures are often used to "glue" together small programs. Deforestation is a program transformation to remove these intermediate data structures automatically. We present a simple algorithm for deforestation based on two fusion rules for hylomorphism, ..."
Abstract - Cited by 84 (3 self) - Add to MetaCart
In functional programming, intermediate data structures are often used to "glue" together small programs. Deforestation is a program transformation to remove these intermediate data structures automatically. We present a simple algorithm for deforestation based on two fusion rules for hylomorphism, an expressive recursion pattern. A generic notation for hylomorphisms is introduced, where natural transformations are explicitly factored out, and it is used to represent programs. Our method successfully eliminates intermediate data structures of any algebraic type from a much larger class of compositional functional programs than previous techniques. 1 Introduction In functional programming, programs are often constructed by "gluing" together small components, using intermediate data structures to convey information between them. Such data are constructed in one component and later consumed in another component, but never appear in the result of the whole program. The compositional styl...

Calculating Accumulations

by Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi , 1999
"... this paper, we shall formulate accumulations as higher order catamorphisms , and propose several general transformation rules for calculating accumulations (i.e., finding and manipulating accumulations) by calculation-based (rather than a search-based) program transformation methods. Some examples ..."
Abstract - Cited by 16 (6 self) - Add to MetaCart
this paper, we shall formulate accumulations as higher order catamorphisms , and propose several general transformation rules for calculating accumulations (i.e., finding and manipulating accumulations) by calculation-based (rather than a search-based) program transformation methods. Some examples are given for illustration.

Make it Practical: A Generic Linear-Time Algorithm for Solving Maximum-Weightsum Problems

by Isao Sasano, Zhenjiang Hu, Masato Takeichi, Mizuhito Ogawa - In Proceedings of the 5th ACM SIGPLAN International Conference on Functional Programming (ICFP'00 , 2000
"... In this paper we propose a new method for deriving a practical linear-time algorithm from the specification of a maximum-weight sum problem: From the elements of a data structure x, find a subset which satisfies a certain property p and whose weightsum is maximum. Previously proposed methods for aut ..."
Abstract - Cited by 11 (8 self) - Add to MetaCart
In this paper we propose a new method for deriving a practical linear-time algorithm from the specification of a maximum-weight sum problem: From the elements of a data structure x, find a subset which satisfies a certain property p and whose weightsum is maximum. Previously proposed methods for automatically generating linear-time algorithms are theoretically appealing, but the algorithms generated are hardly useful in practice due to a huge constant factor for space and time. The key points of our approach are to express the property p by a recursive boolean function over the structure x rather than a usual logical predicate and to apply program transformation techniques to reduce the constant factor. We present an optimization theorem, give a calculational strategy for applying the theorem, and demonstrate the effectiveness of our approach through several nontrivial examples which would be difficult to deal with when using the methods previously available.

Fusion of Recursive Programs with Computational Effects

by Alberto Pardo - Theor. Comp. Sci , 2000
"... Fusion laws permit to eliminate various of the intermediate data structures that are created in function compositions. The fusion laws associated with the traditional recursive operators on datatypes cannot in general be used to transform recursive programs with effects. Motivated by this fact, t ..."
Abstract - Cited by 10 (2 self) - Add to MetaCart
Fusion laws permit to eliminate various of the intermediate data structures that are created in function compositions. The fusion laws associated with the traditional recursive operators on datatypes cannot in general be used to transform recursive programs with effects. Motivated by this fact, this paper addresses the definition of two recursive operators on datatypes that capture functional programs with effects. Effects are assumed to be modeled by monads. The main goal is thus the derivation of fusion laws for the new operators. One of the new operators is called monadic unfold. It captures programs (with effects) that generate a data structure in a standard way. The other operator is called monadic hylomorphism, and corresponds to programs formed by the composition of a monadic unfold followed by a function defined by structural induction on the data structure that the monadic unfold generates. 1 Introduction A common approach to program design in functional programmin...

A library of constructive skeletons for sequential style of parallel programming

by Kiminori Matsuzaki, Hideya Iwasaki - In InfoScale ’06: Proceedings of the 1st international conference on Scalable information systems, volume 152 of ACM International Conference Proceeding Series , 2006
"... With the increasing popularity of parallel programming environments such as PC clusters, more and more sequential programmers, with little knowledge about parallel architectures and parallel programming, are hoping to write parallel programs. Numerous attempts have been made to develop high-level pa ..."
Abstract - Cited by 10 (7 self) - Add to MetaCart
With the increasing popularity of parallel programming environments such as PC clusters, more and more sequential programmers, with little knowledge about parallel architectures and parallel programming, are hoping to write parallel programs. Numerous attempts have been made to develop high-level parallel programming libraries that use abstraction to hide low-level concerns and reduce difficulties in parallel programming. Among them, libraries of parallel skeletons have emerged as a promising way towards this direction. Unfortunately, these libraries are not well accepted by sequential programmers, because of incomplete elimination of lower-level details, ad-hoc selection of library functions, unsatisfactory performance, or lack of convincing application examples. This paper addresses principle of designing skeleton libraries of parallel programming and reports implementation details and practical applications of a skeleton library SkeTo. The SkeTo library is unique in its feature that it has a solid theoretical foundation based on the theory of Constructive Algorithmics, and is practical to be used to describe various parallel computations in a sequential manner. 1.

Generic Accumulations

by Alberto Pardo , 2002
"... which are eventually used in later stages of the computation. We present a generic definition of accumulations, achieved by the introduction of a new recursive operator on inductive types. We also show that the notion of downwards accumulation developed by Gibbons is subsumed by our notion of acc ..."
Abstract - Cited by 9 (0 self) - Add to MetaCart
which are eventually used in later stages of the computation. We present a generic definition of accumulations, achieved by the introduction of a new recursive operator on inductive types. We also show that the notion of downwards accumulation developed by Gibbons is subsumed by our notion of accumulation.

Promotional Transformation on Monadic Programs

by Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi , 1995
"... this paper, we propose a new theory on monadic catamorphism bymoving Fokkinga's assumption on the monad to the condition of a map between monadic algebras so that our theory is valid for arbitrary monads including, for example, the state monad that is not allowed in Fokkinga's theory. Our theory cov ..."
Abstract - Cited by 9 (0 self) - Add to MetaCart
this paper, we propose a new theory on monadic catamorphism bymoving Fokkinga's assumption on the monad to the condition of a map between monadic algebras so that our theory is valid for arbitrary monads including, for example, the state monad that is not allowed in Fokkinga's theory. Our theory covers Fokkinga's as a special case. Moreover, Meijer and Jeuring's informal transformation rules of monadic programs in their case study is actually an instance of our general promotion theorem.

Bottom-up Grammar Analysis - A Functional Formulation

by Johan Jeuring, Johan Jeuring, Johan Jeuring, Doaitse Swierstra, Doaitse Swierstra, Doaitse Swierstra - Proceedings Programming Languages and SystemsESOP '94 , 1994
"... This paper discusses bottom-up grammar analysis problems such as the Empty problem and the First problem. It defines a general class of bottom -up grammar analysis problems, and from this definition it derives a functional program for performing bottom-up grammar analysis. The derivation is purely ..."
Abstract - Cited by 7 (3 self) - Add to MetaCart
This paper discusses bottom-up grammar analysis problems such as the Empty problem and the First problem. It defines a general class of bottom -up grammar analysis problems, and from this definition it derives a functional program for performing bottom-up grammar analysis. The derivation is purely calculational, using theorems from lattice theory, the Bird-Meertens calculus, and laws for list-comprehensions. Sufficient conditions guaranteeing the existence of a solution emerge as a byproduct of the calculation. The resulting program is used to construct programs for the Empty problem and the First problem. 1 Introduction Grammar analysis is performed in many different situations: Yacc tests whether or not its input grammar is LALR(1), parser generators contain functions for determining whether or not a nonterminal can derive the empty string (Empty) as part of determining the set of all symbols that can appear as the first symbol of a derived string (First), and for determining the ...

Constructing Functional Programs for Grammar Analysis Problems

by Johan Jeuring, Doaitse Swierstra - In Conference Record of FPCA '95, SIGPLAN-SIGARCH-WG2.8 Conference on Functional Programming Languages and Computer Architecture , 1995
"... This paper discusses the derivation of functional programs for grammar analysis problems, such as the Empty problem and the Reachable problem. Grammar analysis problems can be divided into two classes: top-down problems such as Follow and Reachable, which are described in terms of the contexts of n ..."
Abstract - Cited by 7 (3 self) - Add to MetaCart
This paper discusses the derivation of functional programs for grammar analysis problems, such as the Empty problem and the Reachable problem. Grammar analysis problems can be divided into two classes: top-down problems such as Follow and Reachable, which are described in terms of the contexts of nonterminals, and bottom-up problems such as Empty and First, which do not refer to contexts. In a previous paper we derive a program for bottom-up grammar analysis problems. In this paper we derive a program for top-down grammar analysis problems by transforming the specification of an arbitrary top-down problem into a program. The existence of a solution is guaranteed provided some natural conditions are satisfied. Furthermore, we describe a general transformation that applies to both classes of grammar analysis problems. The result of this transformation is a program that avoids unnecessary computations in the computation of a fixed point. Constructor classes, which are used to abstract fr...

A Calculational Approach to Strong Datatypes

by Alberto Pardo - Department of Informatics, University of Oslo , 1997
"... This paper describes calculational properties of fold, a recursive functional on inductive types that extends the standard catamorphism [MFP91] to global parameters. As described by Cockett and Spencer [CS91] fold is definable for those inductive types that are strong in the sense of being given by ..."
Abstract - Cited by 4 (2 self) - Add to MetaCart
This paper describes calculational properties of fold, a recursive functional on inductive types that extends the standard catamorphism [MFP91] to global parameters. As described by Cockett and Spencer [CS91] fold is definable for those inductive types that are strong in the sense of being given by an algebra that happens to be initial with parameters. The laws for fold are presented in two groups. The first one corresponds to standard laws for catamorphisms now adapted to folds when these are regarded as catamorphisms in a category of so-called X-actions (for X an object of parameters). The second group contains laws that describe the combination of folds and the interaction between folds and catamorphisms. 1 Introduction In programming semantics, a recursive type is understood as a solution of a recursive type equation. Least fixpoints of covariant recursive type equations correspond to the so-called inductive types which contain only finite elements, like natural numbers, lists o...
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University