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.

References in zbMATH (referenced in 37 articles , 1 standard article )

Showing results 1 to 20 of 37.
Sorted by year (citations)

1 2 next

  1. de Mol, Maarten; van Eekelen, Marko: Beautiful code, beautiful proof? (2013)
  2. Spitters, Bas; van der Weegen, Eelis: Type classes for mathematics in type theory (2011)
  3. Herman, David; Tomb, Aaron; Flanagan, Cormac: Space-efficient gradual typing (2010)
  4. Sipos, Ádám; Zsók, Viktória: Eclean - an embedded functional language (2009)
  5. de Mol, Maarten; van Eekelen, Marko; Plasmeijer, Rinus: Proving properties of lazy functional programs with Sparkle (2008)
  6. Wang, Yong; Jiang, Yi-Cheng: Generalized time-frequency distributions for multicomponent polynomial phase signals (2008)
  7. Wang, Yong; Jiang, Yi-Cheng: Detection and parameter estimation of multicomponent LFM signal based on the cubic phase function (2008)
  8. Wang, Yong; Jiang, Yi-Cheng: Modified adaptive chirplet decomposition with application in ISAR imaging of maneuvering targets (2008)
  9. Jacobs, Bart; Smetsers, Sjaak; Schreur, Ronny Wichers: Code-carrying theories (2007)
  10. Kieburtz, Richard B.: Strength induction in a haskell program verifier. (2007)
  11. Kieburtz, Richard B.: Programmed strategies for program verification. (2007)
  12. Harrington, Dana: Uniqueness logic (2006)
  13. Indermark, Klaus; Noll, Thomas: Algebraic correctness proofs for compiling recursive function definitions with strictness information (2006)
  14. Pierce, Benjamin C. (ed.): Advanced topics in types and programming languages. (2005)
  15. de Mol, Maarten; van Eekelen, Marko; Plasmeijer, Rinus: Theorem proving for functional programmers. SPARKLE: a functional theorem prover (2002)
  16. Achten, Peter; Jones, Simon Peyton: Porting the clean object I/O library to Haskell (2001)
  17. da Silva, Carlos Alberto Lopes; Vieira Lima, Luciano; Ferreira, Wellesley Barros; Veiga, Antonio Claudio Paschoarelli; Yamanaka, Keiji; Iano, Yuzo: Automatic learning composition based on polyphonic wave signals and musical histograms (2001)
  18. Kirchner, Hélène; Moreau, Pierre-Etienne: Promoting rewriting to a programming language: A compiler for non-deterministic rewrite programs in associative-commutative theories (2001)
  19. Moreau, Pierre-Etienne; Ringeissen, Christophe; Vittek, Marian: Pattern-matching compiler. (2001)
  20. Stoica, Petre; Liu, Guoqing; Li, Jian; Larsson, Erik G.: Nonparametric spectral analysis of gapped data via an adaptive filtering approach (2001)

1 2 next