Abstract
In this paper, we present Famke. It is a prototype implementation of a strongly typed operating system written in Clean. Famke enables the creation and management of independent distributed Clean processes on a network of workstations. It uses Clean’s dynamic type system and its dynamic linker to communicate values of any type, e.g. data, closures, and functions (i.e. compiled code), between running applications in a type safe way. Mobile processes can be implemented using Famke’s ability to communicate functions. We have built an interactive shell on top of Famke that enables user interaction. The shell uses a functional-style command language that allows construction of new processes, and it type checks the command line before executing it. Famke’s type safe run-time extensibility makes it a strongly typed operating system that can be tailored to a given situation.
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.
Similar content being viewed by others
References
S. Peyton Jones and J. Hughes et al. Report on the programming language Haskell 98. University of Yale, 1999. http://www.haskell.org/definition/
M. J. Plasmeijer and M. C. J. D. van Eekelen. Functional Programming and Parallel Graph Rewriting. Addison Wesley, 1993.
M. van Eekelen and R. Plasmeijer. Concurrent CLEAN Language Report (version 2.0, draft). University of Nijmegen, December 2001. http://www.cs.kun.nl/~clean.
M. Abadi, L. Cardelli, B. Pierce, and G. Plotkin. Dynamic Typing in a Statically Typed Language. ACM Transactions on Programming Languages and Systems, 13(2):237–268, April 1991.
M. Pil. Dynamic Types and Type Dependent Functions. In T. Davie K. Hammond and C. Clack, editors, Proceedings of the 10th International Workshop on the Implementation of Functional Languages, volume 1595 of Lecture Notes in Computer Science, pages 171–188. Springer-Verlag, 1998.
M. Vervoort and R. Plasmeijer. Lazy Dynamic Input/Output in the Lazy Functional Language Clean. In R. Peña and T. Arts, editors, Proceedings of the 14th International Workshop on the Implementation of Functional Languages, Lecture Notes in Computer Science. Springer-Verlag, 2002.
E.G.J.M.H. Nocker, J.E.W. Smetsers, M.C.J.D. van Eekelen, and M.J. Plasmeijer. Concurrent Clean. In E.H.L. Aarts, J. van Leeuwen, and M. Rem, editors, PARLE’ 91: Parallel Architectures and Languages Europe, Volume II, volume 506 of Lecture Notes in Computer Science, pages 202–219. Springer, 1991.
M. Wand. Continuation-Based Multiprocessing. In J. Allen, editor, Conference Record of the 1980 LISP Conference, pages 19–28, Palo Alto, CA, 1980. The Lisp Company.
K. Claessen. A Poor Man’s Concurrency Monad. Journal of Functional Programming, 9, May 1999.
S. Peyton Jones, A. Gordon, and S. Finne. Concurrent Haskell. In Conference Record of POPL’ 96: The 23 rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 295–308, St. Petersburg Beach, Florida, 21–24 1996.
S. Marlow, S.L. Peyton Jones, A. Moran, and J.H. Reppy. Asynchronous Exceptions in Haskell. In SIGPLAN Conference on Programming Language Design and Implementation, pages 274–285, 2001.
V. Stolz and F. Huch. Implementation of Port-based Distributed Haskell, 2001. http://www-i2.informatik.rwth-aachen.de/Research/distributedHaskell/ifl.2001.ps.gz
F. Huch and U. Norbisrath. Distributed Programming in Haskell with Ports. In M. Mohnen and P.W.M. Koopman, editors, Implementation of Functional Languages, 12th International Workshop, IFL 2000, volume 2011 of Lecture Notes in Computer Science, pages 107–121. Springer, September 2000.
E.C. Cooper and J.G. Morrisett. Adding Threads to Standard ML. Technical Report CMU-CS-90-186, Pittsburgh, PA, 1990.
A.C. Lin. Implementing Concurrency For An ML-based Operating System. PhD thesis, Massachusetts Institute of Technology, February 1998.
J. Armstrong, R. Virding, C. Wikström, and M. Williams. Concurrent Programming in Erlang. Prentice-Hall, second edition, 1996.
G. Back, P. Wullmann, L. Stoller, W. C. Hsieh, and J. Lepreau. Java Operating Systems: Design and Implementation. Technical Report UUCS-98-015, 6, 1998.
O. Shivers. A Scheme Shell. Technical Report MIT/LCS/TR-635, 1994.
P. Haahr and B. Rakitzis. Es: A shell with higher-order functions. In USENIX Winter, pages 51–60, 1993.
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
van Weelden, A., Plasmeijer, R. (2003). Towards a Strongly Typed Functional Operating System. 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_14
Download citation
DOI: https://doi.org/10.1007/3-540-44854-3_14
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