Results 1  10
of
17
Conventional and Uniqueness Typing in Graph Rewrite Systems (Extended Abstract)
 In Proceedings of the 13th Conference on the Foundations of Software Technology and Theoretical Computer Science
, 1993
"... In this paper we describe a Currylike type system for graphs and extend it with uniqueness information to indicate that certain objects are only `locally accessible'. The correctness of type assignment guarantees that no external access on such an object will take place in the future. We prove that ..."
Abstract

Cited by 69 (5 self)
 Add to MetaCart
In this paper we describe a Currylike type system for graphs and extend it with uniqueness information to indicate that certain objects are only `locally accessible'. The correctness of type assignment guarantees that no external access on such an object will take place in the future. We prove that types are preserved under reduction (for both type systems) for a large class of rewrite systems. Adding uniqueness information provides a solution to two problems in implementations of functional languages: efficient space management and interfacing with nonfunctional operations.
Concurrent Clean
, 1991
"... Concurrent Clean is an experimental, lazy, higherorder parallel functional programming language based on term graph rewriting. An important difference with other languages is that in Clean graphs are manipulated and not terms. This can be used by the programmer to control communication and sharing ..."
Abstract

Cited by 60 (4 self)
 Add to MetaCart
Concurrent Clean is an experimental, lazy, higherorder parallel functional programming language based on term graph rewriting. An important difference with other languages is that in Clean graphs are manipulated and not terms. This can be used by the programmer to control communication and sharing of computation. Cyclic structures can be defined. Concurrent Clean furthermore allows to control the (parallel) order of evaluation to make efficient evaluation possible. With help of sequential annotations the default lazy evaluation can be locally changed into eager evaluation. The language enables the definition of partially strict data structures which make a whole new class of algorithms feasible in a functional language. A powerful and fast strictness analyser is incorporated in the system. The quality of the code generated by the Clean compiler has been greatly improved such that it is one of the best code generators for a lazy functional language. Two very powerful parall...
An Algebraic Presentation of Term Graphs, via GSMonoidal Categories
 Applied Categorical Structures
, 1999
"... . We present a categorical characterisation of term graphs (i.e., finite, directed acyclic graphs labeled over a signature) that parallels the wellknown characterisation of terms as arrows of the algebraic theory of a given signature (i.e., the free Cartesian category generated by it). In particula ..."
Abstract

Cited by 37 (24 self)
 Add to MetaCart
. We present a categorical characterisation of term graphs (i.e., finite, directed acyclic graphs labeled over a signature) that parallels the wellknown characterisation of terms as arrows of the algebraic theory of a given signature (i.e., the free Cartesian category generated by it). In particular, we show that term graphs over a signature \Sigma are onetoone with the arrows of the free gsmonoidal category generated by \Sigma. Such a category satisfies all the axioms for Cartesian categories but for the naturality of two transformations (the discharger ! and the duplicator r), providing in this way an abstract and clear relationship between terms and term graphs. In particular, the absence of the naturality of r and ! has a precise interpretation in terms of explicit sharing and of loss of implicit garbage collection, respectively. Keywords: algebraic theories, directed acyclic graphs, gsmonoidal categories, symmetric monoidal categories, term graphs. Mathematical Subject Clas...
A 2Categorical Presentation of Term Graph Rewriting
 CATEGORY THEORY AND COMPUTER SCIENCE, VOLUME 1290 OF LNCS
, 1997
"... It is wellknown that a term rewriting system can be faithfully described by a cartesian 2category, where horizontal arrows represent terms, and cells represent rewriting sequences. In this paper we propose a similar, original 2categorical presentation for term graph rewriting. Building on a re ..."
Abstract

Cited by 34 (17 self)
 Add to MetaCart
It is wellknown that a term rewriting system can be faithfully described by a cartesian 2category, where horizontal arrows represent terms, and cells represent rewriting sequences. In this paper we propose a similar, original 2categorical presentation for term graph rewriting. Building on a result presented in [8], which shows that term graphs over a given signature are in onetoone correspondence with arrows of a gsmonoidal category freely generated from the signature, we associate with a term graph rewriting system a gsmonoidal 2category, and show that cells faithfully represent its rewriting sequences. We exploit the categorical framework to relate term graph rewriting and term rewriting, since gsmonoidal (2)categories can be regarded as "weak" cartesian (2)categories, where certain (2)naturality axioms have been dropped.
Guaranteeing Safe Destructive Updates through a Type System with Uniqueness Information for Graphs
, 1994
"... In this paper we present a type system for graph rewrite systems: uniqueness typing . It employs usage information to deduce whether an object is `unique' at a certain moment, i.e. is only locally accessible. In a type of a function it can be specified that the function requires a unique argument ob ..."
Abstract

Cited by 32 (1 self)
 Add to MetaCart
In this paper we present a type system for graph rewrite systems: uniqueness typing . It employs usage information to deduce whether an object is `unique' at a certain moment, i.e. is only locally accessible. In a type of a function it can be specified that the function requires a unique argument object. The correctness of type assignment guarantees that no external access on the original object will take place in the future. The presented type system is proven to be correct. We illustrate the power of the system by defining an elegant quicksort algorithm that performs the sorting in situ on the data structure. 1. Introduction Some operations on complex data structures (such as arrays) cannot be implemented efficiently without allowing a form of destructive updating. For convenience, we speak about those functions as `destructively using' their arguments. In case of graphlike implementations of functional languages without any precautions, this destructive usage is dangerous: on the ...
Generating Efficient Code for Lazy Functional Languages
, 1991
"... In this paper we will discuss how a good code generator can be built for (lazy) functional languages. Starting from Concurrent Clean, an experimental lazy functional programming language, code is generated for an intermediate abstract machine: the ABC machine. In this first pass many wellknown opti ..."
Abstract

Cited by 23 (5 self)
 Add to MetaCart
In this paper we will discuss how a good code generator can be built for (lazy) functional languages. Starting from Concurrent Clean, an experimental lazy functional programming language, code is generated for an intermediate abstract machine: the ABC machine. In this first pass many wellknown optimisation techniques are included. However, we will also present some new ideas in this area, like the way in which strictness can be incorporated, and the implementation of higher order functions. In a second pass, the ABC code is translated to concrete target code for the Motorola MC680x0 processor. Again many optimisation methods appear to be applicable. Some of them (for example register allocation algorithms) are common for the implementation of other types of languages, but have to be adapted because of the specific properties of both source language and target machine. Other optimisations are specific for lazy functional languages, e.g. the implementation of higher order functions, eff...
The Functional Strategy and Transitive Term Rewriting Systems
, 1993
"... The functional strategy has been widely used implicitly (Haskell, Miranda, Lazy ML) and explicitly (Clean) as an efficient, intuitively easy to understand reduction strategy for term (or graph) rewriting systems. However, little is known of its formal properties since the strategy deals with priorit ..."
Abstract

Cited by 15 (1 self)
 Add to MetaCart
The functional strategy has been widely used implicitly (Haskell, Miranda, Lazy ML) and explicitly (Clean) as an efficient, intuitively easy to understand reduction strategy for term (or graph) rewriting systems. However, little is known of its formal properties since the strategy deals with priority rewriting which significantly complicates the semantics. Nevertheless, this paper shows that some formal results about the functional strategy can be produced by studying the functional strategy entirely within the standard framework of orthogonal term rewriting systems. A concept is introduced that is one of the key aspects of the efficiency of the functional strategy: transitive indexes . The corresponding class of transitive term rewriting systems is characterized. An efficient normalizing strategy is given for these rewriting systems. It is shown that the functional strategy is normalizing for the class of leftincompatible term rewriting systems. 1. Introduction An interesting commo...
Rewriting On Cyclic Structures: Equivalence Between The Operational And The Categorical Description
, 1999
"... . We present a categorical formulation of the rewriting of possibly cyclic term graphs, based on a variation of algebraic 2theories. We show that this presentation is equivalent to the wellaccepted operational definition proposed by Barendregt et aliibut for the case of circular redexes, fo ..."
Abstract

Cited by 12 (6 self)
 Add to MetaCart
. We present a categorical formulation of the rewriting of possibly cyclic term graphs, based on a variation of algebraic 2theories. We show that this presentation is equivalent to the wellaccepted operational definition proposed by Barendregt et aliibut for the case of circular redexes, for which we propose (and justify formally) a different treatment. The categorical framework allows us to model in a concise way also automatic garbage collection and rules for sharing/unsharing and folding/unfolding of structures, and to relate term graph rewriting to other rewriting formalisms. R'esum'e. Nous pr'esentons une formulation cat'egorique de la r'e'ecriture des graphes cycliques des termes, bas'ee sur une variante de 2theorie alg'ebrique. Nous prouvons que cette pr'esentation est 'equivalente `a la d'efinition op'erationnelle propos'ee par Barendregt et d'autres auteurs, mais pas dons le cas des radicaux circulaires, pour lesquels nous proposons (et justifions formellem...
Observing reductions in nominal calculi via a graphical encoding of processes
 Processes, terms and cycles (Klop Festschrift), volume 3838 of LNCS
"... Abstract. The paper introduces a novel approach to the synthesis of labelled transition systems for calculi with name mobility. The proposal is based on a graphical encoding: Each process is mapped into a (ranked) graph, such that the denotation is fully abstract with respect to the usual structural ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
Abstract. The paper introduces a novel approach to the synthesis of labelled transition systems for calculi with name mobility. The proposal is based on a graphical encoding: Each process is mapped into a (ranked) graph, such that the denotation is fully abstract with respect to the usual structural congruence (i.e., two processes are equivalent exactly when the corresponding encodings yield the same graph). Ranked graphs are naturally equipped with a few algebraic operations, and they are proved to form a suitable (bi)category of cospans. Then, as proved by Sassone and Sobocinski, the synthesis mechanism based on relative pushout, originally proposed by Milner and Leifer, can be applied. The resulting labelled transition system has ranked graphs as both states and labels, and it induces on (encodings of) processes an observational equivalence that is reminiscent of early bisimilarity.
A Derivation System for Uniqueness Typing
 SEGRAGRA'95: Joint Compugraph/Semagraph Workshop on Graph Rewriting and Computation, Volterra (Pisa), Italy, Electronic Notes in Theoretical Computer Science, Elsevier Science
, 1995
"... We present two systems for firstorder typing of graph expressions, in natural deduction style: conventional typing and (polymorphic) uniqueness typing. In both type systems, typing is preserved during evaluation, and types can be determined effectively. 1 Introduction Traditional functional progra ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
We present two systems for firstorder typing of graph expressions, in natural deduction style: conventional typing and (polymorphic) uniqueness typing. In both type systems, typing is preserved during evaluation, and types can be determined effectively. 1 Introduction Traditional functional programming languages are unable to deal with operations with side effects. Indeed, by admitting these operations (such as file manipulations) one risks the loss of referential transparency since these involve changing the state of an input object. In recent years, various proposals have been brought up as solutions to this shortcoming ([10], [8]). The essence of these solutions is the restriction of destructive operations to `local' input objects (occurring only once). The uniqueness type system for graph rewrite systems (as presented in [3] and [4]) offers the possibility to indicate such locality requirements of functions in the types of the corresponding arguments. These special socalled uni...