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
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
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.
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.
S. P. Jones and J. Hughes (eds.) (1999), Report on the Programming Language Haskell 98, A Non-strict Purely Functional Language.
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.
D. McNally, Models for Persistence in Lazy Functional Programming Systems, PhD Thesis, University of St Andrews Technical Report CS/93/9, 1993.
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.
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.
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.
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
R.L. Rivest, RFC 1321: The MD5 Message-Digest Algorithm, Internet Activities Board, 1992.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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