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
01 Jan 2004
TL;DR: This work shows how search-based meta-heuristic algorithms can be used to automate, or partly automate the problem of finding good transformation sequences, and indicates that the genetic algorithm performs significantly better than either hill climbing or random search.
Abstract: Program transformation is useful in a number of applications including program comprehension, reverse engineering and compiler optimization. In all these applications, transformation algorithms are constructed by hand for each different transformation goal. Loosely speaking, a transformation algorithm defines a sequence of transformation steps to apply to a given program. It is notoriously hard to find good transformation sequences automatically, and so much (costly) human intervention is required. This work shows how search-based meta-heuristic algorithms can be used to automate, or partly automate the problem of finding good transformation sequences. In this case, the goal of transformation is to reduce program size, but the approach is sufficiently general that it can be used to optimize any source-code level metric. The search techniques used are random search (RS), hill climbing (HC) and genetic algorithms (GA). The paper reports the result of initial experiments on small synthetic program transformation problems. The results are encouraging. They indicate that the genetic algorithm performs significantly better than either hill climbing or random search.

33 citations

Book ChapterDOI
01 Jan 1985
TL;DR: This work transforms a correct (and understandable) initial design into one which is more suitable for VLSI implementation, and uses some higher order functions from programming and two which were introduced specifically for describing and reasoning about regular arrays.
Abstract: Functional programmers often use higher order functions such as map, reduce and filter in writing programs. By giving such higher order functions geometric as well as behavioural interpretation, we use similar techniques to design regular array architectures. We use some higher order functions from programming and two which were introduced specifically for describing and reasoning about regular arrays. Our higher order functions obey a number of algebraic laws. This allows us to use program transformation in the design process. We transform a correct (and understandable) initial design into one which is more suitable for VLSI implementation. The algebraic laws guarantee the correctness of the final circuit.

33 citations

Proceedings ArticleDOI
21 Jul 2014
TL;DR: This work addresses two objectives: comparing dierent transformations for increasing the likelihood of sosie synthe- sis (densifying the search space for sosies); demonstrating computation diversity in synthesized sosying.
Abstract: The predictability of program execution provides attackers a rich source of knowledge who can exploit it to spy or remotely control the program. Moving target defense ad- dresses this issue by constantly switching between many di- verse variants of a program, which reduces the certainty that an attacker can have about the program execution. The ef- fectiveness of this approach relies on the availability of a large number of software variants that exhibit dierent ex- ecutions. However, current approaches rely on the natural diversity provided by o-the-shelf components, which is very limited. In this paper, we explore the automatic synthe- sis of large sets of program variants, called sosies. Sosies provide the same expected functionality as the original pro- gram, while exhibiting dierent executions. They are said to be computationally diverse. This work addresses two objectives: comparing dierent transformations for increasing the likelihood of sosie synthe- sis (densifying the search space for sosies); demonstrating computation diversity in synthesized sosies. We synthesized 30 184 sosies in total, for 9 large, real-world, open source ap- plications. For all these programs we identied one type of program analysis that systematically increases the density of sosies; we measured computation diversity for sosies of 3 programs and found diversity in method calls or data in more than 40% of sosies. This is a step towards controlled massive unpredictability of software.

33 citations

Proceedings ArticleDOI
23 Jun 2004
TL;DR: This work advocates for and experimented with a program transformation to deal with schizophrenia through preprocessing in the Esterel language extended with a non-instantaneous jump statement, establishing the correctness, the completeness and the efficiency of the approach.
Abstract: Synchronous languages such as Esterel can execute a series of statements in a single "instant" of time. If this series spans a loop iteration then it is possible that a computation local to the loop will have several distinct results during that "instant", which is referred to as schizophrenia. This makes the compilation of synchronous languages into more traditional computation models (such as C code or sequential logic) difficult. In a previous work (2004), we suggested to deal with schizophrenia through preprocessing in the Esterel language extended with a non-instantaneous jump statement. We now advocate for and experimented with such a program transformation, establishing the correctness, the completeness and the efficiency of our approach.

33 citations

Proceedings ArticleDOI
T.M. Bull1
26 Nov 1990
TL;DR: The author looks at the reasons for developing program transformation systems and presents the argument that program transformation is a valid approach to software maintenance, and describes the transformer built into the Maintainer's Assistant, a tool that aims to help the maintainer recover specifications from code.
Abstract: The author looks at the reasons for developing program transformation systems and reviews the work in this area. He then presents the argument that program transformation is a valid approach to software maintenance. Next he describes the transformer built into the Maintainer's Assistant, a tool that aims to help the maintainer recover specifications from code. He shows how it differs from existing systems, in particular, in using a subset of the language it is transforming in order to write the transformations themselves. Finally, he looks at ways of automating the transformation system and other unresolved issues. >

33 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