language|purely functional language]] from the University of Nijmegen. Clean was originally a subset of Lean, designed to be an experimental intermediate language and used to study the [[Computer Dictionary/graph rewriting|graph rewriting]] model. To help focus on the essential implementation issues it deliberately lacked all [[Computer Dictionary/syntactic sugar|syntactic sugar]], even infix expressions or complex lists,
As it was used more and more to construct all kinds of applications it was eventually turned into a general purpose functional programming language, first released in May 1995. The new language is strongly typed (Milner/Mycroft type system), provides modules and functional I/O (including a WIMP interface), and supports parallel processing and distributed processing on loosely coupled parallel architectures. Parallel execution was originally based on the PABC abstract machine.
It is one of the fastest implementations of functional languages available, partly aided by programmer annotations to influence evaluation order.
Although the two variants of Clean are rather different, the name Clean can be used to denote either of them. To distinguish, the old version can be referred to as Clean 0.8, and the new as Clean 1.0 or Concurrent Clean.
The current release of Clean (1.0) includes a compiler, producing code for the ABC abstract machine, a [[Computer Dictionary/code generator|code generator]], compiling the ABC code into either object-code or assembly language (depending on the platform), I/O libraries, a development environment (not all platforms), and documentation. It is supported (or will soon be supported) under Mac OS, Linux, OS/2, Windows 95, SunOS, and Solaris.
http://cs.kun.nl/~clean/ . E-mail: firstname.lastname@example.org. Mailing list: email@example.com]].
["Clean - A Language for Functional Graph Rewriting", T. Brus et al, IR 95, U Nijmegen, Feb 1987].
["Concurrent Clean", M.C. van Eekelen et al, TR 89-18, U Nijmegen, Netherlands, 1989].