Results 1 - 10
of
27
Rules and Strategies for Transforming Functional and Logic Programs
- ACM Computing Surveys
, 1996
"... We present an overview of the program transformation methodology, focusing our attention on the so-called `rules + strategies' approach in the case of functional and logic programs. The paper is intended to offer an introduction to the subject. The various techniques we present are illustrated via s ..."
Abstract
-
Cited by 68 (3 self)
- Add to MetaCart
We present an overview of the program transformation methodology, focusing our attention on the so-called `rules + strategies' approach in the case of functional and logic programs. The paper is intended to offer an introduction to the subject. The various techniques we present are illustrated via simple examples. A preliminary version of this report has been published in: Moller, B., Partsch, H., and Schuman, S. (eds.): Formal Program Development. Lecture Notes in Computer Science 755, Springer Verlag (1993) 263--304. Also published in: ACM Computing Surveys, Vol 28, No. 2, June 1996. 3 1 Introduction The program transformation approach to the development of programs has first been advocated by [Burstall-Darlington 77], although the basic ideas were already presented in previous papers by the same authors [Darlington 72, Burstall-Darlington 75]. In that approach the task of writing a correct and efficient program is realized in two phases: the first phase consists in writing an in...
Higher Order Attribute Grammars
, 1991
"... Higher Order Attribute Grammars (HAGs) are an extension of normal attribute grammars in the sense that the distinction between the domain of parse-trees and the domain of attributes has disappeared: parse trees may be computed in attributes and grafted to the parse tree at various places. As a re ..."
Abstract
-
Cited by 62 (8 self)
- Add to MetaCart
Higher Order Attribute Grammars (HAGs) are an extension of normal attribute grammars in the sense that the distinction between the domain of parse-trees and the domain of attributes has disappeared: parse trees may be computed in attributes and grafted to the parse tree at various places. As a result semantic functions may be described by attribute evaluation.
Translating Higher-Order Clauses to First-Order Clauses
"... Abstract. Interactive provers typically use higher-order logic, while automatic provers typically use first-order logic. In order to integrate interactive provers with automatic ones, it is necessary to translate higher-order formulae to first-order form. The translation should ideally be both sound ..."
Abstract
-
Cited by 20 (2 self)
- Add to MetaCart
Abstract. Interactive provers typically use higher-order logic, while automatic provers typically use first-order logic. In order to integrate interactive provers with automatic ones, it is necessary to translate higher-order formulae to first-order form. The translation should ideally be both sound and practical. We have investigated several methods of translating function applications, types and λ-abstractions. Omitting some type information improves the success rate, but can be unsound, so the interactive prover must verify the proofs. This paper presents experimental data that compares the translations in respect of their success rates for three automatic provers. 1.
Abstract machines for programming language implementation
- FUTURE GENERATION COMPUTER SYSTEMS
, 2000
"... We present an extensive, annotated bibliography of the abstract machines designed for each of the main programming paradigms (imperative, object oriented, functional, logic and concurrent). We conclude that whilst a large number of efficient abstract machines have been designed for particular langua ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
We present an extensive, annotated bibliography of the abstract machines designed for each of the main programming paradigms (imperative, object oriented, functional, logic and concurrent). We conclude that whilst a large number of efficient abstract machines have been designed for particular language implementations, relatively little work has been done to design abstract machines in a systematic fashion.
Higher Order Deforestation
, 1995
"... Intermediate data structures are widely used in functional programs. Programs which use these intermediate structures are usually a lot easier to understand, but they result in loss of efficiency at run-time. In order to reduce these run-time costs, a transformation algorithm called deforestation w ..."
Abstract
-
Cited by 16 (1 self)
- Add to MetaCart
Intermediate data structures are widely used in functional programs. Programs which use these intermediate structures are usually a lot easier to understand, but they result in loss of efficiency at run-time. In order to reduce these run-time costs, a transformation algorithm called deforestation was proposed by Wadler which could eliminate intermediate structures. However, this transformation algorithm was formulated only for first order functional programs. In this paper, it is shown how the original deforestation algorithm can be extended to deal with higher order functional programs. This extended algorithm is guaranteed to terminate only for expressions in which all functions are in a treeless form. It is shown how all function definitions can be generalised to this form so that the algorithm can be made to terminate for all programs. It is therefore argued that this algorithm is suitable for inclusion in an optimising compiler. i Contents 1 Introduction 1 2 Language 1 3 High...
Optimality and Inefficiency : What Isn't a Cost Model of the Lambda Calculus?
- In Proceedings of the 1996 ACM SIGPLAN International Conference on Functional Programming
, 1996
"... We investigate the computational efficiency of the sharing graphs of Lamping [Lam90], Gonthier, Abadi, and L'evy [GAL92], and Asperti [Asp94], designed to effect so-called optimal evaluation, with the goal of reconciling optimality, efficiency, and the clarification of reasonable cost models for th ..."
Abstract
-
Cited by 15 (2 self)
- Add to MetaCart
We investigate the computational efficiency of the sharing graphs of Lamping [Lam90], Gonthier, Abadi, and L'evy [GAL92], and Asperti [Asp94], designed to effect so-called optimal evaluation, with the goal of reconciling optimality, efficiency, and the clarification of reasonable cost models for the -calculus. Do these graphs suggest reasonable cost models for the -calculus? If they are optimal, are they efficient? We present a brief survey of these optimal evaluators, identifying their common characteristics, as well as their shared failures. We give a lower bound on the efficiency of sharing graphs by identifying a class of -terms that are normalizable in \Theta(n) time, and require \Theta(n) "fan interactions, " but require\Omega\Gammaq n ) bookkeeping steps. For [GAL92], we analyze this anomaly in terms of the dynamic maintenance of deBruijn indices for intermediate terms. We give another lower bound showing that sharing graphs can do \Omega\Gammao n ) work (via fan interactio...
Predictive Combinators: A Method for Efficient Processing of Combinatory Categorial Grammars
, 1987
"... Steedman (198,5, 1987) and others have proposed that Categorial Grammar, a theory of syntax in which grammatical categories are viewed as functions, be augmented with operators such as functional composition and type raising in order to analyze noncanonical" syntactic constructions such as wh- extra ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
Steedman (198,5, 1987) and others have proposed that Categorial Grammar, a theory of syntax in which grammatical categories are viewed as functions, be augmented with operators such as functional composition and type raising in order to analyze noncanonical" syntactic constructions such as wh- extraction and node raising. A consequence of these augmentations is an explosion of semantically equivalent derivations admitted by the grammar. The present, work proposes a method for circumventing this spurious ambiguity problem. It involves deriving new, specialized combinators and replacing the orginai basic combinators with these derived ones. In this paper, examples of these p'edictive combinator are offered and their effects illustrated. An l- gorithm for deriving them, s well s a discussion of their semantics, will be presented in forthcoming work.
The Many Disguises of Accumulation
, 1991
"... Several descriptions of basically one transformation technique, viz. accumulation, are compared. Their basis, viz. the associativity and the existence of a neutral element inherent in a monoid, is identified. Keywords transformational programming, factorial, fast reverse, accumulation, continuation ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Several descriptions of basically one transformation technique, viz. accumulation, are compared. Their basis, viz. the associativity and the existence of a neutral element inherent in a monoid, is identified. Keywords transformational programming, factorial, fast reverse, accumulation, continuations, lambda abstraction, generalisation, tail recursion, implementation of lists. This research has been sponsored by the Netherlands Organisation for Scientific Research (NWO), under grant NF 63/62-518 (the STOP --- Specification and Transformation Of Programs --- project). 1 Introduction One of the first program transformations that appeared in the literature was the accumulation transformation. The transformation is now classic, although not everyone may know it under exactly this name. In this note, I try to relate several descriptions of this program transformation technique. In a purely algebraic view, it is the exploitation of the properties of a monoid. In literature, it can be fou...
An Effective Speculative Evaluation Technique for Parallel Supercombinator Graph Reduction
, 1993
"... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Motivation: The Problems of Parall ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Motivation: The Problems of Parallel Programming . . . . . . . . . . . . . . . . . . . . . 2 1.2 A First Solution: Functional Programming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 A Refined Solution: Speculative Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 A Final Solution: Effective Speculative Evaluation . . . . . . . . . . . . . . . . . . . . . 12 1.5 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.6 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2. Supercombinator Graph Reduction . . . . . . . . . . . . . . . . . . . . . . . . . ...
On the Efficient Incremental Evaluation of Higher Order Attribute Grammars
- In the proceedings of the International Symposium on Programming Language Implementation and Logic Programming, Passau (FRG), August 26-28, (To Appear
, 1990
"... This paper presents a new algorithm for the incremental evaluation of Ordered Attribute Grammars (OAGs), which also solves the problem of the incremental evaluation of Ordered Higher-order Attribute Grammars (OHAGs). Two new approaches are used in the algorithm. ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
This paper presents a new algorithm for the incremental evaluation of Ordered Attribute Grammars (OAGs), which also solves the problem of the incremental evaluation of Ordered Higher-order Attribute Grammars (OHAGs). Two new approaches are used in the algorithm.

