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 2007
TL;DR: A simple and practical solution based on cloning of all procedures, applying any complex optimizations to these clones and randomly selecting either original or transformed procedures at run-time is proposed, which enables practical transparent low-overhead continuous optimizations for programs statically compiled with GCC while avoiding complex dynamic recompilation frameworks.
Abstract: Iterative feedback-directed optimization is now a popular technique to obtain better performance and code size improvements for statically compiled programs over the default settings in a compiler. The offline evaluation of multiple optimization strategies for a given program is a potentially costly operation. The number of iterations typically grows with the complexity of the program transformation search space, and with the number of input datasets used for performance assessment. In addition, as the behavior of a program can vary considerably across different datasets, it is often preferable to generate different optimization versions, covering the full spectrum of the program’s representative datasets. Continuous and collective optimization are targeted at these issues. Continuous optimization searches for the best program transformation at run-time, taking advantages of the phase behavior of programs to evaluate multiple optimization versions within a single run, and dynamically adapting to changing execution contexts. Collective optimization interleaves optimization iterations with program executions along the lifetime of the program. In both cases, the user expects the optimization process to learn from the past execution contexts and program behavior. The user also assumes the system will be fully transparent, take negligible overhead for the incremental profiling, learning, decision and code generation steps, while bringing significant performance benefits over the lifetime of the program. In order to explore multiple optimization options, we propose a simple and practical solution based on cloning of all procedures, applying any complex optimizations to these clones and randomly selecting either original or transformed procedures at run-time. Obtaining execution time distribution among original and cloned procedures, we can statistically determine the influence of compiler optimizations on the code in a single run. The simplicity of the implementation makes this technique reliable, secure and easy to debug. Yet it enables practical transparent low-overhead continuous optimizations for programs statically compiled with GCC while avoiding complex dynamic recompilation frameworks. In addition, our framework can enable program selfadaptation at fine-grain level for different environments such as parallel heterogeneous and

14 citations

Journal ArticleDOI
TL;DR: A simple transformation of logic programs capable of inverting the order of computation is investigated, which may serve such purposes as left-recursion elimination, loop-elimination, simulation of forward reasoning, isotopic modification of programs and simulation of abductive reasoning.
Abstract: We investigate a simple transformation of logic programs capable of inverting the order of computation. Several examples are given which illustrate how this transformation may serve such purposes as left-recursion elimination, loop-elimination, simulation of forward reasoning, isotopic modification of programs and simulation of abductive reasoning.

14 citations

Book ChapterDOI
20 Sep 2005
TL;DR: This paper proposes a tamper resistance technique which provides both on and offline tamper detection, and in this offline approach, the software dynamically detects tampering and causes the program to fail, protecting itself from malicious attacks.
Abstract: Software protection is an area of active research in which a variety of techniques have been developed to address the issue. Examples of such techniques include code obfuscation, software watermarking, and tamper detection. In this paper we propose a tamper resistance technique which provides both on and offline tamper detection. In our offline approach, the software dynamically detects tampering and causes the program to fail, protecting itself from malicious attacks. Additionally, during program execution an event log is maintained which is transmitted to a clearing house when the program is back online.

14 citations

Proceedings ArticleDOI
06 Apr 1994
TL;DR: A program transformation process is described, which transforms originally procedural systems to object-oriented systems, and the objects of the resulting systcrn may then be used for further object- oriented systems engineering, avoiding many problems arising in connection with procedural software reuse.
Abstract: Object-oriented concepts seem to be useful concerning the reuse of ~xlsting soRwarc. Therefore a transformation of procedural programs to object-oriented programs becomes an important process to enhance the reuse potentiai of procedural programs. In this paper we describe a program transformation process, which transforms originally procedural systems to object-oriented systems. The objects of the resulting systcrn may then be used for further object-oriented systems engineering, avoiding many problems arising in connection with procedural software reuse (i.e. module interconnectionl etc.).

14 citations

Proceedings ArticleDOI
02 Dec 2008
TL;DR: A Markov chain-based framework for fast, approximate detection of variants of known morphers wherein every morphing operation independently and predictably alters quickly-checked global program properties is proposed.
Abstract: Of the enormous quantity of malicious programs seen in the wild, most are variations of previously seen programs. Automated program transformation tools-i.e., code morphers-are one of the ways of making such variants in volume. This paper proposes a Markov chain-based framework for fast, approximate detection of variants of known morphers wherein every morphing operation independently and predictably alters quickly-checked global program properties. Specifically, identities from Markov chain theory are applied to approximately determine whether a given program may be a variant created from some given previous program, or whether it definitely is not. The framework is used to define a method for finding telltale signs of the use of closed-world, instruction-substituting transformers within the frequencies of instruction forms found in a program. This decision method may yield a fast technique to aid malware detection.

14 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