Results 1 
6 of
6
Dactl: An Experimental Graph Rewriting Language
 Proc. 4th International Workshop on Graph Grammars
, 1991
"... This paper gives some examples of how computation in a number of languages may be described as graph rewriting, giving the Dactl notation for the examples shown. It goes on to present the Dactl model more formally before giving a formal definition of the syntax and semantics of the language. 2 Examp ..."
Abstract

Cited by 36 (7 self)
 Add to MetaCart
This paper gives some examples of how computation in a number of languages may be described as graph rewriting, giving the Dactl notation for the examples shown. It goes on to present the Dactl model more formally before giving a formal definition of the syntax and semantics of the language. 2 Examples of Computation by Graph Rewriting
Translating Core Facile
, 1995
"... In first approximation Core Facile is a simply typed calculus enriched with parallel composition, dynamic channel generation, and inputoutput synchronous communication primitives. In this paper we explore the (dynamic) semantics of core Facile programs. This should be taken as a basis for the def ..."
Abstract

Cited by 20 (2 self)
 Add to MetaCart
(Show Context)
In first approximation Core Facile is a simply typed calculus enriched with parallel composition, dynamic channel generation, and inputoutput synchronous communication primitives. In this paper we explore the (dynamic) semantics of core Facile programs. This should be taken as a basis for the definition of abstract machines, the transformation of programs, and the development of modal specification languages. We claim two main contributions. We introduce a new semantics based on the notion of barbed bisimulation. We argue that the derived equivalence provides a more satisfying treatment of restriction, in particular by proving the adequacy of a natural translation of Facile into ßcalculus we suggest that our approach is in good harmony with previous research on the semantics of subcalculi of Core Facile such as Chocs and ßcalculus. We illustrate at an abstract level various aspects of Facile compilation. In particular we introduce an `asynchronous' version of the Facile language...
Process Semantics of Graph Reduction
 Proc. CONCUR '95, volume 962 of Lecture Notes in Computer Science
, 1995
"... This paper introduces an operational semantics for callbyneed reduction in terms of Milner's ßcalculus. The functional programming interest lies in the use of ßcalculus as an abstract yet realistic target language. The practical value of the encoding is demonstrated with an outline for a pa ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
(Show Context)
This paper introduces an operational semantics for callbyneed reduction in terms of Milner's ßcalculus. The functional programming interest lies in the use of ßcalculus as an abstract yet realistic target language. The practical value of the encoding is demonstrated with an outline for a parallel code generator. From a theoretical perspective, the ßcalculus representation of computational strategies with shared reductions is novel and solves a problem posed by Milner [13]. The compactness of the process calculus presentation makes it interesting as an alternative definition of callbyneed. Correctness of the encoding is proved with respect to the callbyneed calculus of Ariola et al. [3]. 1 Introduction Graph reduction of extended calculi has become a mature field of applied research. The efficiency of the implementations is due in great measure to a technique known as `sharing', whereby argument values are computed (at most) once and then memoized for future reference. Both...
MultiParadigm Programming through Graph Rewriting Final Report of EPSRC Grant GR/H 41300
"... ..."
(Show Context)
A Process Semantics for Functional Programming
"... The semantics of lazy functional programming languages is usually presented in two different ways: a semantics based on trees which is used to reason about a program; and a semantics based on graphs which is used to implement a program. The link between these semantics is often unclear. We present a ..."
Abstract
 Add to MetaCart
(Show Context)
The semantics of lazy functional programming languages is usually presented in two different ways: a semantics based on trees which is used to reason about a program; and a semantics based on graphs which is used to implement a program. The link between these semantics is often unclear. We present a process semantics for functional programming which has a number of interesting properties. Firstly it is structured in such a way that the relationship between the tree and graph semantics is clear. Secondly, it captures the main requirements of functional programming by incorporating laziness, cycles and strictness. Lastly, there is a simple formal correspondence between this semantics and other operational presentations. 1 Introduction The semantics of a lazy functional programming language may be characterized in two ways. Firstly, terms may be considered to be trees which are evaluated using a leftmostoutermost reduction (or callbyname) strategy until they are in weak head normal fo...