Skip to main content

Towards a Strongly Typed Functional Operating System

  • Conference paper
  • First Online:

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

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.

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S. Peyton Jones and J. Hughes et al. Report on the programming language Haskell 98. University of Yale, 1999. http://www.haskell.org/definition/

  2. M. J. Plasmeijer and M. C. J. D. van Eekelen. Functional Programming and Parallel Graph Rewriting. Addison Wesley, 1993.

    Google Scholar 

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

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

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  9. K. Claessen. A Poor Man’s Concurrency Monad. Journal of Functional Programming, 9, May 1999.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

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

    Chapter  Google Scholar 

  14. E.C. Cooper and J.G. Morrisett. Adding Threads to Standard ML. Technical Report CMU-CS-90-186, Pittsburgh, PA, 1990.

    Google Scholar 

  15. A.C. Lin. Implementing Concurrency For An ML-based Operating System. PhD thesis, Massachusetts Institute of Technology, February 1998.

    Google Scholar 

  16. J. Armstrong, R. Virding, C. Wikström, and M. Williams. Concurrent Programming in Erlang. Prentice-Hall, second edition, 1996.

    Google Scholar 

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

    Google Scholar 

  18. O. Shivers. A Scheme Shell. Technical Report MIT/LCS/TR-635, 1994.

    Google Scholar 

  19. P. Haahr and B. Rakitzis. Es: A shell with higher-order functions. In USENIX Winter, pages 51–60, 1993.

    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

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

Publish with us

Policies and ethics