Results 11 
18 of
18
Unfold/Fold Transformations of Concurrent Processes
 Proc. 8th Int'l Symp. on Programming Languages: Implementations, Logics and Programs
, 1996
"... Program transformation is a technique for obtaining, starting from a program P, a semantically equivalent one, which is "better" than P with respect to a particular goal. Traditionally, the main goal of program transformation was obtaining more efficient programs, but, in general, this technique can ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Program transformation is a technique for obtaining, starting from a program P, a semantically equivalent one, which is "better" than P with respect to a particular goal. Traditionally, the main goal of program transformation was obtaining more efficient programs, but, in general, this technique can be used to produce programs written in a syntactic form satisfying some properties. Program transformation techniques have been extensively studied in the framework of functional and logic languages, where they were applied mainly to obtain more efficient and readable programs. All these works are based on the Unfold/Fold program transformation method developed by Burstall and Darlington in the context of their recursive equational language. The use of Unfold /Fold based transformations for concurrent languages is a relevant issue that has not yet received an adequate attention. In fact the existing proposals of transformations of concurrent programs are not based on a general Unfold/Fold transformation theory. The aim of this paper is to define such a theory for the concurrent calculus CCS and to prove it correct. 1
A System for Transforming Logic Programs
, 1997
"... We describe a system for transforming logic programs using the unfold/fold methodology. The system provides the user with some predefined transformation rules. A transformation process consists of a sequence of applications of those rules, starting from a given initial program. The user selects a tr ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
We describe a system for transforming logic programs using the unfold/fold methodology. The system provides the user with some predefined transformation rules. A transformation process consists of a sequence of applications of those rules, starting from a given initial program. The user selects a transformation rule to be applied, which transforms the initial program into a new equivalent one. Several such derivation steps may be performed interactively, until the desired program is derived. Some strategies are also available, which perform fully automatically a sequence of derivation steps for realizing specific transformations. The report is intended to describe the functionalities of the system, and it should serve as a user's manual. Contents 1 Introduction 3 2 An example transformation: The scalar product 3 3 Transformations rules 5 3.1 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 Semantics preservation . . . . . . . . . ....
Design, Implementation, And Use Of The Map Transformation System
, 1998
"... The MAP transformation system is a tool which supports the interactive derivation of logic programs using the unfold/fold transformation methodology. A derivation consists of a sequence of applications of some predened transformation rules, starting from a given initial program. When a rule is invok ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
The MAP transformation system is a tool which supports the interactive derivation of logic programs using the unfold/fold transformation methodology. A derivation consists of a sequence of applications of some predened transformation rules, starting from a given initial program. When a rule is invoked, if the conditions of its application are satised, the system transforms the current program into a new program. Such transformation steps may be performed interactively, in a sequence, until a nal program is derived. The system provides a graphical user interface through which the transformation rules are applied by means of mouse clicks, button presses, menu selections, and dialog boxes. MAP also provides the user with many facilities for controlling and documenting program derivations, such as exploring alternative derivations, printing, saving, and restoring derivations. Key words: Automatic program derivation, program transformation, logic programming, transformation rules, graphi...
Controlling Conjunctive Partial Deduction
, 1996
"... . Partial deduction within Lloyd and Shepherdson's framework transforms different atoms of a goal independently and therefore fails to achieve a number of unfold/fold transformations. A recent framework for conjunctive partial deduction allows unfold/fold transformations by specialisation of entire ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
. Partial deduction within Lloyd and Shepherdson's framework transforms different atoms of a goal independently and therefore fails to achieve a number of unfold/fold transformations. A recent framework for conjunctive partial deduction allows unfold/fold transformations by specialisation of entire conjunctions, but does not give an actual algorithm for conjunctive partial deduction, and in particular does not address control issues (e.g. how to select atoms for unfolding). Focusing on novel challenges specific to local and global control, we describe a generic algorithm for conjunctive partial deduction, refine it into a fully automatic concrete algorithm, and prove termination and correctness. 1 Introduction Partial deduction, introduced by Komorowski [17] and formalised by Lloyd and Shepherdson [24], takes a program and a query and returns a specialised program tuned towards answering any instance of the query. Partial deduction in Lloyd and Shepherdson's framework cannot achieve c...
Developing Correct and Efficient Logic Programs by Transformation
 Knowledge Engineering Review
, 1996
"... this paper, from formal specifications one may obtain executable, efficient programs by using techniques for transforming logic programs. This is, indeed, one of the reasons that makes logic programming very attractive for program construction. During this final step from specifications to programs, ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
this paper, from formal specifications one may obtain executable, efficient programs by using techniques for transforming logic programs. This is, indeed, one of the reasons that makes logic programming very attractive for program construction. During this final step from specifications to programs, in order to improve efficiency one may want to use program transformation for avoiding multiple visits of data structures, or replacing complex forms of recursion by tail recursion, or reducing nondeterminism of procedures. This paper is structured as follows. In Section 2 we present the rulebased approach to program transformation and its use for the derivation and synthesis of logic programs from specifications. In Section 3 we consider the schemabased transformation technique for the development of efficient programs. In Section 4 we consider the partial evaluation technique and its use for the specialization of logic programs when the input data are partially known at compile time. In the final section we discuss some of the achievements and challanges of program transformation as a tool for logicbased software engineering. For simplicity reasons in this paper we will only consider definite logic programs, although most of the techniques we will describe can be applied also in the case of general logic programs. We refer to [35, 41] for all notions concerning logic programming and logic program transformation which are not explicitly presented here.
A Program Transformations Methodology for CCS
 In Proceedings of the Fifth Italian Conference of Theoretical Computer Science
, 1995
"... The use of the program transformation methodology has been extensively studied in the framework of functional and logical languages. The aim of this paper is to evaluate the feasibility of a program transformation technique for concurrent programs, and in particular for CCS ones, with the aim of ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
The use of the program transformation methodology has been extensively studied in the framework of functional and logical languages. The aim of this paper is to evaluate the feasibility of a program transformation technique for concurrent programs, and in particular for CCS ones, with the aim of obtaining a program which has a "more manageable " syntactic form than the initial one, for example for proving properties of programs. In the paper we define a transformation methodology for CCS based on the "rules + strategies" approach. We first define a set of general "equivalence preserving" rules, which are a specialization, for CCS, of classical program transformation rules, such as Folding and Unfolding. Then we define a class of transformation rules specific for CCS. Finally, we give a strategy, using the defined rules, to transform, if possible, a CCS program into one whose operational semantics is a finite state transition system. The problem is significant, since most of the existing verification environments for CCSlike languages are based on an internal finite state representation of the program. We show that the set of programs for which our strategy succeeds properly contains the set of programs for which other existing methods succeed. 1
A. Pettorossi, M. Proietti TRANSFORMATION OF LOGIC PROGRAMS: FOUNDATIONS AND TECHNIQUES
"... This work has been partially supported by “Progetto Finalizzato Sistemi ..."