Term Graph Rewriting and Mobile Expressions in Functional Languages

  • Authors:
  • Marinus J. Plasmeijer;Marko C. J. D. van Eekelen

  • Affiliations:
  • -;-

  • Venue:
  • AGTIVE '99 Proceedings of the International Workshop on Applications of Graph Transformations with Industrial Relevance
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

CLEAN is a functional language based on Term Graph Rewriting. It is specially designed to make the development of real world applications possible by using a pure functional language. In this paper we first give a short overview of the most important basic features of the language CLEAN among which it's Term Graph Rewriting semantics. Of particular importance for practical use is CLEAN's uniqueness typing enabling destructive updates of arbitrary objects and the creation of direct interfaces with the outside world, all within a purely functional framework. After this overview we will focus on a new language feature, which is currently being added. The new version of CLEAN offers a hybrid type system with both static as well as dynamic typing. Expressions, which are dynamically typed, are called Dynamics. With help of Dynamics one can create mobile expressions, which can be passed to other CLEAN applications. Dynamics can be used to make plug-ins which will be type checked at run-time. Typically, 30% of the code of an application is needed for storing (converting data to string) and retrieving (by means of a parser) of data. With Dynamics one can store and retrieve not only data but also code (!) with just one instruction. The implementation effort needed to support Dynamics is quite large: it not only involves dynamic type checking but also dynamic type unification, dynamic linking, just-in-time compilation, coding techniques for data and version management of code segments.