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
TL;DR: The resulting empirical study indicates that programmers' comprehension of array safety is improved by amorphous slicing, and an implementation of this algorithm is used to demonstrate the utility of amorphously slicing with respect to code-level analysis of array access safety.

141 citations

Journal Article
TL;DR: Cetus as discussed by the authors is a compiler infrastructure for the source-to-source transformation of programs, which facilitates the development of interprocedural analysis and parallelization techniques for C, C++, and Java programs.
Abstract: Cetus is a compiler infrastructure for the source-to-source transformation of programs. We created Cetus out of the need for a compiler research environment that facilitates the development of interprocedural analysis and parallelization techniques for C, C++, and Java programs. We will describe our rationale for creating a new compiler infrastructure and give an overview of the Cetus architecture. The design is intended to be extensible for multiple languages and will become more flexible as we incorporate feedback from any difficulties we encounter introducing other languages. We will characterize Cetus' runtime behavior of parsing and IR generation in terms of execution time, memory usage, and parallel speedup of parsing, as well as motivate its usefulness through examples of projects that use Cetus. We will then compare these results with those of the Polaris Fortran translator.

140 citations

Journal ArticleDOI
TL;DR: In this paper, an implementation methodology for partial and disjunctive stable models where partiality and disjctions are unfolded from a logic program so that an implementation of stable models for normal (disjunction-free) programs can be used as the core inference engine is presented.
Abstract: This article studies an implementation methodology for partial and disjunctive stable models where partiality and disjunctions are unfolded from a logic program so that an implementation of stable models for normal (disjunction-free) programs can be used as the core inference engine. The unfolding is done in two separate steps. First, it is shown that partial stable models can be captured by total stable models using a simple linear and modular program transformation. Hence, reasoning tasks concerning partial stable models can be solved using an implementation of total stable models. Disjunctive partial stable models have been lacking implementations which now become available as the translation handles also the disjunctive case. Second, it is shown how total stable models of disjunctive programs can be determined by computing stable models for normal programs. Thus an implementation of stable models of normal programs can be used as a core engine for implementing disjunctive programs. The feasibility of the approach is demonstrated by constructing a system for computing stable models of disjunctive programs using the SMODELS system as the core engine. The performance of the resulting system is compared to that of DLV, which is a state-of-the-art system for disjunctive programs.

140 citations

Journal ArticleDOI
TL;DR: An approach to automated concept recognition and its application to maintenance-related program transformations are described, with a unique characteristic that transformations of code can be expressed as transformations of abstract concepts.
Abstract: The automated recognition of abstract high-level conceptual information or concepts, which can greatly aid the understanding of programs and therefore support many software maintenance and reengineering activities, is considered. An approach to automated concept recognition and its application to maintenance-related program transformations are described. A unique characteristic of this approach is that transformations of code can be expressed as transformations of abstract concepts. This significantly elevates the level of transformation specifications. >

137 citations

Journal ArticleDOI
TL;DR: This report discusses the documentation requirements of the development process and describes a prototype system for constructing and maintaining this documentation information and indicates the many remaining open issues and the direction to be taken in the pursuit of solutions.
Abstract: : Automated program transformation systems are emerging as the basis for a new programming methodology in which high-level, understandable specifications are transformed into efficient programs. Subsequent modification of the original specification will be dealt with by reimplementation of the specification. For such a system to be practical, these reimplementations must occur relatively quickly and reliably, in comparison with the original implementation. We believe the reimplementation requirement necessitates that a formal document--the program development--be constructed during the development process to explain the resulting implementation to future maintainters of the specification. The overall goal of our work has been to develop a language for capturing and explaining these developments and the resulting implementations. This language must be capable of expressing: the implementor's goal structure, all program manipulations necessary for implementation and optimization, and plans of such optimizations. In this report, we discuss the documentation requirements of the development process and then describe a prototype system for constructing and maintaining this documentation information. Finally, we indicate the many remaining open issues and the direction to be taken in the pursuit of solutions. (Author)

137 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