A lazy higher-order
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 graph rewriting model. To help focus on the essential
implementation issues it deliberately lacked all
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 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:
<clean@cs.kun.nl>. Mailing list: <clean-request@cs.kun.nl>.
["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].