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
Proceedings Article
07 Jan 2018
TL;DR: In this article, the effect of data cache transformations on the actual cache miss count is ignored in compilers, due to the lack of precise compile-time models of misses for hierarchical caches.
Abstract: Modern optimizing compiler design integrates program transformation strategies aimed at reducing data movement to/from main memory, exploiting the data cache hierarchy. But in reality, the effect of these transformations on the actual cache miss count is ignored in compilers, due to the lack of precise compile-time models of misses for hierarchical caches. Going a step further, when considering real-life systems, the data is vulnerable to hardware faults (e.g., bit flip) when it is stored in a cache without automatic error detection/correction. Determining the cache vulnerability of a program requires the computation of the lifetime of each data element in the cache, and the current state of practice for both cache miss analysis as well as vulnerability analysis is based on accurate simulation.

32 citations

Journal ArticleDOI
Martin Ward1
TL;DR: A detailed look at a larger example of program analysis by transformation, carried out in the WSL language, a «wide spectrum language» which includes both low-level program operations and high level specifications, and which has been specifically designed to be easy to transform.
Abstract: In this paper we will take a detailed look at a larger example of program analysis by transformation. We will be considering Algorithm 2.3.3.A from Knuth's «Fundamental Algorithms» Knuth (1968) (p. 357) which is an algorithm for the addition of polynomials represented using four-directional links. Knuth (1974) describes this as having «a complicated structure with excessively unrestrained goto statements» and goes on to say «I hope someday to see the algorithm cleaned up without loss of its efficiency». Our aim is to manipulate the program, using semantics-preserving operations, into an equivalent, high-level specification. The transformations are carried out in the WSL language, a «wide spectrum language» which includes both low-level program operations and high level specifications, and which has been specifically designed to be easy to transform

32 citations

Proceedings ArticleDOI
01 Jan 1997
TL;DR: This work considers a set of transformation rules which extend the ones used for partial evaluation, and proposes a strategy to direct the application of these extended rules so to derive very efficient specialized programs.
Abstract: Program specialization is a collection of program transformation techniques for improving program efficiency by exploiting some information available at compile-time about the input data. We show that current techniques for program specialization based on partial evaluation do not perform well on nondeterministic logic programs. We then consider a set of transformation rules which extend the ones used for partial evaluation, and we propose a strategy to direct the application of these extended rules so to derive very efficient specialized programs. The efficiency improvements which may even be exponential, are achieved because the derived programs are semi-deterministic and the operations which are performed by the initial programs in different branches of the computation trees, are performed in the specialized programs within single branches. We also make use of mode information to guide the unfolding process and to reduce nondeterminism. To exemplify our technique, we show that we can automatically derive very efficient semi-deterministic matching programs and semi-deterministic parsers for regular languages. The derivations we have performed could not have been done by previously known partial evaluation techniques.

32 citations

Book ChapterDOI
18 Jul 2005
TL;DR: How formal and informal modeling language can be cooperatively used in the MDA framework and how the trans-formations between models in these languages can be achieved using an MDA development environment are shown.
Abstract: The Model Driven Architecture (MDA) involves automated trans-formations between software models defined in different languages at different abstraction levels. This paper takes an MDA approach to integrate a formal modeling language (Object-Z) with an informal modeling language (UML) via model transformation. This paper shows how formal and informal modeling languages can be cooperatively used in the MDA framework and how the trans-formations between models in these languages can be achieved using an MDA development environment. The MDA model transformation techniques allow us to have a reusable transformation between formal and informal modeling languages. The integrated approach provides an effective V&V technique for the MDA.

32 citations

29 Aug 1999
TL;DR: The overall thesis of this paper is that suitable operator suites for automated adaptations and a corresponding transformational programming style can eventually be combined with other programming styles, such as polymorphic programming, modular programming, or the monadic style, in order to improve reusability of functional programs.
Abstract: Certain adaptations, that are usually performed manually by functional programmers are formalized by program transformations in this paper. We focus on adaptations to obtain a more reusable version of a program or a version needed for a special use case. The paper provides a few examples, namely propagation of additional parameters, introduction of monadic style, and symbolic rewriting. The corresponding transformations are specified by inference rules in the style of natural semantics. Preservation properties such as type and semantics preservation are discussed. The overall thesis of this paper is that suitable operator suites for automated adaptations and a corresponding transformational programming style can eventually be combined with other programming styles, such as polymorphic programming, modular programming, or the monadic style, in order to improve reusability of functional programs. Partial support received from the Netherlands Organization for Scientific Research (NWO) under the Generation of Program Transformation Systems project

32 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