Abstract.Clean is an experimental language for specifying functional computations in terms of graph rewriting. It is based on an extension of Term Rewriting Systems (TRS) in which the terms are replaced by graphs. Such a Graph Rewriting System (GRS) consists of a, possibly cyclic, directed graph, called the data graph and graph rewrite rules which specify how this data graph may be rewr~en. Clean is designed to provide a firm base for functional programming. In particular, Clean is suitable as an intermediate language between functional languages and (parallel) target machine architectures. A sequential implementation of Clean on a conventional machine is described and its performance is compared with other systems. The results show that Clean can be efficiently implemented.
In this paper we p r esent a t ype system f o r g r aph rewrite systems: uniqueness typing. It employs u s a ge information to deduce whether an o b j e c t i s u n i q u e ' a t a certain moment, i.e. is only locally accessible. In a type of a function it can bespeci ed that the function requires a unique argument o b j e c t. The correctness of type assignment guarantees that no external a ccess on t h e o r iginal o bject will take place in the future. The presented t ype system is proven to be correct. We illustrate the power of the system by de ning an elegant q u i c ksort a l g orithm that performs the sorting in situ on the data structure.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.