scispace - formally typeset
Search or ask a question
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
More filters
Journal ArticleDOI
01 Mar 2003
TL;DR: This paper describes a systematic method for transforming programs written as straightforward recursions into programs that use dynamic programming, based on incrementalization, which is more powerful and systematic than previous methods that perform memoization or tabulation.
Abstract: Dynamic programming is an important algorithm design technique. It is used for problems whose solutions involve recursively solving subproblems that share subsubproblems. While a straightforward recursive program solves common subsubproblems repeatedly, a dynamic programming algorithm solves every subsubproblem just once, saves the result, and reuses it when the subsubproblem is encountered again. This can reduce the time complexity from exponential to polynomial. This paper describes a systematic method for transforming programs written as straightforward recursions into programs that use dynamic programming. The method extends the original program to cache all possibly computed values, incrementalizes the extended program with respect to an input increment to use and maintain all cached results, prunes out cached results that are not used in the incremental computation, and uses the resulting incremental program to form an optimized new program. Incrementalization statically exploits semantics of both control structures and data structures and maintains as invariants equalities characterizing cached results. It provides the basis of a general method for achieving drastic program speedups. Compared with previous methods that perform memoization or tabulation, the method based on incrementalization is more powerful and systematic. It has been implemented in a prototype system CACHET and applied to numerous problems and succeeded on all of them.

26 citations

05 Jul 1989
TL;DR: In this paper, the first delay-insensitive 16-bit, RISC-like architecture is presented. The version implemented in 1.6 micron SCMOS runs at 18 MIPS.
Abstract: We have designed the first delay-insensitive microprocessor. It is a 16-bit, RISC-like architecture. The version implemented in 1.6 micron SCMOS runs at 18 MIPS. The chips were found functional on “first silicon.”

26 citations

31 Dec 2010
TL;DR: Spoofax as discussed by the authors is a language workbench for efficient, agile development of textual domain-specific languages with state-of-the-art IDE support, which integrates syntax definition, program transformation, code generation, and declarative specification of IDE components.
Abstract: Spoofax is a language workbench for efficient, agile development of textual domain-specific languages with state-of-the-art IDE support. It provides a comprehensive environment that integrates syntax definition, program transformation, code generation, and declarative specification of IDE components Preprint accepted for publication in SPLASH 2010, Reno (USA) 17-21 Oct, 2010

26 citations

Patent
01 Sep 2004
TL;DR: In this paper, a method and system method for analyzing calls in an executable computer program is provided, which determines if a call is intercepted in a native processor code, analyzes intermediate language code of a function, and checks each function for an exception clause.
Abstract: A method and system method for analyzing calls in an executable computer program is provided. The process determines if a call is intercepted in a native processor code; analyzes intermediate language code of a function if the call is not intercepted in the native processor code; and checks each function for an exception clause. The process also determines if a call is implemented in a managed code or a native processor code; searches for an existing call to a function if the call is implemented in the managed code; adds a new call record if the call does not exist; and links an outgoing argument of the call to an incoming argument of the call. The process also determines if a link between a target node and source node already exists; and creates a link between a target node and a source node if the link does not exist.

26 citations

Book ChapterDOI
29 Sep 1999
TL;DR: The aim of deforestation transformations is to automatically transform a modular-specified program into an efficient-implementable one that gets rid of intermediate data structure constructions that occur when two functions are composed.
Abstract: Software engineering has to reconcile modularity with efficiency. One way to grapple with this dilemma is to automatically transform a modular-specified program into an efficient-implementable one. This is the aim of deforestation transformations which get rid of intermediate data structure constructions that occur when two functions are composed. Beyond classical compile time optimization, these transformations are undeniable tools for generic programming and software component specialization.

26 citations


Network Information
Related Topics (5)
Model checking
16.9K papers, 451.6K citations
92% related
Compiler
26.3K papers, 578.5K citations
88% related
Programming paradigm
18.7K papers, 467.9K citations
87% related
Executable
24K papers, 391.1K citations
86% related
Component-based software engineering
24.2K papers, 461.9K citations
86% related
Performance
Metrics
No. of papers in the topic in previous years
YearPapers
20234
202218
202126
202042
201956
201836