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: This is a multi-pass optimization, involving interprocedural flow analyses for aliasing and liveness, that runs in polynomial time and it is proved that any sound liveness analysis induces a correct program transformation.
Abstract: Destructive array update optimization is critical for writing scientific codes in functional languages. We present set constraints for an interprocedural update optimization that runs in polynomial time. This is a multi-pass optimization, involving interprocedural flow analyses for aliasing and liveness. We characterize and prove the soundness of these analyses using small-step operational semantics. We also prove that any sound liveness analysis induces a correct program transformation.
13 citations
••
04 Oct 2009TL;DR: The framework supports incremental maintenance of invariants for program design and optimization, as well as general transformations for instrumentation, refactoring, and other purposes, and the implementations for transforming Python and C programs are described.
Abstract: This paper describes a language and framework that allow coordinated transformations driven by invariants to be specified declaratively, as invariant rules, and applied automatically. The framework supports incremental maintenance of invariants for program design and optimization, as well as general transformations for instrumentation, refactoring, and other purposes. This paper also describes our implementations for transforming Python and C programs and experiments with successful applications of the systems in generating efficient implementations from clear and modular specifications, in instrumenting programs for runtime verification, profiling, and debugging, and in code refactoring.
13 citations
••
13 Jul 2015TL;DR: A method of program transformation that allows to transform logic programs in such a way that proof evidence is computed alongside SLD-derivations is proposed.
Abstract: We propose a new type-theoretic approach to SLD-resolution and Horn-clause logic programming. It views Horn formulas as types, and derivations for a given query as a construction of the inhabitant a proof-term for the type given by the query. We propose a method of program transformation that allows to transform logic programs in such a way that proof evidence is computed alongside SLD-derivations. We discuss two applications of this approach: in recently proposed productivity theory of structural resolution, and in type class inference.
13 citations
••
01 Jun 2005
TL;DR: This paper derives an O(N3) time algorithm for computing an intra-procedural flow sensitive may-alias analysis, where N denotes the number of edges in the program control flow graph (CFG) and shows that for a large subclass of programs in which the in-degree and out-degree of all CFG nodes is bounded by a constant, this algorithm is linear.
Abstract: In this paper we use a program transformational approach to obtain an asymptotically improved may-alias analysis algorithm. We derive an O(N3) time algorithm for computing an intra-procedural flow sensitive may-alias analysis, where N denotes the number of edges in the program control flow graph (CFG). Our algorithm improves the previous O(N5) time algorithm by Hind et al. [19]. Our time complexity improvement comes without any deterioration in space complexity. We also show that for a large subclass of programs in which the in-degree and out-degree of all CFG nodes is bounded by a constant, our algorithm is linear in the sum of the number of edges in the CFG of the program and the size of the output, i.e., the size of the computed alias information, and is therefore asymptotically optimal. Our transformational algorithm derivation technique also leads to a simplified yet precise analysis of time complexity.
13 citations
••
03 Oct 2002TL;DR: In this paper, the authors claim that slicing can be used to narrow the search space and transformation can be applied to the problem of structural impediments in the implementation of the program which inhibit the formulation of a suitable fitness function to guide the search.
Abstract: Evolutionary testing is a search based approach to the automated generation of systematic test data, in which the search is guided by the test data adequacy criterion. Two problems for evolutionary testing are the large size of the search space and structural impediments in the implementation of the program which inhibit the formulation of a suitable fitness function to guide the search. In this paper we claim that slicing can be used to narrow the search space and transformation can be applied to the problem of structural impediments. The paper presents examples of how these two techniques have been successfully employed to make evolutionary testing both more efficient and more effective.
13 citations