scispace - formally typeset
Book ChapterDOI

Unfold/Fold Transformations of Concurrent Processes

Reads0
Chats0
TLDR
The aim of this paper is to define a theory of transformations of concurrent programs based on Unfold/Fold based transformations for the concurrent calculus CCS and to prove it correct.
Abstract
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.

read more

Citations
More filters
Journal ArticleDOI

Transformations of CCP programs

TL;DR: In this article, a transformation system for concurrent constraint programming (CCP) is presented, which allows us to optimize CCP programs while preserving their intended meaning, which can also lead to the elimination of communication channels and synchronization points, to the transformation of nondeterministic computations into deterministic ones, and to the crucial saving of computational space.
Posted Content

Transformations of CCP programs

TL;DR: A transformation system for concurrent constraint programming that preserves the deadlock behavior of programs and can be used for proving deadlock-freeness of a given program with respect to a class of queries.
Proceedings ArticleDOI

Partial-evaluation techniques for concurrent programs

TL;DR: This paper presents an application of partial evaluation (program specialization) techniques to concurrent programs and addresses pragmatic concerns such as improving the binding-time analysis, controlling loop unrolling and the consequences of lifting nondeterminism from run-time to specialization-time.
Proceedings ArticleDOI

A transformation system for CLP with dynamic scheduling and CCP

TL;DR: This paper defines suitable applicability conditions for unfold/fold transformations which guarantee that the original and the transformed program have the same results of successful derivations and the same deadlock free queries.
Journal Article

Unfold/fold transformations of CCP programs

TL;DR: In this paper, a transformation system for concurrent constraint programming (CCP) is presented, which allows to optimize CCP programs while preserving their intended meaning, since it can be used for proving deadlock freeness of a class of queries in a given program.
References
More filters
Book

Communication and Concurrency

TL;DR: This chapter discusses Bisimulation and Observation Equivalence as a Modelling Communication, a Programming Language, and its application to Equational laws.
Journal ArticleDOI

A Transformation System for Developing Recursive Programs

TL;DR: A system of rules for transforming programs, with the programs in the form of recursion equations, are described, with an initially very simple, lucid, and hopefully correct program transformed into a more efficient one by altering the recursion structure.
Journal ArticleDOI

Model checking and abstraction

TL;DR: Using techniques similar to those involved in abstract interpretation, an abstract model of a program is constructed without ever examining the corresponding unabstracted model, and it is shown how this abstract model can be used to verify properties of the original program.
Journal ArticleDOI

CCS expressions finite state processes, and three problems of equivalence

TL;DR: The computational complexity of testing finite state processes for equivalence in Milner's Calculus of Communicating Systems (CCS) is examined and it is proved that observational equivalence can be tested in polynomial time and that testing for failure equivalence is PSPACE-complete.