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
18 Aug 1980

12 citations

Book ChapterDOI
22 Aug 2004
TL;DR: In this article, the authors define new model-theoretical and fixpoint-based characterizations of the well-founded semantics for logic programs in the general setting of bilattices.
Abstract: We define new, both model-theoretical and fixpoint-based, characterizations of the well-founded semantics for logic programs in the general setting of bilattices. This work lights the role of the CWA, used in the well-founded semantics as a carrier of falsehood, and shows that the definition of that semantics does not require any separation of positive and negative information nor any program transformation.

12 citations

Proceedings ArticleDOI
11 Nov 2014
TL;DR: A new graph representation of programs with specified target variables intended to be processed by third-party applications querying target variables such as testers and verifiers is presented, which is path-sensitive and sliced with respect to the target variables.
Abstract: We present a new graph representation of programs with specified target variables. These programs are intended to be processed by third-party applications querying target variables such as testers and verifiers. The representation embodies two concepts. First, it is path-sensitive in the sense that multiple nodes representing one program point may exist so that infeasible paths can be excluded. Second, and more importantly, it is sliced with respect to the target variables. This key step is founded on a novel idea introduced in this paper, called ``Tree Slicing'', and on the fact that slicing is more effective when there is path sensitivity. Compared to the traditional Control Flow Graph (CFG), the new graph may be bigger (due to path-sensitivity) or smaller (due to slicing). We show that it is not much bigger in practice, if at all. The main result however concerns its quality: third-party testers and verifiers perform substantially better on the new graph compared to the original CFG.

12 citations

Journal ArticleDOI
TL;DR: This paper presents an example of formal reasoning about the semantics of a Prolog program of practical importance (the SAT solver of Howe and King), and shows that the paradigm of semantics-preserving program transformations may be not sufficient.
Abstract: This paper presents an example of formal reasoning about the semantics of a Prolog program of practical importance (the SAT solver of Howe and King). The program is treated as a definite clause logic program with added control. The logic program is constructed by means of stepwise refinement, hand in hand with its correctness and completeness proofs. The proofs are declarative – they do not refer to any operational semantics. Each step of the logic program construction follows a systematic approach to constructing programs which are provably correct and complete. We also prove that correctness and completeness of the logic program is preserved in the final Prolog program. Additionally, we prove termination, occur-check freedom and non-floundering. Our example shows how dealing with “logic” and with “control” can be separated. Most of the proofs can be done at the “logic” level, abstracting from any operational semantics. The example employs approximate specifications; they are crucial in simplifying reasoning about logic programs. It also shows that the paradigm of semantics-preserving program transformations may be not sufficient. We suggest considering transformations which preserve correctness and completeness with respect to an approximate specification.

12 citations

Journal ArticleDOI
01 Dec 1990
TL;DR: Curare, the program restructurer described in this paper automatically transforms a sequential Lisp program into an equivalent concurrent program that runs on a multiprocessor, resulting in programs that execute significantly faster than the original sequential programs.
Abstract: Curare, the program restructurer described in this paper automatically transforms a sequential Lisp program into an equivalent concurrent program that runs on a multiprocessor.

12 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