Lazy Dynamic Input/Output in the Lazy Functional Language Clean
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.
KeywordsPattern Match Dynamic Expression Dynamic Type Manner Sharing Entry Node
Unable to display preview. Download preview PDF.
- 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
- 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