Lazy Dynamic Input/Output in the Lazy Functional Language Clean

  • Martijn Vervoort
  • Rinus Plasmeijer
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2670)


In this paper we explain how dynamics can be communicated between independently programmed Clean applications. This is an important new feature of Clean because it allows type safe exchange of both data and code. In this way mobile code and plug-ins can be realized easily. The paper discusses the most important implementation problems and their solutions in the context of a compiled lazy functional language. The implemented solution reflects the lazy semantics of the language in an elegant way and is moreover quite efficient. The resulting rather complex system in which dynamics can depend on other dynamics, is effectively hidden from the user by allowing her to view dynamics as “typed files” that can be manipulated like ordinary files.


Pattern Match Dynamic Expression Dynamic Type Manner Sharing Entry Node 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    M. Abadi, L. Cardelli, B. Pierce, D. Rémy. Dynamic typing in polymorphic languages, Journal of Functional Programming 5(1):111–130, Cambridge University Press 1995.zbMATHCrossRefGoogle Scholar
  2. 2.
    A. Alimarine and R. Plasmeijer, A Generic Programming Extension for Clean, In Proc. of Implementation of Functional Languages, Älvsjö, Sweden, Arts Th., Mohnen M., Springer-Verlag, LNCS 2312, pages 168–185.CrossRefGoogle Scholar
  3. 3.
    T. Davie, K. Hammond, J. Quintela, Efficient Persistent Haskell, In: Draft proceedings of the 10th workshop on the implementation of Functional Languages, pp. 183–194, University College London, September 1998.Google Scholar
  4. 4.
    F. Henderson, T. Conway, Z. Somogyi amd D. Jeffery, The Mercury language reference manual, Technical Report 96/10, Department of Computer Science, University of Melbourne, Melbourne, Australia, 1996.Google Scholar
  5. 5.
    S. P. Jones and J. Hughes (eds.) (1999), Report on the Programming Language Haskell 98, A Non-strict Purely Functional Language.Google Scholar
  6. 6.
    X. Leroy, D. Doligez, J. Garrigue, D. Rémy and J. Vouillon The Objective Caml system release 3.04 Documentation and user’s manual, December 10, 2001 Institut National de Recherche en Informatique et en Automatique.Google Scholar
  7. 7.
    D. McNally, Models for Persistence in Lazy Functional Programming Systems, PhD Thesis, University of St Andrews Technical Report CS/93/9, 1993.Google Scholar
  8. 8.
    R. Morrison, A. Brown, R. Connor, Q. Cutts, A. Dearle, G. Kirby and D. Munro. Napier88 Reference Manual (Release 2.2.1), University of St. Andrews, July 1996.Google Scholar
  9. 9.
    M.R.C. Pil, (1997) First Class I/O, In Proc. of Implementation of Functional Languages, 8th International Workshop, Selected Papers, Bad Godesberg, Germany, Kluge Ed., Springer Verlag, LNCS 1268, pp. 233–246.Google Scholar
  10. 10.
    M.R.C. Pil, (1999), Dynamic types and type dependent functions, In Proc. of Implementation of Functional Languages, London, UK, Hammond, Davie and Clack Eds. Springer-Verlag, Berlin, Lecture Notes in Computer Science 1595, pp 169–185.CrossRefGoogle Scholar
  11. 11.
    R. Plasmeijer, M.C.J.D. van Eekelen (2001), Language Report Concurrent Clean, Version 2.0 (Draft) Faculty of mathematics and Informatics, University of Nijmegen, December 2001. Also available at clean/Manuals/manuals.html
  12. 12.
    R.L. Rivest, RFC 1321: The MD5 Message-Digest Algorithm, Internet Activities Board, 1992.Google Scholar
  13. 13.
    P. van Roy and S. Haridi, Mozart: A Programming System for Agent Applications, International Workshop on Distributed and Internet Programming with Logic and Constraint Languages, Part of International Conference on Logic Programming.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Martijn Vervoort
    • 1
  • Rinus Plasmeijer
    • 1
  1. 1.Nijmegen Institute for Information and Computing SciencesNijmegenThe Netherlands

Personalised recommendations