Topic
Program transformation
About: Program transformation is a research topic. Over the lifetime, 2468 publications have been published within this topic receiving 73415 citations.
Papers published on a yearly basis
Papers
More filters
••
TL;DR: By expressing functional expressions in variable-free form, algebraic methods are used, based on the functional algebra of the language FP, to transform a certain class of nonlinear functions into linear form, and conditions under which these are equivalent to a linear function are identified.
15 citations
••
19 Sep 2012TL;DR: Tor, a well-defined hook into Prolog disjunction, provides the ability to modify the search method that explores the alternative execution branches, and is light-weight thanks to its library approach and efficient because it is based on program transformation.
Abstract: Horn Clause Programs have a natural depth-first procedural semantics. However, for many programs this procedural semantics is ineffective. In order to compute useful solutions, one needs the ability to modify the search method that explores the alternative execution branches.Tor, a well-defined hook into Prolog disjunction, provides this ability. It is light-weight thanks to its library approach and efficient because it is based on program transformation. Tor is general enough to mimic search-modifying predicates like ECLiPSe's search/6. Moreover, Tor supports modular composition of search methods and other hooks. Our library is already provided and used as an add-on to SWI-Prolog.
15 citations
••
01 Mar 1991TL;DR: A basis for program transformation using term rewriting tools is presented, which must provide tools to prove inductive properties; to verify that enrichment produces neither junk nor confusion; and to check for ground confluence and termination.
Abstract: We present a basis for program transformation using term rewriting tools. A specification is expressed hierarchically by successive enrichments as a signature and a set of equations. A term can be computed by rewriting. Transformations come from applying a partial unfailing completion procedure to the original set of equations augmented by inductive theorems and a definition of a new function symbol following diverse heuristics. Moreover, the system must provide tools to prove inductive properties; to verify that enrichment produces neither junk nor confusion; and to check for ground confluence and termination. These properties are related to the correctness of the transformation.
15 citations
••
TL;DR: In this article, the generalized Charnes-Cooper transformation was used to reduce complex convex-concave fractional programming problems to non-fractional complex programs.
Abstract: We extend the Charnes-Cooper transformation to complex fractional programs involving continuous complex functions and analytic functions. Such problems are shown to be equivalent to nonfractional complex programming problems. This technique is employed also to reduce complex linear fractional programs to complex linear programs. More generally, it can be shown that complex convex-concave fractional programming problems are equivalent to complex convex nonfractional programs using the generalized Charnes-Cooper transformation.
15 citations
••
TL;DR: A novel program analysis is presented to identify parts of the program where flattening would only introduce overhead, without appropriate gain, and empirical evidence is presented that avoiding vectorisation in these cases leads to more efficient programs than if they had applied vectorisation and then relied on array fusion to eliminate intermediates from the resulting code.
Abstract: Flattening nested parallelism is a vectorising code transform that converts irregular nested parallelism into flat data parallelism. Although the result has good asymptotic performance, flattening thoroughly restructures the code. Many intermediate data structures and traversals are introduced, which may or may not be eliminated by subsequent optimisation. We present a novel program analysis to identify parts of the program where flattening would only introduce overhead, without appropriate gain. We present empirical evidence that avoiding vectorisation in these cases leads to more efficient programs than if we had applied vectorisation and then relied on array fusion to eliminate intermediates from the resulting code.
15 citations