We present a simple, practical algorithm for higher-order matching in the context of automatic program transformation. Our algorithm finds more matches than the standard second-order matching algorithm of Huet and Lang, but it has an equally simple specification, and it is better suited to the transformation of programs in modern programming languages such as Haskell or ML. The algorithm has been implemented as part of the MAG system for transforming functional programs. 1 Background and motivation 1.1 Program transformation Many program transformations are conveniently expressed as higher-order rewrite rules. For example, consider the well-known transformation that turns a tail recursive function into an imperative loop. The pattern f x...
Traditional functional languages do not have an explicit distinction between binding times. It aris...
This paper presents a new approach to optimizing functional programs based on combining partial eval...
In this paper we present a new compilation method based on program transformation. The principle is ...
AbstractWe present a simple, practical algorithm for higher-order matching in the context of automat...
AbstractThis paper shows how the Improvement Theorem — a semantic condition for establishing the tot...
Functional programs often define functions by pattern matching where patterns may inadvertedly overl...
We introduce rewriting of meta-expressions which stem from a meta-language that uses higher-order ab...
We present a generic Haskell library for expressing rewrite rules with a safe treatment of variables...
We extend a framework of program transformation by templates based on first order term rewriting (Ch...
Abstract: Motivated by the promotion of rewriting techniques and their use in major industrial appli...
Abstract. Matching is a basic operation extensively used in computation. Second-order matching, in p...
We show how the complexity of higher-order functional programs can be analysed automatically by appl...
The goal of program transformation is to improve efficiency while preserving meaning. One of the bes...
This paper derives a hierarchy of algorithms for pattern matching on arrays in the Bird-Meertens cal...
Our recently developed LRSX Tool implements a technique to automatically prove the correctness of pr...
Traditional functional languages do not have an explicit distinction between binding times. It aris...
This paper presents a new approach to optimizing functional programs based on combining partial eval...
In this paper we present a new compilation method based on program transformation. The principle is ...
AbstractWe present a simple, practical algorithm for higher-order matching in the context of automat...
AbstractThis paper shows how the Improvement Theorem — a semantic condition for establishing the tot...
Functional programs often define functions by pattern matching where patterns may inadvertedly overl...
We introduce rewriting of meta-expressions which stem from a meta-language that uses higher-order ab...
We present a generic Haskell library for expressing rewrite rules with a safe treatment of variables...
We extend a framework of program transformation by templates based on first order term rewriting (Ch...
Abstract: Motivated by the promotion of rewriting techniques and their use in major industrial appli...
Abstract. Matching is a basic operation extensively used in computation. Second-order matching, in p...
We show how the complexity of higher-order functional programs can be analysed automatically by appl...
The goal of program transformation is to improve efficiency while preserving meaning. One of the bes...
This paper derives a hierarchy of algorithms for pattern matching on arrays in the Bird-Meertens cal...
Our recently developed LRSX Tool implements a technique to automatically prove the correctness of pr...
Traditional functional languages do not have an explicit distinction between binding times. It aris...
This paper presents a new approach to optimizing functional programs based on combining partial eval...
In this paper we present a new compilation method based on program transformation. The principle is ...