Skip to main content

Lazy Dynamic Input/Output in the Lazy Functional Language Clean

  • Conference paper
  • First Online:
Implementation of Functional Languages (IFL 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2670))

Included in the following conference series:

Abstract

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.

This work was supported by STW as part of project NWI.4411

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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.

    Article  MATH  Google Scholar 

  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.

    Chapter  Google Scholar 

  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. 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. S. P. Jones and J. Hughes (eds.) (1999), Report on the Programming Language Haskell 98, A Non-strict Purely Functional Language.

    Google Scholar 

  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. 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. 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. 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. 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.

    Chapter  Google Scholar 

  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 http://www.cs.kun.nl/ clean/Manuals/manuals.html

  12. R.L. Rivest, RFC 1321: The MD5 Message-Digest Algorithm, Internet Activities Board, 1992.

    Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Vervoort, M., Plasmeijer, R. (2003). Lazy Dynamic Input/Output in the Lazy Functional Language Clean. In: Peña, R., Arts, T. (eds) Implementation of Functional Languages. IFL 2002. Lecture Notes in Computer Science, vol 2670. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44854-3_7

Download citation

  • DOI: https://doi.org/10.1007/3-540-44854-3_7

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40190-2

  • Online ISBN: 978-3-540-44854-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics