Miranda: a non-strict functional language with polymorphic types
Proc. of a conference on Functional programming languages and computer architecture
Volume II: Parallel Languages on PARLE: Parallel Architectures and Languages Europe
Theoretical Computer Science
CLEAN: A language for functional graph rewriting
Proc. of a conference on Functional programming languages and computer architecture
Dynamic typing in a statically typed language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
ACM Computing Surveys (CSUR)
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
Functional Programming and Parallel Graph Rewriting
Functional Programming and Parallel Graph Rewriting
ERLANG for Concurrent Programming
ERLANG for Concurrent Programming
PARLE '91 Proceedings of Parallel Architectures and Languages - Volume II
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
The Implementation and Efficiency of Arrays in Clean 1.1
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
Interactive Functional Objects in Clean
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
Using Clean for Platform Games
IFL '99 Selected Papers from the 11th International Workshop on Implementation of Functional Languages
Graph grammar induction as a parser-controlled heuristic search process
AGTIVE'11 Proceedings of the 4th international conference on Applications of Graph Transformations with Industrial Relevance
Hi-index | 0.00 |
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.