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 58 articles , 1 standard article )

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

1 2 3 next

  1. Gibbons, Jeremy: Comprehending ringads. For Phil Wadler, on the occasion of his 60th birthday (2016)
  2. Magalhães, José Pedro: Generic programming with multiple parameters (2014)
  3. de Mol, Maarten; van Eekelen, Marko: Beautiful code, beautiful proof? (2013) ioport
  4. de Vries, Edsko: Modelling unique and affine typing using polymorphism (2013)
  5. Koopman, Pieter: Functional semantics (2013)
  6. Lijnse, Bas: Evolution of a parallel task combinator (2013)
  7. van Bakel, Steffen J.; Rowe, Reuben N. S.: Functional type assignment for Featherweight Java. To Rinus Plasmeijer, in honour of his 61st birthday (2013)
  8. Domoszlai, László; Bruël, Eddy; Jansen, Jan Martin: Implementing a non-strict purely functional language in JavaScript (2011)
  9. Endrullis, Jörg; Hendriks, Dimitri: Lazy productivity via termination (2011)
  10. Seidel, Daniel; Voigtländer, Janis: Refined typing to localize the impact of forced strictness on free theorems (2011)
  11. Spitters, Bas; van der Weegen, Eelis: Type classes for mathematics in type theory (2011)
  12. Achten, Peter; van Eekelen, Marko; Koopman, Pieter; Morazán, Marco T.: Trends in trends in functional programming 1999/2000 versus 2007/2008 (2010)
  13. Alarcón, Beatriz; Gutiérrez, Raúl; Lucas, Salvador: Context-sensitive dependency pairs (2010)
  14. Herman, David; Tomb, Aaron; Flanagan, Cormac: Space-efficient gradual typing (2010)
  15. Holdermans, Stefan; Hage, Jurriaan: Making “stricterness” more relevant (2010)
  16. Hinze, Ralf; Löh, Andres: Generic programming in 3D (2009)
  17. Tejfel, Máté: Proving composed specifications of Clean programs in Sparkle-T (2009)
  18. de Mol, Maarten; van Eekelen, Marko; Plasmeijer, Rinus: Proving properties of lazy functional programs with Sparkle (2008)
  19. Wang, Yong; Jiang, Yi-Cheng: Modified adaptive chirplet decomposition with application in ISAR imaging of maneuvering targets (2008)
  20. Wang, Yong; Jiang, Yi-Cheng: Generalized time-frequency distributions for multicomponent polynomial phase signals (2008)

1 2 3 next